И еще, есть замечания по инициализации генератора тактовой частоты:
1. В регистр PLLR пишутся какие-то не те значения, не то, что указаны в комментариях. В поле делителя должно быть прописано значение 5 (а не 3), в поле умножителя - 25 (а не 24);
2. До кучи (для полной икебаны

) можно сразу прописать и правильное значение делителя USB (1:2);
3. Запись в MCKR выполнена откровенно неправильно. Нужно сначала прописать поле прескалера, дождаться установления флага MCKRDY, затем прописать поле выбора источника тактовой частоты и снова дождаться флага MCKRDY. Что-то типа:
Код
pPMC->PMC_MCKR = AT91C_PMC_CSS_SLOW_CLK | AT91C_PMC_PRES_CLK_2;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | AT91C_PMC_PRES_CLK_2;
while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
В общем, внимательно прочтите раздел 29.7 руководства.
Цитата(cpl @ Oct 4 2007, 11:23)

он (бит GPNVM2) должен прописываться в программе ?
Нет, этот бит программируется с помощью самбы. На вкладке Flash нужно выбрать макрос Boot from Flash (из списка) и нажать кнопку Execute
Удачи!
P.S. Еще вспомнил: нужно перед инициализацией генератора настроить Embedded Flash Controller - установить нужное число wait states. Правильное значение смотрите в описании на свой контроллер. У меня в AT91SAM7SE512 при питании ядра 1.8 В требуется 1 WS.
Сообщение отредактировал ljerry - Oct 4 2007, 07:53