|
|
  |
размещение констант в ROM, AT91SAM7Sxxx |
|
|
|
Sep 18 2007, 11:54
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070

|
Цитата Что нужно сделать? 1. Прочитать документацию на компилятор и линкер, особое внимание уделить сегментам, глава Placing code and data. 2. Описать в XCL-файле свой сегмент с нужными границами, поправив границы других сегментов. 3. Объявить свою переменную в нужном сегменте, см. #pragma segment="имя сегмента". 4. Уяснить разницу между словами flesh (плоть) и flash (вспышка).
|
|
|
|
|
Sep 18 2007, 12:15
|

Местный
  
Группа: Свой
Сообщений: 426
Регистрация: 20-01-05
Из: Зеленоград
Пользователь №: 2 070

|
Цитата(Terrabyte @ Sep 18 2007, 16:02)  не получается так ! Специально проверил - все получилось. Нужно только чтобы на данную переменную была ссылка или она была объявлена как __root const uint Adr_fl ash = 0x1234; иначе линкер её выбрасывает как неиспользуемую.
|
|
|
|
|
Sep 18 2007, 12:36
|
Частый гость
 
Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042

|
Очлично, всё получилось, большое спасибо! flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh, flAsh !
|
|
|
|
|
Feb 25 2008, 11:05
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Переползаю с IAR4.42 на IAR5.11. В мануалах по компановщику не встретил такой информации (может чего-то упустил). Нашел только как размещать в регионах памяти не инициаконстанты. В мануале нашел лишь то, что можно размещать только неининциализируемые константы. Танцы с бубном не помогают. В IAR 4,42 делал следующим образом: #pragma location = 0x00001000 __root const unsigmed int data = 0x25022008; В IAR5.11 не работает, говорит, что константа должна быть __no_init. Собственно вопрос тот же, как разместить инициализируемую константу по указанному адресу в IAR5.11?
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Feb 25 2008, 14:46
|
Знающий
   
Группа: Свой
Сообщений: 509
Регистрация: 19-07-07
Из: г. Таганрог
Пользователь №: 29 246

|
Цитата(KRS @ Feb 25 2008, 16:06)  пару дней назад обсуждалось http://electronix.ru/forum/index.php?showtopic=43739В общем надо переменную закинуть в секцию и расположить секцию по определеннуму адресу в icf файле. Да уж, не весело. Собственно я так и думал
--------------------
Умные речи подобны строкам, напечатанным курсивом. К. Прутков
|
|
|
|
|
Jan 6 2014, 11:17
|
Частый гость
 
Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042

|
Цитата(vmp @ Sep 18 2007, 15:15)  Специально проверил - все получилось. Нужно только чтобы на данную переменную была ссылка или она была объявлена как __root const uint Adr_flash = 0x1234; иначе линкер её выбрасывает как неиспользуемую. извиняюсь за опечатки, забыл ответить. Получилось с константами. Спасибо за ответы!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|