Цитата(Waso @ Sep 12 2007, 13:32)

Вопрос - как сделать так чтобы клиент мог сам сменить прошивку через УСБ, не залазя внутрь и не замыкая ERASE? Подозреваю что самому надо писать лодыря. А нельзяли какнибудь применить встроенный??
Я делаю это так:
void ReProgramm(void)
{
ClrScr();
GotoXY(0,0);
*AT91C_PMC_PCDR = 1 << AT91C_ID_UDP;
if (USBPower)
{
PrintS("Отключите от USB!\r");
while (USBPower);
PrintS("Отключено.\r");
}
PrintS("Подключите к USB.\r\r");
while (!inKey())
{
if (USBPower)
{
PrintS("Запустите SAM-PROG.\r\rПосле прошивки-\rотключите от USB.");
AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDRSTEN | 200; // 0.8 sec, Watchdog Reset Enable
WDT;
EFC_PerformCommand(AT91C_BASE_EFC0,AT91C_MC_FCMD_CLR_GP_NVM,2);
PowerOff();
*AT91C_RSTC_RCR=0xA5000005; //Do reset
while(1); // Ждем WDT
}
}
}
Т.е. по команде пользователя запускается эта функция, далее он подключает прибор к компу, запускает SAM-Prog и заливает новую прошивку.