Я пишу программу для ATmega168 по перепрограммированию Флэш-памяти. Сначала хочу решить самую простую задачу. Перенос данных из RAM во Flash по определённому адресу. RAM заполняю вручную(просто забиваю любые числа в окне Memory AVR Studio). Входе выполнения программы возникают ошибки типа: AVR Simulator: Invalid opcode 0xffff at address 0x000044 ...... AVR Simulator: Invalid opcode 0xffff at address 0x001004 AVR Simulator: Stack Overflow at 0x1035 AVR Simulator: Excessive stack overflow, stop sim
С чем это может быть связано? мне кажется это связано с фьюзами BOOTSZ1 и BOOTSZ2 определяющими адрес расположения в памяти "Загрузчика" и его размер
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954
Имхо, связано с тем, что AVR Studio начинает выполнение не с адреса загрузчика, а с адреса 0. Наверное, следует "руками" принудить студию стартовать с нужного адреса.
P.S. Причина №2. Забыли инициализировать стек и есть вызов подпрограмм/прерывания.