Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: размещение переменной по фиксированному адресу
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
*SERG
Пишу в KEIL (не долго), очень нужно указать переменной по какому адресу ей располагаться. В СИ вроде таких функций нет, только указатели, но они делают "обратное". Каким образом поступить? Может линкеру как то указать, где расположить переменную? Или асм вставку?Помогите плиз help.gif

ЗЫ. раньше видел такие темы, но щас найти не смог и поиск по форуму молчит.
aaarrr
Смотрим FAQ, читаем в мануале раздел Using Scatter-loading Description Files.
KRS
Цитата(*SERG @ Feb 20 2008, 14:41) *
только указатели, но они делают "обратное"

что значит обратное?

если вы хотите обращаться по определенному адресу и использовать только стандартный С, самое простое определить макрос.
примерно так
Код
#define var_at_addr (*((unsigned*)0x1230))
unsigned val;
val = var_at_addr;
var_at_addr = val+1;

если это регистр переферии то volatile вставить в макрос
VAI
Цитата
очень нужно указать переменной по какому адресу ей располагаться

Вот цитата из имеющегося у Вас файла ...\Keil\ARM\Hlp\Release_Notes.htm
Цитата
Added __at keyword that allows to locate constants on absolute addresses.

C Example: The following example will locate a section to address 0x1F00:
Код
#include <absacc.h>

const char MyText[] __at (0x1F00) = "TEXT AT ADDRESS 0x1F00";

Assembler Example: In assembler files you may define the location using section names composed of |.ARM.__AT_<addr>|. The following example will locate a section to address 0xFFE0:
Код
     AREA |.ARM.__AT_0xFFE0|, CODE, READONLY

Откройте этот файл и посмотрите, там в изменениях на версию 3.03а это написано.
Это может быть Вам отправной точкой для дальнейшего поиска более подробной информации в документации, хотя то, о чем Вы спрашивали, уже имеется в примере.
Можно поискать в ...\Keil\ARM\Hlp\armccref.chm по ключевому слову __at
*SERG
VAI благодарю!!!Всё получилось!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.