Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Размещение переменных в памяти программ
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
transformator
Подскажите, пожалуйста, как в KEILе разместить переменные в памяти программ по определенным адресам таким образом, чтобы еще при программировании записать туда начальные значения.
Палыч
Цитата(transformator @ Jun 17 2010, 09:16) *
Подскажите, пожалуйста, как в KEILе разместить переменные в памяти программ по определенным адресам таким образом, чтобы еще при программировании записать туда начальные значения.

C "переменными" в памяти программ - это Вы, наверное, погорячились. Константы - другое дело.
С размещением констант по определенному адресу в памяти программ в Keil есть определённые трудности. Можно поступить так: http://onembedding.bialix.com/tools/keil/a.../explicit_addr/
Если это не устроит - смотрите директиву #pragma userclass и команды линкера LX51 (задаются Options -> LX51 Locate -> User Class)
repairDV
Цитата(transformator @ Jun 17 2010, 16:16) *
Подскажите, пожалуйста, как в KEILе разместить переменные в памяти программ по определенным адресам таким образом, чтобы еще при программировании записать туда начальные значения.

Ну, в принципе, это бессмысленно. А вообще, если известно адресное пространство для переменных, то
DECADA2 data 1;
DECADA3 data 2;
DECADA4 data 3;
DECADA5 data 4
можно приблизительно подсчитать. А с константами - просто:

ORG 2900
TABLE:
DB 0x40 ;0
DB 0x79 ;1
DB 0x24 ;2
DB 0x30 ;3
DB 0x19 ;4
DB 0x12 ;5
DB 0x02 ;6
DB 0x2c ;7
DB 0x00 ;8
DB 0x10 ;9
DB 0x08 ;A
DB 0x03
DB 0x46
DB 0x21
DB 0x06
DB 0x0e

;----------------------------------------
; End of file.

END

в .asm файле
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.