|
организовать сегмент во flash, читал-читал - ничего не понял... |
|
|
|
Jan 19 2011, 15:59
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 29-09-10
Пользователь №: 59 820

|
Прочитал, как хранить данные во fash по определённому адресу с помощью директивы __location. Проблема возникла в том, что по этому адресу размещается только константа, следующая непосредственно за директивой. Остальные же линковщик распихивает по своему разумению. Можно ли и как организовать сегмент в flash по определённому адресу, чтобы в нём лежала группа переменных? Читал-читал - ничего не понял... #pragma location=0x8000 const unsigned char buf[5]={0,0,0,0,0}; - вот эта лежит на 8000 const unsigned char buf1[10]={48,49,50,51,52,53,54,55,56,57}; - а все ниже где-то в другом месте. const unsigned char buf2[8]={0,1,2,3,4,5,6,7};
|
|
|
|
|
 |
Ответов
|
Jan 20 2011, 11:41
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
По-моему, есть ещё #pragma section или что-то навроде. Объявите свою секцию и пихайте туда. Хотя структура в любом случае красивее, данные связаны и сгруппированы. Вот ещё из FAQ от Сергея Борща: Цитата 14) Q: Как при написании программы разместить начальные данные в сегменте информационной памяти Flash? A: Для компилятора IAR в управляющем файле линкера MSP430xxxxxx.xcl определен сегмент INFO. Поместить в него данные можно при помощи команды компилятору #pragma memory = constseg(INFO) и атрибута const. Например: #pragma memory = constseg(INFO) const char * HelloString="Hello"; const float One = 1.0; #pragma memory = default; Эти данные попадут в сегмент INFO при программировании кристалла.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
Сообщений в этой теме
1921 организовать сегмент во flash Jan 19 2011, 15:59 rezident Дело в том, что эта прагма действиует только на од... Jan 19 2011, 16:23 1921 Цитата(rezident @ Jan 19 2011, 19:23) Дел... Jan 20 2011, 11:20  rezident Цитата(1921 @ Jan 20 2011, 16:20) А прагм... Jan 20 2011, 12:59  jorikdima Цитата(1921 @ Jan 20 2011, 14:20) Кстати ... Jan 20 2011, 13:18 1921 Цитата(rezident @ Jan 19 2011, 19:23) Дел... Jan 20 2011, 14:15   1921 Видите ли, боюсь, но память info меня не устроит. ... Jan 20 2011, 12:55 jorikdima А так:
Кодtypedef struct
{
unsigned char buf... Jan 20 2011, 14:20 1921 Цитата(jorikdima @ Jan 20 2011, 17:20) А ... Jan 20 2011, 14:25 rezident Вот так попробуйте
Кодtypedef struct MyPar_t
{
u... Jan 20 2011, 14:27 1921 будет warning с предупреждением о том, что вы две ... Jan 20 2011, 14:40 rezident А блин! там const лишний. Извиняюсь. Вот так в... Jan 20 2011, 14:42 1921 Цитата(rezident @ Jan 20 2011, 17:42) А б... Jan 20 2011, 14:53  rezident Цитата(1921 @ Jan 20 2011, 19:53) То же с... Jan 20 2011, 14:57   1921 Цитата(rezident @ Jan 20 2011, 17:57) Я п... Jan 20 2011, 15:02    rezident Цитата(1921 @ Jan 20 2011, 20:02) Провери... Jan 20 2011, 15:19     1921 Цитата(rezident @ Jan 20 2011, 18:19) Уст... Jan 20 2011, 15:31 rezident Перечитайте еще раз сообщение №13. Я там пояснил д... Jan 20 2011, 15:35 =DS= В последних версиях компилятора введен специальный... Jan 21 2011, 19:17  1921 Цитата(=DS= @ Jan 21 2011, 22:17) В после... Jan 31 2011, 10:12
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|