Привет!
Возникла задача реализовать обновление прошивки контроллера LPC2378 с SD карты, а точнее из файла с карточки (т.е. нужна поддержка FAT16).
Я реализовал чтение файла с карточки и могу прочитать его по частям во внутреннюю RAM контроллера (при этом используются прерывания). Дальше как я понимаю я должен записать эти данные во flash при помощи IAP.
Но тут начинается пока что непонятная для меня каша с переносом таблиц прерываний в RAM и т.д...
Подскажите пожалуйста правильно ли я представляю себе алгоритм "самоперепрошивки" контроллера?
1. Включается контроллер и попадает в стартап, и далее в main(). 2. Я инициализирую SD и считываю оттуда версию файла прошивки, если она старая, то передаю управление программе по некоторому адресу ADDR. 3. Если прошивка новая, то я считываю максимально возможный ее кусок в RAM записываю этот кусок во flash по адресу ADDR при помощи IAP. 4. Выполняю п.3 до тех пор пока не считаю и не запишу весь файл в IAP. 5. Передаю управление по адресу ADDR.
Спасибо.
|