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

 
 
> организовать сегмент во flash, читал-читал - ничего не понял...
1921
сообщение Jan 19 2011, 15:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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};
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Jan 19 2011, 16:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Дело в том, что эта прагма действиует только на одно последующее объявление переменной или константы. Чтобы не заморачиваться с кучей строк прагмы и ручным вычислением адресов, объедините свои константы в структуру.
Go to the top of the page
 
+Quote Post
1921
сообщение Jan 20 2011, 11:20
Сообщение #3


Участник
*

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



Цитата(rezident @ Jan 19 2011, 19:23) *
Дело в том, что эта прагма действиует только на одно последующее объявление переменной или константы. Чтобы не заморачиваться с кучей строк прагмы и ручным вычислением адресов, объедините свои константы в структуру.


А прагма будет действовать на всю структуру?
Хотя не очень охота возиться с длинными записями типа "структура.элемент". Удобнее было бы организовать сегмент, указать адрес его размещения и размер (например, 512 байт, чтобы если тереть, так уж всё!), а при объявлении констант указывать, в каком сегменте их разместить. Как-то так. Может, черканёте строчки три, как это сделать? Я чего-то не нашёл примеров. В этом сегменте я буду держать переменные (параметры), которые могут иногда изменяться (настройки там всякие...).
Кстати ещё вопросик. Тут один товарисч из scanti сказал, что время непрерывной записи сегмента ограничено. Долгое стояние в этом режиме приводит к развалу начала записываемого сектора, т.к. нельзя долго держать включенным генератор напряжения записи. Я так понимаю, это определяет минимальную частоту MCLK при этой процедуре. Не подскажите, какую величину имеет это время? Он навскидку не смог сказать.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jan 20 2011, 13:18
Сообщение #4


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(1921 @ Jan 20 2011, 14:20) *
Кстати ещё вопросик. Тут один товарисч из scanti сказал, что время непрерывной записи сегмента ограничено. Долгое стояние в этом режиме приводит к развалу начала записываемого сектора, т.к. нельзя долго держать включенным генератор напряжения записи. Я так понимаю, это определяет минимальную частоту MCLK при этой процедуре. Не подскажите, какую величину имеет это время? Он навскидку не смог сказать.

Читайте даташит на кристал (не юзер гид), раздел Flash. Время порядка десятка мс. К MCLK это имеет очень далекое отношение, ибо процесс записи это несколько команд. Ну не делайте MCLK менее килогерца просто sm.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 1921   организовать сегмент во flash   Jan 19 2011, 15:59
||- - rezident   Цитата(1921 @ Jan 20 2011, 16:20) А прагм...   Jan 20 2011, 12:59
|- - 1921   Цитата(rezident @ Jan 19 2011, 19:23) Дел...   Jan 20 2011, 14:15
- - MrYuran   По-моему, есть ещё #pragma section или что-то навр...   Jan 20 2011, 11:41
|- - Сергей Борщ   QUOTE (MrYuran @ Jan 20 2011, 13:41) Вот ...   Jan 20 2011, 11:51
|- - MrYuran   Цитата(Сергей Борщ @ Jan 20 2011, 14:51) ...   Jan 20 2011, 12:00
|- - 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


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

 


RSS Текстовая версия Сейчас: 28th July 2025 - 20:04
Рейтинг@Mail.ru


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