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

 
 
> Softune, константы по адресу, размещение данных в ROM
Terrabyte
сообщение Sep 5 2008, 11:22
Сообщение #1


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

Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042



Приветствую тех, кто пользует мк Fujitsu, MB90F_

Кто знает, как в IDE Softune инициализировать константы по конкретным адресам ROM?
Собственно, нужно, чтобы при заливке ПО в мк, таблица значений хранилась по определённому адресу во flash.

в IARе, я делал например так:
volatile const int var @ "MYROM" = 0xff104d;
или
#pragma location = "MYROM"
const int var = 0xff104d;

а в Softune нашёл вот что:
#pragma segment и #pragma section, но это переименование ...
может в линкере настроить надо? а то что то не выходит, например пишу:
#pragma segment DATA=ISD,attr=DATA,locate=0xFF1090
const unsigned short var = 0xabcd;
// но она всё равно находится там же - в области, куда по умолчанию помещаются константы
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
spf
сообщение Sep 8 2008, 16:10
Сообщение #2


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Terrabyte @ Sep 5 2008, 17:22) *
Приветствую тех, кто пользует мк Fujitsu, MB90F_

Кто знает, как в IDE Softune инициализировать константы по конкретным адресам ROM?
Собственно, нужно, чтобы при заливке ПО в мк, таблица значений хранилась по определённому адресу во flash.


Вообще-то все описано в доках и есть в примерах.
SWB (F2MC-16) V3 Software 16 bit Development Environment

Один из вариантов:
В отдельном файле объявляем секцию
Код
#pragma section FAR_CONST=S_BOOT
// далее объявляем нужные переменные ...


В параметрах линкера должно быть описано
Код
-ro S_ROM=0xFFBdfe/0xFFBFFF
-sc S_BOOT=S_ROM


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Terrabyte
сообщение Sep 10 2008, 13:15
Сообщение #3


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

Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042



Не получается.
Да, я почитал о том как настраивать линкер и объявлять новые секции, это в хелпе есть, но спасибо за ссылку, пробовал так как вы предложили.
В настройках линкера делал так: Softune/Setup Project/Linker/Disposition.. добавил секцию S_BOOT с адресами 0xFF7000 по 0xFFDFFF и в отдельном файле сделал:
#pragma section FAR_CONST=S_BOOT
int var = 0xABCD;
но не вижу чтобы они там появились, может из-за того что я в симуляторе смотрю?
Go to the top of the page
 
+Quote Post
spf
сообщение Sep 10 2008, 13:49
Сообщение #4


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Terrabyte @ Sep 10 2008, 19:15) *
В настройках линкера делал так: Softune/Setup Project/Linker/Disposition.. добавил секцию S_BOOT с адресами 0xFF7000 по 0xFFDFFF и в отдельном файле сделал:
#pragma section FAR_CONST=S_BOOT
int var = 0xABCD;
но не вижу чтобы они там появились, может из-за того что я в симуляторе смотрю?

Допустил неточность в прошлом сообщении. Надо:
Код
#pragma section FAR_CONST=S_BOOT
// далее объявляем нужные КОНСТАНТЫ ...
__far const int var = 0xAA55;


Работает и более простой вариант, без специальных манипуляций в линкере:
Код
#pragma section FAR_CONST=MY_CONST,attr=CONST, locate=0xff1000
__far const unsigned char var=0x55;


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
Terrabyte
сообщение Sep 10 2008, 15:25
Сообщение #5


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

Группа: Свой
Сообщений: 124
Регистрация: 2-01-07
Из: Russia
Пользователь №: 24 042



спасибо, получилось таки константу запихнуть туда, но вот моя структура данных туда не хочет идти.
ещё вопрос, где описано : FAR_CONST
#pragma section FAR_CONST=mysection,attr=CODE,locate=0xFF7000
к каким данным его отнести? и область адресов- ?
Go to the top of the page
 
+Quote Post
spf
сообщение Sep 10 2008, 16:35
Сообщение #6


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Terrabyte @ Sep 10 2008, 21:25) *
спасибо, получилось таки константу запихнуть туда, но вот моя структура данных туда не хочет идти.
ещё вопрос, где описано : FAR_CONST
#pragma section FAR_CONST=mysection,attr=CODE,locate=0xFF7000
к каким данным его отнести? и область адресов- ?

Не совсем понял вопрос.

Структуру данных объявляешь как константу?

Почему attr=CODE, должно быть CONST?

Область адресов констант - область ROM. (объявленной в линкере -ro xxxxx и куда ссылается -sc CONST)

Все описано в доке SOFTCCMP "Section Name Change Function", только FAR_ это приставка, поэтому именно FAR_CONST там не описана.


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 02:27
Рейтинг@Mail.ru


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