Разбираюсь с at91sam7s256-ek.
Пытаюсь заставить мигать 4 светодиода на PA0-PA3
Установил iar 5.40, samba v1.8.
Создал простой проект с таким кодом:
CODE
void main(void)
{
#include "C:\Program Files\IAR Systems\IAR ARM\arm\inc\Atmel\ioat91sam7s256.h"
//разрешение тактирования pio
AT91C_BASE_PMC->PMC_PCER = (1ul<<AT91C_ID_PIOA);
//попытка настройки gpio
AT91C_BASE_PIOA->PIO_OER = (1ul<<3)|(1ul<<2)|(1ul<<1)|(1ul<<0);
for(;;)
{
//устанавливаем ножку
AT91C_BASE_PIOA->PIO_SODR = (1ul<<3)|(1ul<<2)|(1ul<<1)|(1ul<<0);
for(long i=1000000; i; i--);
//сбрасываем ножку
AT91C_BASE_PIOA->PIO_CODR = (1ul<<3)|(1ul<<2)|(1ul<<1)|(1ul<<0);
for(long i=1000000; i; i--);
}
}
В настройках IAR указал файл конфигурации линкеру $TOOLKIT_DIR$\examples\Atmel\at91lib\boards\at91sam7s-ek\at91sam7s256\flash.icf
Проект скомпилироваля с одним предупреждением:
Код
Warning[Lp012]: no sections with name FIQ_STACK included - special symbol FIQ_STACK$$Limit (referenced from cstartup.o(rt4t_al.a)) will be zero
Залил через самбу bin-файл в контроллер. Естественно ничего сразу не заработало, но светодиоды приблизительно раз в 10 секунд мерцают или сразу после нажатия кнопочки RESET.
Теперь собственно вопросы:
1. При заливке через самбу прошивки в МК пишется что всё ОК. Но чтобы перепрошить МК новой прошивкой необх стереть память, востановить загрузчик? Или я както неправильно заливаю прошивку в МК?
2. Нигде в папках IARа не могу найти стартап для данного МК. Нужно ли его добавлять к проекту или он добавляется автоматически?
3. Связано ли это предупреждение с тем что у меня нет стартапа в проекте?
4. Ну и по коду программы - в симуляторе всё крутится нормально, в железе не работает. Есть ли какието особенности при начальном запуске SAMов?
Когдато тренеровался на LPC2468 - там подобный код шёл даже без настройки PLL (нужен был только корректный .icf).
Также просьба подсказать какие разделы в документации следует читать в первую очередь (761 страница - сложновать осилить всё за раз).
Заранее спасибо всем кто поможет и направит на путь истинный