объявляется структура таймера (последовательно регистры), с помощью преобразования типов присваивается ей адрес начала физической карты памяти таймера/ов. Далее осуществляется доступ. к примеру
Отправлено
ы (213.108.4.47) 16 февраля 2011, г. 15:48
В ответ на:
Понятнее, но не совсем+++ отправлено
dshabrov 16 февраля 2011, г. 15:37
допустим по фиксированному адресу 0x12345670 в SRAM лежит 3 32x битные
переменные:
varA, varB и varC по адресам 0x12345670, 0x12345674 и 0x12345678
можно написать так
u32_t *p;
p = (u32_t*)0x12345670;
varA = *p;
а можно сделать так
typedef struct {
u32_t varA ;
u32_t varB ;
u32_t varC ;
} VarSet;
#define VAR ((volatile VarSet *) 0x12345670)
и
VAR->varA = 0x12;
VAR->varB = 0x13;
и т.д.
второй способ явно нагляднее