MAGician 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба есть бутлоадер для AVR MEGA, нужно сделать так чтобы при старте бутлоадер он ждал 3 секунды от хоста команды, если ничего не пришло то запускалась основная прога. вся проблема в организации задержки. скорость обмена 38400 кварц 8 МГц. при простых задержках почему то теряются байты. есть какие нибудь идеи как этого избежать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 7 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба вся проблема в организации задержки... при простых задержках почему то теряются байты. есть какие нибудь идеи как этого избежать? Почему бы не использовать таймер? Не хотите связываться с IVSEL ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAGician 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба Почему бы не использовать таймер? Не хотите связываться с IVSEL ? Спасибо за подсказку, почитал доку действительно должно помочь. Только пока мне не понятно откуда компилятор возьмет размер бут области для правильного размещения векторов прерываний? у меня весь проект это бутлоадер поэтому я предназначил целиком область .text или это тут не причем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 7 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба Только пока мне не понятно откуда компилятор возьмет размер бут области для правильного размещения векторов прерываний? Чтобы получить ответ, нужно предоставить хоть какую-то информацию. Вы об используемом трансляторе даже не обмолвились.. Обычно, задаётся область в Makefile, или в Project Options. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MAGician 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба Чтобы получить ответ, нужно предоставить хоть какую-то информацию. Вы об используемом трансляторе даже не обмолвились.. Обычно, задаётся область в Makefile, или в Project Options. Прошу прощения.. Для разработки использую WinAVR 5. область для размещения загрузчика указал в Project options как .text=0x1C00. для mega16. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба область для размещения загрузчика указал в Project options как .text=0x1C00. для mega16. 0x1C00 - это адрес в словах, а для линкера подозреваю, что нужно в байтах. И фузы запрограммировать соответствующим образом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Палыч 7 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба 0x1C00 - это адрес в словах, а для линкера подозреваю, что нужно в байтах. А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ? Да, GCC надо объяснять все немного подробнее :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Артём__ 0 1 ноября, 2012 Опубликовано 1 ноября, 2012 · Жалоба А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ? Получается, что есть - GCC. P.S. Открыл проект бута под GCC. там написано -Wl,--section-start=.text=0x1800 а AVRStudio показывает что заполнена память по адресам 0xC00 - 0x1800/2. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться