Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите ламеру с синтаксисом в IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
LeoLabs
Помогите разобраться - не пойму что значат следующие строки. Если не сложно поподробнее.

Код
#define ABC  *(unsigned int *)0xFFFFF000

#define EXTERNAL_ADDR 0x00800000
#define RAM_COMM_LBYTE ((unsigned char *)(EXTERNAL_ADDR+(0x0000<<1)))
#define RAM_COMM_HBYTE (*(unsigned char *)(EXTERNAL_ADDR+(0x0300<<1)))

я так понимаю это для работы с внешним устройством. smile.gif
forever failure
ну это в коде будет
ABS = 0x0001;
или
int i = ABS;
А вообще
#define ABC *(unsigned int *)0xFFFFF000
значит, что ABC - переменная целого типа по адресу 0xFFFFF000.
А если для работы с внешним устройством, следовало бы её объявить как
#define ABC *(unsigned int volatile *)0xFFFFF000
sensor_ua
#define ABC *(unsigned int *)0xFFFFF000
можно понимать как указатель на ячейку памяти размером типа int, расположенную по адресу 0xFFFFF000, т.е. фактически именование ячейки. Не есть переменная, но используется как таковая. При наличии чтения-модификации-записи у соответствующих ячеек может быть использована как обычная переменная указанного типа. Приведение типа при использовании в выражениях может вызвать вопросы (к компилятору и головеwink.gif.

#define EXTERNAL_ADDR 0x00800000
#define RAM_COMM_HBYTE (*(unsigned char *)(EXTERNAL_ADDR+(0x0300<<1)))
Фактически то же - можно понимать как указатель на ячейку памяти размером типа unsigned char, расположенную по адресу EXTERNAL_ADDR+(0x0300<<1), т.е. по адресу 0x00800000+(0x0300<<1). Также есть именование ячейки памяти.
LeoLabs
А вот еще вопросик. smile.gif (ох и глуп же я :-[)

Код
state=*(unsigned int*)p+(DatInfo[complect]?0x0200u:0)

Что значит вопрос "?" в выражении, а также буква u "0x0200u" и ":" ?
zltigo
Цитата(LeoLabs @ Jun 1 2006, 13:19) *
Что значит вопрос "?" в выражении, а также буква u "0x0200u" и ":" ?

А не взять-ли Вам ЛЮБУЮ книжку по 'C' для начала, а то ведь чем дальше в лес, тем больше дров.
LeoLabs
Цитата(zltigo @ Jun 1 2006, 17:25) *
Цитата(LeoLabs @ Jun 1 2006, 13:19) *

Что значит вопрос "?" в выражении, а также буква u "0x0200u" и ":" ?

А не взять-ли Вам ЛЮБУЮ книжку по 'C' для начала, а то ведь чем дальше в лес, тем больше дров.

Пардон, туплю, вот и нашел про ?:, теперь ище про u smile.gif. Спасибо все откликнувшимся.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.