Перейти к содержанию
    

нужна помощь в создании алгоритма

есть бутлоадер для AVR MEGA, нужно сделать так чтобы при старте бутлоадер он ждал 3 секунды от хоста команды, если ничего не пришло то запускалась основная прога.

вся проблема в организации задержки.

скорость обмена 38400 кварц 8 МГц. при простых задержках почему то теряются байты. есть какие нибудь идеи как этого избежать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вся проблема в организации задержки... при простых задержках почему то теряются байты. есть какие нибудь идеи как этого избежать?

Почему бы не использовать таймер? Не хотите связываться с IVSEL ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему бы не использовать таймер? Не хотите связываться с IVSEL ?

Спасибо за подсказку, почитал доку действительно должно помочь.

Только пока мне не понятно откуда компилятор возьмет размер бут области для правильного размещения векторов прерываний?

у меня весь проект это бутлоадер поэтому я предназначил целиком область .text

или это тут не причем?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только пока мне не понятно откуда компилятор возьмет размер бут области для правильного размещения векторов прерываний?

Чтобы получить ответ, нужно предоставить хоть какую-то информацию. Вы об используемом трансляторе даже не обмолвились..

Обычно, задаётся область в Makefile, или в Project Options.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы получить ответ, нужно предоставить хоть какую-то информацию. Вы об используемом трансляторе даже не обмолвились.. Обычно, задаётся область в Makefile, или в Project Options.

Прошу прощения..

Для разработки использую WinAVR 5.

область для размещения загрузчика указал в Project options как .text=0x1C00. для mega16.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

область для размещения загрузчика указал в Project options как .text=0x1C00. для mega16.

0x1C00 - это адрес в словах, а для линкера подозреваю, что нужно в байтах.

И фузы запрограммировать соответствующим образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0x1C00 - это адрес в словах, а для линкера подозреваю, что нужно в байтах.

А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ?

Да, GCC надо объяснять все немного подробнее :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А - что ? Есть и другие среды разработки кроме IAR, которые считают память программ для AVR в байтах ?

Получается, что есть - GCC.

 

P.S. Открыл проект бута под GCC. там написано

-Wl,--section-start=.text=0x1800

а AVRStudio показывает что заполнена память по адресам 0xC00 - 0x1800/2.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...