|
Размещение констант по фиксированным адресам, IAR,AVR,C |
|
|
|
 |
Ответов
|
Jan 30 2009, 12:53
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(Сергей Борщ @ Jan 30 2009, 15:46)  В скрипте линкера создаете свой сегмент (там много похожих строчек, разберетесь). В коде на С указываете #pragma location = имя сегмента. В коде на ассемблере - RSEG имя сегмента
Примеры - в документации, описании #pragma location и RSEG в файле cfg3s.xcl в пункте ////////////////////////////////////////////////////////////////////////////// // Code (flash) segments ... ... ... ... пишу следущее -Z(CODE)MAIN_DATA_F=0x3FF0-0x3FFF потом в файде маин #pragma location = MAIN_DATA_F; в итоге Код Error[Pe020]: identifier "MAIN_DATA_F" is undefined E:\RADIO\IAR4.21A\avr\tutor\eth_rem_dev_tcp-2.11\main.c 142 ------
|
|
|
|
|
Jan 30 2009, 18:29
|

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

|
Ну документацию-то надо было почитать... Код #pragma segment = "MAIN_DATA_F" #pragma location = "MAIN_DATA_F"
const __flash unsigned char my1[] = { 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88, 0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF,0x11 };
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 30 2009, 20:51
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Цитата(Сергей Борщ @ Jan 30 2009, 21:29)  Ну документацию-то надо было почитать... Код #pragma segment = "MAIN_DATA_F" #pragma location = "MAIN_DATA_F"
const __flash unsigned char my1[] = { 0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88, 0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF,0x11 }; Благодарю за помощь всё получилось. Праввда надо было ещё -Z(CODE)MAIN_DATA_F=700-7FF вместо -Z(CONST)MAIN_DATA_F=700-7FF. А как компилятор будет реагировать если посреди программы будут стоять мои константы, как ход выполнения программы ? джампы, ? будут перепрыгивать через мой сегмент. Интересуюсь, в реалии константы размещу после прошивки в конце флеш.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|