Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите! winAVR bootloader для ATmega128
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Konste
Здравствуйте.
Проблема в следующем:
Перешёл с CodeVision на winAVR. в CV для того, чтобы указать компилятору, что наша программа это bootloader и размещёть его надо соответственно достаточно было выставить опции в настройках проекта.

Как сделать такое же в winAVR?

- при генерации .hex в начало программы пишутся вектора прерываний (чего мне в bootloader`е не надо)
- адреса выставляются с 0x0000 (то есть моя программа пишется не в секцию bootloader`а)

===== Как и где всё это настраивается?

Игрался с параметрами avr-objcopy, генерящей .hex - ничего не вышло, но у меня такое чувство, что именно здесь "собака зарыта"...

Пожалуйста помогите.
haker_fox
Цитата(Konste @ Nov 9 2006, 14:11) *
Здравствуйте.
Проблема в следующем:
Перешёл с CodeVision на winAVR. в CV для того, чтобы указать компилятору, что наша программа это bootloader и размещёть его надо соответственно достаточно было выставить опции в настройках проекта.

Как сделать такое же в winAVR?

- при генерации .hex в начало программы пишутся вектора прерываний (чего мне в bootloader`е не надо)
- адреса выставляются с 0x0000 (то есть моя программа пишется не в секцию bootloader`а)

===== Как и где всё это настраивается?

Игрался с параметрами avr-objcopy, генерящей .hex - ничего не вышло, но у меня такое чувство, что именно здесь "собака зарыта"...

Пожалуйста помогите.

Я, в опциях линкера, прописал следующее
LDFLAGS = -Wl,--section-start=.text=0x03800, для ATmega16, при этом область загрузчика 1024 байта.
Прикладываю полный вариант своего Makefile
Konste
[/quote]
Я, в опциях линкера, прописал следующее
LDFLAGS = -Wl,--section-start=.text=0x03800, для ATmega16, при этом область загрузчика 1024 байта.
Прикладываю полный вариант своего Makefile
[/quote]

Спасибо, теперь пишет в hex начиная с нужного адреса smile.gif
- неужели единственный способ? - как-то некрасиво он смотриться - такое ощущение, что должен, скорее некий флаг меняться, определяющий тип программы.
... попробую теперь разобраться, как от туда вектора прерываний убрать.... если кому известно - буду рад smile.gif

Заранее спасибо.
haker_fox
[quote name='Konste' date='Nov 9 2006, 15:51' post='173789']
[/quote]
Я, в опциях линкера, прописал следующее
LDFLAGS = -Wl,--section-start=.text=0x03800, для ATmega16, при этом область загрузчика 1024 байта.
Прикладываю полный вариант своего Makefile
[/quote]

Спасибо, теперь пишет в hex начиная с нужного адреса smile.gif
- неужели единственный способ? - как-то некрасиво он смотриться - такое ощущение, что должен, скорее некий флаг меняться, определяющий тип программы.
... попробую теперь разобраться, как от туда вектора прерываний убрать.... если кому известно - буду рад smile.gif

Заранее спасибо.
[/quote]
Компилятор ничего не знает о термине "тип программы" в нашем случае. Он ничего не знает о понятие "область загрузчика", "программная область" и, соответственно, такого флага быль не должно. Способ этот наоборот очень красивый и изящный в отличии от менюшек того же CodeVision - все опции сборки проекта прописываются в одном скрипте, и имя ему Makefile.
pan_oleg
Помогите пожалуйста, у меня та же ситуация, но не работает,
LDFLAGS = -Wl,--section-start=.text=0x1800
мега88,бутсектор 1к,
вектор фузом перенес, а майн не переносится?
help.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.