Как работать с оптимизацией в AVR Studio 5
Народ, помогите, уже несколько дней не могу разобраться.
Написал код, в принципе ничего особо сложного: прерывания на кнопки, прерывание по часовому кварцу (мега128), ds18b20, и 4 канала аппаратного ШИМ. Основная проблема в том, что много настроек и вариантов работы устройства, поэтому много переменных. Короче код без оптимизации в контроллер не лезет. При настройке оптимизации в -0s в AVR Studio 5 размер кода уменьшается, компилятор показывает на 50 процентное заполнение контроллера, в протеусе все отлично работает. Проблема возникает, кода зашиваю hex в железо, кстати размер hex-файла 190кб. Дудка ругается:avrdude: ERROR: address 0x100010 out of range at line 4098 of C:\Controller\Debug\controller.hex. Как быть в данном случае? Я так понимаю дудка пытается залить в контроллер все содержимое hex-а? Потрошить файл прошивки, или как-то возможно по-другому настроить AVR Studio?
Я бы попробовал не только
Я бы попробовал не только дудкой лить, а то у меня была такая же заманух, не хотело лезть в атмегу328. К сожалению не помню чем точно залил, но точно помню что работало :-)
Попробуй други аплоадеры тот же Uniprof или PonyProg 2000
И степень оптимизации попробуй поменять с максимальной -0s до -1s и тд тп.
Ну и не мешало бы код сам оптимизировать, а то такой объем я даже не представляю как можно написать, тем более что по функционалу алгоритм не сложный вообще.
Если бы еще знать как код
Если бы еще знать как код оптимизировать) Я пока еще чайник в программировании. Спасибо за советы, но другие аплоадеры не работают с моим программатором, если только новый программатор собрать.
Попробуй отключи пару
Попробуй отключи пару "тяжелых" библиотек.
Или обреж функционал частично, потом по мере включения части программы будешь видеть что именно занимает больше всего места. Или пришли код weert @ ua.fm, я гляну что там такое тяжелое.