Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR+AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
alex_hyp
Цитата
IAR Universal Linker V4.59R/386
616 bytes of CODE memory (+ 4 range fill )
102 bytes of DATA memory (+ 7 absolute )


поясните, пожалуйста, то, что в скобках...
и ещё, как сделать так, чтобы eep не генерировался? правильно я понимаю, там размещаются какие-то константы? как сделать так, чтобы всё вошло в один файл? пусть он будет больше по объёму, но он один hex.
заранее спасибо
Сергей Борщ
Цитата(alex_hyp @ Feb 6 2009, 14:44) *
поясните, пожалуйста, то, что в скобках...
В первой строке - не помню. Возможно, компилятор заполнил неким значением "по умолчанию" 4 области, образовавшиеся при выравнивании кода или еще по какой-то причине (например, при явном требовании оставить пустую область в скрипте линкера) Во второй - 7 переменных по абсолютным адресам (скорее всего регистры периферии).
Цитата(alex_hyp @ Feb 6 2009, 14:44) *
и ещё, как сделать так, чтобы eep не генерировался? правильно я понимаю, там размещаются какие-то константы?
Убрать соответствующую опцию из командной строки или скрипта линкера. Такое расширение используется для файла, содержащего начальные значения eeprom.
Цитата(alex_hyp @ Feb 6 2009, 14:44) *
как сделать так, чтобы всё вошло в один файл? пусть он будет больше по объёму, но он один hex.
Да сделать-то можно. А как вы его прошивать будете? Эти данные идут в другое адресное пространство и большинство (про все не могу утверждать) программ программаторов хотят эти данные в отдельном файле. Если вас смущают три файла для прошивки одного контроллера (код, eeprom, описание fuses) - запакуйте их в один .zip архив.
alex_hyp
Цитата(Сергей Борщ @ Feb 7 2009, 15:37) *
Да сделать-то можно. А как вы его прошивать будете? Эти данные идут в другое адресное пространство и большинство (про все не могу утверждать) программ программаторов хотят эти данные в отдельном файле. Если вас смущают три файла для прошивки одного контроллера (код, eeprom, описание fuses) - запакуйте их в один .zip архив.


про зип - оценил.

вопрос и был как раз о том, чтобы как-то объявить эти константы, чтобы они шли в hex-файл...а не о том, как объеденить эти файлы.
west329_
cfg1soim.xcl
//-Z(XDATA)EEPROM_I,EEPROM_N=0-_..X_EEPROM_END

-Z(CODE)EEPROM_I,EEPROM_N=(_..X_FLASH_END+1)-(_..X_FLASH_END+_..X_EEPROM_END+1)
Палыч
Цитата(alex_hyp @ Feb 6 2009, 15:44) *
как сделать так, чтобы всё вошло в один файл? пусть он будет больше по объёму, но он один hex.

Цитата(alex_hyp @ Feb 9 2009, 13:43) *
вопрос и был как раз о том, чтобы как-то объявить эти константы, чтобы они шли в hex-файл...а не о том, как объеденить эти файлы.
Так Вам - чтобы генерировался файл eep или, всё-таки объединить? Объединить eep с hex - не получится: как программатор определит, что данные по адресу ХХХ нужно поместить в EEPROM, а не в память программ... Что Вас смущает в использовании нескольких файлов для программирования МК?
Сергей Борщ
Цитата(alex_hyp @ Feb 9 2009, 12:43) *
вопрос и был как раз о том, чтобы как-то объявить эти константы, чтобы они шли в hex-файл...а не о том, как объеденить эти файлы.
Тогда уточните, о каких константах идет речь? Опишите более подробно, зачем это надо. Пока задача не понятна, искать решение очень тяжело.
alex_hyp
Цитата(Сергей Борщ @ Feb 9 2009, 14:17) *
Тогда уточните, о каких константах идет речь? Опишите более подробно, зачем это надо. Пока задача не понятна, искать решение очень тяжело.


про константы я не уверен, я у вас и спросил, что конкретно он отсылает в eep-файл? и как объявить это что-то, чтобы оно оказалось в hex-файле?
Палыч
Цитата(alex_hyp @ Feb 9 2009, 14:38) *
про константы я не уверен, я у вас и спросил, что конкретно он отсылает в eep-файл?
Выше Вам ответили: начальные значения EEPROM
Цитата(alex_hyp @ Feb 9 2009, 14:38) *
и как объявить это что-то, чтобы оно оказалось в hex-файле?
А, вот это и непонятно... Что же Вы хотите? Не инициализировать EEPROM? Данные, которые размещаются в EEPROM, разместить в памяти программ? Что-то ещё?
alex_hyp
Цитата(Палыч @ Feb 9 2009, 15:04) *
А, вот это и непонятно... Что же Вы хотите? Не инициализировать EEPROM? Данные, которые размещаются в EEPROM, разместить в памяти программ? Что-то ещё?


да, хотел константы разместить в памяти программы...

баловался с объявлением констант. и в одной из вариаций, линковщик выдал кроме секций CODE, DATA ещё и XDATA.
и тут я вспомнил, что именно XDATA и есть содержимое eep. что же тогда находится в секции DATA?
Палыч
Цитата(alex_hyp @ Feb 9 2009, 15:22) *
что же тогда находится в секции DATA?
См. EWAVR_CompilerReference.pdf Раздел "Segment reference"
Сергей Борщ
Цитата(alex_hyp @ Feb 9 2009, 14:22) *
и тут я вспомнил, что именно XDATA и есть содержимое eep. что же тогда находится в секции DATA?
Код
int a; // <- Статическая переменная. Память под нее выделяется в секции DATA, сегменте NEAR_Z

int b = 2; // Статическая инициализированная переменная. Память под нее выделяется в секции DATA, сегменте NEAR_I, начальное значение 2 хранится в секции CONST, сегменте NEAR_ID

__flash char const [] String = "Tipa test"; // константа во флеш.  Размещается в секции CONST, сегменте NEAR_F
Все это, и даже подробнее, вы могли прочитать в описании компилятора, не тратя напрасно время на баловство с объявлением констант.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.