[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Romario 08 октября 2001 г. 13:11
В ответ на: Уточнение ... отправлено Начинающий 08 октября 2001 г. 12:51

по порядку:
1) к регистрам uC/uP данные секции не применимы. для регистров есть ключевое слово register, да и то оно _не_ является указом для компилятора, а всего лишь является "просьбой" разместить переменную в регистре.
2) к ОЗУ это относится так - см. предыдущий _не_ответ_ :)
3) для памяти программ есть секция .text, для констант (строки и т.д) секция типа .rodata (read only data) которая пихается в .text
4) локальные переменные в процедурах храняться в стеке, размер которо
го задается в коммандом файле линкера. Обычно он располагается после всех user's секций. И его началом инициализируется SP процессора.

5) особо задумываться над тем, где будет переменная imxo не стОит, т.к
все делается runtime кодом. Если нужен контроль над каким нибудь участком данных целесообразно создавать свой сегмент данных и направлять объявляемые переменные туда, если конечно это позволяет линкер. Например секция данных, которые должны храниться в nvram. Обявляем ее, пихаем переменные по мере надобности а, запись их идет в процедуре которая знает начало/конец этого сегмента и ничего не знает о размерности его членов и пишет все одним куском. Но это так, отвлечение...
6) Чтобы это ясно понять, нужен пример, которого я привести не могу т.к. эти дела специфичны

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru