[an error occurred while processing this directive]
Опять-же САМка не даётся...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Неофит 16 января 2006 г. 23:57

Хотел написать моргалку светодиодом для AT91SAM7S64-EK на ИАРе. Типа загрузить её в ОЗУ и передать ей управление - пусть порезвится. Нифига.
Во-первых не смог добиться, что-бы компилятор поместил функцию по желаемому адресу. Соответственно, результаты компиляции разительно отличаются от видимого в окошке дизассемблера при отладке. Коды, с которых начинается функция идут где-то с адреса 0x013C.
В настройках линкера написал генерацию файлов "debug(ubrof)" и "raw-binary", ИксЦеэЛь так поправил (с расчётом, чего осталось свободно от самбы):
-Z(CONST)INTRAMSTART_REMAP=00202000
-Z(CONST)INTRAMEND_REMAP=00203FFF
-DRAMSTART=00202000
-DRAMEND=002003FFF

А сам текст - такой:


#include "AT91SAM7S64.h"
#include "Board.h"

__ramfunc void main(void)
{
unsigned int i;
AT91PS_PMC pPMC = AT91C_BASE_PMC; //Pointer to PMC reg's structure
pPMC->PMC_PCER |= 0x4; //PIOA clock enable
AT91PS_PIO pPIO = AT91C_BASE_PIOA; //Pointer to PIOA reg's structure
pPIO->PIO_PER |= LED1;// LED1 controlled by PIO
pPIO->PIO_OER |= LED1;// LED1 - output

AT91PS_RTTC pRTTC = AT91C_BASE_RTTC; //Pointer to RTTC reg's structure
pRTTC->RTTC_RTMR = 0x8000; //Preload RTT divider
pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTRST; //Clr and start RTT

while ((pPIO->PIO_PDSR & SW4_MASK) != 0)
{
i = pRTTC->RTTC_RTVR;
if (i & 0x1 == 1)
{
pPIO->PIO_CODR &= 0xFFFFFFFE;
pPIO->PIO_SODR |= 0x1;
}
else
{
pPIO->PIO_SODR &= 0xFFFFFFFE;
pPIO->PIO_CODR |= 0x1;
};
};
}

Покритикуйте конструктивно. А то уж думаю плюнуть и достать из загашника АВРки и ихнюю студию...

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru