реклама на сайте
подробности

 
 
> IAR icf, Как сказать линкеру, что block относится к read-only?
Alechek
сообщение May 15 2016, 08:46
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Сделал эмуляцию EEPROM, хочу разместить в конце FLASH памяти. Соответственно, расположение должно передаваться в код с линковщика.

Определил в icf
Цитата
define exported symbol __NVRAM_page_size__ = 1024;
define exported symbol __ICFEDIT_region_NVRAM_pages__ = 2;

define block NVR with alignment = __NVRAM_page_size__,
size = __NVRAM_page_size__ * __ICFEDIT_region_NVRAM_pages__ { };

"NVRAM" : place at end of ROM_region { block NVR };


Все работает хорошо, за исключением одного: линковщик не знает, что это read-only регион памяти. В статистике своей относит его к readwrite data.
Код
"NVRAM":                                    0x800
  NVR                          0x08003800   0x800  <Block>
    NVR               uninit   0x08003800   0x800  <Block tail>
                             - 0x08004000   0x800
.......
    Module                 ro code  ro data  rw data
    ------                 -------  -------  -------
...................
    Gaps                                  2
    Linker created                       43    2 560


Как бы на программу не влияет, но для оценки ресурсов нужно производить лишние математические действия...
Есть варианты сказать линкеру, что этот блок - "readonly data"?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
amiller
сообщение May 15 2016, 18:05
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



А если так в icf файле (IAR):
CODE

define symbol __region_EEPROM_start__ = 0x08006000; /* 4кбайт = 2 сектора */
define symbol __region_EEPROM_end__ = 0x08006FFF;

define region EEPROM_region = mem:[from __region_EEPROM_start__ to __region_EEPROM_end__];

place in EEPROM_region { readonly section my_eeprom };
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th August 2025 - 19:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016