Полная версия этой страницы:
Softune, константы по адресу
Terrabyte
Sep 5 2008, 11:22
Приветствую тех, кто пользует мк 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;
// но она всё равно находится там же - в области, куда по умолчанию помещаются константы
Цитата(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
Terrabyte
Sep 10 2008, 13:15
Не получается.
Да, я почитал о том как настраивать линкер и объявлять новые секции, это в хелпе есть, но спасибо за ссылку, пробовал так как вы предложили.
В настройках линкера делал так: Softune/Setup Project/Linker/Disposition.. добавил секцию S_BOOT с адресами 0xFF7000 по 0xFFDFFF и в отдельном файле сделал:
#pragma section FAR_CONST=S_BOOT
int var = 0xABCD;
но не вижу чтобы они там появились, может из-за того что я в симуляторе смотрю?
Цитата(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;
Terrabyte
Sep 10 2008, 15:25
спасибо, получилось таки константу запихнуть туда, но вот моя структура данных туда не хочет идти.
ещё вопрос, где описано : FAR_CONST
#pragma section FAR_CONST=mysection,attr=CODE,locate=0xFF7000
к каким данным его отнести? и область адресов- ?
Цитата(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 там не описана.
Terrabyte
Sep 11 2008, 07:50
константы на месте, с помощью простого объявления сделал, без коррекции в линкере
спасибо.
У меня теперь другой вопрос, на сколько корректно работает оптимизация ?
Собственно, оптимизация нужна всего лишь, для того чтоб inline работало !!!
кагда включаю Level1 или ещё более высокий,
почему то программа перестает работать нормально, на Level 1-2 работает 3 секунды,
на Level 4 - не запускается!
а когда стоит NONE всё работает как надо, даёт ли
что-нибудь отключение галочек а настойках Optimize ?
Цитата(Terrabyte @ Sep 11 2008, 13:50)

У меня теперь другой вопрос, на сколько корректно работает оптимизация ?
На столько корректно, что нормальная программа работает при любом уровне оптимизации.
Цитата
Собственно, оптимизация нужна всего лишь, для того чтоб inline работало !!!
кагда включаю Level1 или ещё более высокий,
почему то программа перестает работать нормально, на Level 1-2 работает 3 секунды,
на Level 4 - не запускается!
а когда стоит NONE всё работает как надо, даёт ли
что-нибудь отключение галочек а настойках Optimize ?
Ищи баги в программе.
По поводу оптимизации есть хорошая апнота на сайте или диске.
В доке на компилятор тоже достаточно подробно расписано про оптимизацию.
Terrabyte
Sep 12 2008, 10:23
да, действительно был в программе баг, спасибо
WiseAlex
Sep 26 2008, 11:30
Цитата(spf @ Sep 11 2008, 20:52)

На столько корректно, что нормальная программа работает при любом уровне оптимизации.
В принципе согласен, но
inline я так и не заставил разворачиваться в fr на с++
и еще если ставить оптимизацию на max speed для всей программы компиляция падает а если только отдельные файлы, то нормально, хотя и жрет при этом на моем проекте около 1 гига памяти при компиляции... Правда использует таки два ядра

короче компилятор достаточно кривой вернее не достаточно ровный
Цитата(WiseAlex @ Sep 26 2008, 17:30)

inline я так и не заставил разворачиваться в fr на с++
В проектике на scmRTOS все работает с инлайнами.
Цитата
и еще если ставить оптимизацию на max speed для всей программы компиляция падает а если только отдельные файлы, то нормально, хотя и жрет при этом на моем проекте около 1 гига памяти при компиляции... Правда использует таки два ядра
короче компилятор достаточно кривой вернее не достаточно ровный

Случайно не пятую версию пользуете?
В оболочке Softune FR ни разу не компилил, а мейком все работает при любой оптимизации.
WiseAlex
Sep 27 2008, 19:26
Цитата(spf @ Sep 26 2008, 17:13)

В проектике на scmRTOS все работает с инлайнами.
Случайно не пятую версию пользуете?
да 5.1. вроде в последнем особых отличий не было мы диск и не заказали, но если у них стало получше с компиляцией, надо взять. Кстати, может Вы в курсе, на КТЦ диски в наличии есть?
Цитата
В оболочке Softune FR ни разу не компилил, а мейком все работает при любой оптимизации.
Все никак не спрыгнем с Softune. Уже раз 5 про eclipse думали но каждый раз все упирается в необходимость где-то найти время...
Цитата(WiseAlex @ Sep 28 2008, 01:26)

да 5.1. вроде в последнем особых отличий не было мы диск и не заказали, но если у них стало получше с компиляцией, надо взять. Кстати, может Вы в курсе, на КТЦ диски в наличии есть?
Пятая версия - переходная, запускал ее пару раз, потом быстро вышла 6.
Диски не нужны. Файлы с прошлогоднего диска заливал сюда, а сейчас можно все взять с сайта производителя --
http://electronix.ru/forum/index.php?showtopic=52837Цитата
Все никак не спрыгнем с Softune. Уже раз 5 про eclipse думали но каждый раз все упирается в необходимость где-то найти время...

Нехватка времени ощущается, вам даже не было времени обновить софт, к которому у вас имеются замечания
WiseAlex
Sep 28 2008, 17:44
Цитата(spf @ Sep 28 2008, 15:04)

Нехватка времени ощущается, вам даже не было времени обновить софт, к которому у вас имеются замечания

Замечание принято

Хотя есть пара слов в свою защиту:
у мня есть замечания практически к любому софту

а его много - за всем не уследишь
Softune не основной мой инструмент и пока он более-менее работает - я особенно не переживаю. На 5.1 мы перешли только из-за того что версия которую мы использовали до этого стала глухо падать на моем коде
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.