|
bootloader в IARe 3,10, Помогите разобраться как сделать |
|
|
|
 |
Ответов
|
Jan 16 2008, 20:08
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Пытаюсь использовать функции записи во флеш из апнота avr106 для своего проекта (Mega324P). Хочу сохранять параметры в неиспользованной части бутлодера (от начала сектора NRWW до начала собственно бутлодера). В верхней NRWW области прошит бутлодер размером 1кб. Область NRWW для данного мк занимает 4кБ. Бутлодер создан отдельным проектом. Сделал так как указано в апноте: Код //Alternatively it is possible to place only selected functions into defined segments of //the Flash memory. In fact it is only the functions for writing that need to be located //inside the Boot section. //1. Make a new define for Boot size. -D_..X_BOOTSEC_SIZE=1000 /* 2048 words */ //2. Define a new segment for the entire Boot section based on the definition in step 1. -Z(FARCODE)BOOT_SEGMENT=(_..X_FLASH_END-_..X_BOOTSEC_SIZE+1)-_..X_FLASH_END //Placing a C function into the defined segment: void ExampleFunction() @ BOOT_SEGMENT { ------ } ...т.е. в описании и объявлении функции записи во флеш добавил @"BOOT_SEGMENT" unsigned char WriteFlashByte(MyAddressType flashAddr, unsigned char data)@"BOOT_SEGMENT"; При вызове этой функции возникает ошибка: Код Error[e133]: The output format intel-extended cannot handle multiple address spaces. Use format variants (-y -O) to specify which address space is wanted Что я сделал не так? Вообще-то, мне необходимо разместить функции так, чтобы не они не "попали" в самый верхний килобайт памяти (загрузчик).
|
|
|
|
|
Jan 17 2008, 09:27
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(alux @ Jan 17 2008, 08:14)  Прошу прощения. Ошибка вышла. Скопировал с апнота... У меня было -Z(CODE)... Так в чем же дело? EEPROM не используется? Точнее, не так: Если используется eeprom, то задаются ли ей в программе начальные значения? Если да, то оставьте на вкладке выбора формата отладочный формат для C-SPY, а на вкладке extra options допишите Код -Ointel-extended,(CODE)=.hex -Ointel-extended,(XDATA)=.eep
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 17 2008, 13:51
|
Знающий
   
Группа: Свой
Сообщений: 589
Регистрация: 24-04-05
Пользователь №: 4 447

|
Цитата(Сергей Борщ @ Jan 17 2008, 13:27)  Код -Ointel-extended,(CODE)=.hex -Ointel-extended,(XDATA)=.eep Цитата(Baser @ Jan 17 2008, 13:41)  Сразу возник вопрос: вы это пытаетесь добавлять в проект с бутлоадером или в проект с прикладной программой?Я попробовал на проекте на мега128 с бутлоадером. При добавлении в прикладную программу след. строк все линкуется без ошибок. Еще раз повторюсь. Есть многофайловый проект на Мега324 (без бутлодера). Бутлодер создан отдельным проектом. В контроллер уже прошит загрузчик в последний килобайт флеша. Хочу использовать функции из avr106 для записи во флеш. В частности в неиспользованную область NRWW (до начала загрузчика). В области NRWW необходимо разместить только функции записи во флеш. Я в курсе, что такое сообщение возникает при попытке скомпилить с данными в ЕЕПРОМе. И эти опции тоже использую, если надо. Но в тот момент ЕЕПРОМ не использовал. Это сообщение возникает при ВЫЗОВЕ WriteFlashByte(); Если не вызывать данную функцию, линкуется без ошибок.
|
|
|
|
|
Jan 17 2008, 16:57
|

Просто Che
    
Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881

|
Цитата(alux @ Jan 17 2008, 15:51)  Еще раз повторюсь. Есть многофайловый проект на Мега324 (без бутлодера). Бутлодер создан отдельным проектом. В контроллер уже прошит загрузчик в последний килобайт флеша. Хочу использовать функции из avr106 для записи во флеш. В частности в неиспользованную область NRWW (до начала загрузчика). В области NRWW необходимо разместить только функции записи во флеш. Еще раз проверьте все, что вы делаете. Если именно так как написано, то это линкуется без ошибок. Проверил  Если есть сомнения, посмотрите прикрепленные файлы. Цитата Я в курсе, что такое сообщение возникает при попытке скомпилить с данными в ЕЕПРОМе. И эти опции тоже использую, если надо. Но в тот момент ЕЕПРОМ не использовал. Это сообщение возникает при ВЫЗОВЕ WriteFlashByte(); Если не вызывать данную функцию, линкуется без ошибок. Это просто наложение ошибок. На вызов функции такое сообщение выдаваться не может.
Прикрепленные файлы
Test.zip ( 9.25 килобайт )
Кол-во скачиваний: 59
|
|
|
|
Сообщений в этой теме
arttab bootloader в IARe 3,10 Jul 5 2006, 08:16 Faradey посмотрите в примере от Atmel. Там не совсем то чт... Jul 5 2006, 15:18 arttab Цитата(Faradey @ Jul 5 2006, 22:18) посмо... Jul 6 2006, 08:57 arttab Это приложение к ан109. уже взял, уже ковыряю.... ... Jul 6 2006, 01:42 arttab Что означает __C_task void loader(void)?
Я только ... Jul 6 2006, 03:15 arttab Если я правильно понял, то:
_C - указывает что нуж... Jul 6 2006, 04:11 IgorKossak Цитата(arttab @ Jul 6 2006, 07:11) Если я... Jul 6 2006, 07:08 arttab Еще вопрос по адресам прерываний:
В табл 18 и 19 а... Jul 6 2006, 04:49 arttab Спасибо! Хоть один не отсылает к докам по IARу... Jul 6 2006, 08:22 IgorKossak Цитата(arttab @ Jul 6 2006, 11:22) Если я... Jul 6 2006, 12:46 arttab Ограниченость памяти меги8 и наталкивает на совмес... Jul 7 2006, 02:32 Old1 Цитата(arttab @ Jul 7 2006, 05:32) Ограни... Jul 7 2006, 07:23 Сергей Борщ Цитата(arttab @ Jul 7 2006, 05:32) Вопрос... Jul 7 2006, 07:24 arttab Есть вообще возможность разместить 2 таблици векто... Jul 7 2006, 07:16 IgorKossak arttab, Вы взяли для модифицирования не тот конфиг... Jul 7 2006, 07:32 arttab Спасибо всем. разбираюсь...
А что значит: Цитатасд... Jul 7 2006, 08:00 IgorKossak Цитата(arttab @ Jul 7 2006, 11:00) Спасиб... Jul 7 2006, 08:16 arttab Сергей Борщ,
в указаном Вами файле
RSEG LOADER... Jul 7 2006, 08:27 Сергей Борщ Цитата(arttab @ Jul 7 2006, 11:27) Сергей... Jul 7 2006, 09:37 arttab Начал делать отдельно Bootloader.
В проекте опред... Jul 9 2006, 05:46 IgorKossak Цитата(arttab @ Jul 9 2006, 08:46) Начал ... Jul 10 2006, 06:53 arttab Спасибо за подсказку. В my_lnkm8s.xcl переправил т... Jul 10 2006, 14:15 Сергей Борщ Цитата(arttab @ Jul 10 2006, 17:15) Код в... Jul 10 2006, 17:59 arttab ЦитатаОбрати внимание на строчку .xcl:
-H1895 -h(C... Jul 11 2006, 02:05 arttab Сергей Борщ? А где лежит файл intrinsics.h? не наш... Jul 11 2006, 03:03 Сергей Борщ Цитата(arttab @ Jul 11 2006, 06:03) Серге... Jul 11 2006, 09:00 arttab ЦитатаНе знаю что считать старшей версией
Имел в в... Jul 11 2006, 09:36 Сергей Борщ Цитата(arttab @ Jul 11 2006, 12:36) Цитат... Jul 11 2006, 14:15 arttab Уф, переполз на 4.12А. с трудом.
intrinsics.h нужн... Jul 12 2006, 09:02 arttab Сергей Борщ, не моглибы Вы прокоментировать мои из... Jul 13 2006, 07:33 Сергей Борщ Цитата(arttab @ Jul 13 2006, 10:33) Серге... Jul 13 2006, 08:20 arttab Спасибо. Просто я не понял как ими воспользоваться... Jul 13 2006, 09:28 arttab Люди, подскажите - есть ли в IAR функции для самоп... Jul 14 2006, 06:57 IgorKossak Цитата(arttab @ Jul 14 2006, 09:57) Люди,... Jul 14 2006, 08:24 Сергей Борщ Цитата(arttab @ Jul 14 2006, 09:57) Люди,... Jul 14 2006, 08:32 arttab или я чего туплю или как....
не понимаю как ими во... Jul 14 2006, 09:08 Сергей Борщ Цитата(arttab @ Jul 14 2006, 12:08) или я... Jul 17 2006, 07:59 arttab Бывае говоришь о чем то со спецом, все он говорить... Jul 15 2006, 11:42 arttab ЦитатаСогласно правилам языка высокого уровня С ес... Jul 17 2006, 08:10 arttab Новая проблема: пытаюсь сгенерить hex а IAR ругает... Jul 17 2006, 09:47 Сергей Борщ Цитата(arttab @ Jul 17 2006, 12:47) Новая... Jul 17 2006, 10:26  osnwt Рекомендую посмотреть на мой проект Crypto-Boot (т... Jul 17 2006, 15:16 arttab Нашел разницу в дебугере и релайсе: general option... Jul 18 2006, 01:40 IgorKossak Цитата(arttab @ Jul 18 2006, 04:40) ...Мо... Jul 18 2006, 06:21 arttab Лучше конечносделать как надо, но для small 1040 б... Jul 18 2006, 07:02 Сергей Борщ Цитата(arttab @ Jul 18 2006, 10:02) Лучше... Jul 18 2006, 07:37  prottoss Цитата(Сергей Борщ @ Jul 18 2006, 15:37) ... Jul 18 2006, 08:27 arttab Так до меня и не дошли все команды для самопрогамм... Jul 18 2006, 09:43 prottoss Цитата(arttab @ Jul 18 2006, 17:43) Так д... Jul 18 2006, 10:03 arttab Рекомендую читать вопрос и весь топик, а не часть... Jul 19 2006, 02:30 osnwt Цитата(arttab @ Jul 19 2006, 05:30) Вопро... Jul 19 2006, 06:40 arttab уже сделал. оптимизация не мешает - функции специф... Jul 19 2006, 09:27 arttab Получается менять код. Есть тонкости:
по аплекейше... Jul 25 2006, 02:07 arttab вот моя апликуха по написанию загрузчика по итогом... Aug 2 2006, 08:47 Сергей Борщ Цитата(arttab @ Aug 2 2006, 11:47) вот мо... Aug 2 2006, 09:41 arttab спасибо! коечто поправлю, что то добавлю.
По п... Aug 3 2006, 02:43 Сергей Борщ Цитата(arttab @ Aug 3 2006, 05:43) спасиб... Aug 3 2006, 07:56 arttab над циклом подумаю. файл прикладываю здесь - не см... Aug 3 2006, 08:50 arttab Выкладываю подправленую версию. Сергей Борщ, если ... Aug 18 2006, 02:04 arttab Модератор или кто статьями занимается - может в ст... Sep 4 2006, 09:22 IgorKossak Если люди умеют пользоваться поиском по форуму и в... Sep 4 2006, 12:12 _Alfred_ Хочу все же вернуться к вопросу о "принудител... Aug 12 2007, 18:14 arttab Если не хотите искать на форуме и посмотреть приме... Aug 13 2007, 02:16 _Alfred_ Цитата(arttab @ Aug 13 2007, 05:16) посмо... Aug 13 2007, 13:42 _Alfred_ Все, разобрался. Дело было как обычно в мельницах.... Aug 13 2007, 22:03 Len_OK тут столько всего написано...Про функции самопрогр... Dec 6 2007, 11:40 _Alfred_ Цитата(Len_OK @ Dec 6 2007, 15:40) тут ст... Dec 6 2007, 15:52 Len_OK Я уже могу писать, но почему-то только в конце заг... Dec 7 2007, 07:36 sergik_vrn Цитата(Len_OK @ Dec 7 2007, 10:36) Я уже ... Dec 7 2007, 14:37 _Alfred_ sergik_vrn
Наверное под "концом загрузчика... Dec 7 2007, 23:22 Len_OK всё никак не получается
пишу Options->Linker-... Dec 10 2007, 10:52 IgorKossak Цитата(Len_OK @ Dec 10 2007, 12:52) всё н... Dec 10 2007, 13:02 Len_OK извините конечно!!! Но что это за ошиб... Dec 10 2007, 13:26 Сергей Борщ Цитата(Len_OK @ Dec 10 2007, 15:26) извин... Dec 10 2007, 15:40 Len_OK спасибо, я уже разобралась.Невнимательна немного... Dec 10 2007, 15:53     Сергей Борщ Цитата(alux @ Jan 17 2008, 15:51) Если не... Jan 17 2008, 14:11 Baser Сразу возник вопрос: вы это пытаетесь добавлять в ... Jan 17 2008, 09:41 alux Код/* - lnkm324s.xcl -
* XLINK command fi... Jan 17 2008, 14:37 Сергей Борщ Цитата(alux @ Jan 17 2008, 16:37) Не вижу... Jan 17 2008, 15:03 alux Откровенно говоря у меня нет острой необходимости ... Jan 17 2008, 15:37 arttab я поимел большие проблемы в установлении причины п... Jan 18 2008, 02:02 alux Цитата(arttab @ Jan 18 2008, 06:02) я пои... Jan 18 2008, 11:16  Baser Цитата(alux @ Jan 18 2008, 13:16) To Base... Jan 18 2008, 16:29 Breese Возникла такая проблема - не работает АЕS бутлоаде... Jan 20 2008, 18:02 Сергей Борщ Цитата(Breese @ Jan 20 2008, 20:02) дошел... Jan 20 2008, 18:43 Breese Эмм ошибка в пустой функции??? Кстати в АврСтудио ... Jan 20 2008, 19:27 aesok Цитата(Breese @ Jan 20 2008, 22:27) Может... Jan 20 2008, 19:52  Breese Цитата(aesok @ Jan 20 2008, 22:52) А что ... Jan 20 2008, 20:08 arttab Breese
были приколы с "пустой функции main(vo... Jan 22 2008, 01:29 YWAS вот и у меня пришло время писать boot loader, начи... Aug 22 2009, 18:52 Сергей Борщ Цитата(YWAS @ Aug 22 2009, 21:52) такое в... Aug 22 2009, 21:01 YWAS Сергей спасибо за подсказки...
Все оказалось триви... Aug 23 2009, 08:42 Сергей Борщ Цитата(YWAS @ Aug 23 2009, 11:42) после в... Aug 23 2009, 09:16 YWAS типа того,
ошибся немного, было так
MCUCR = temp|(... Aug 23 2009, 09:46
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|