Пишу для включения лок-бита в IAR 4.20 a:
// flash part AT91C_BASE_MC->MC_FMR = ((AT91C_MC_FMCN)&(50 <<16)) | AT91C_MC_FWS_1FWS; while ((AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) != AT91C_MC_FRDY ); if ((AT91C_BASE_MC->MC_FSR & AT91C_MC_SECURITY) != AT91C_MC_SECURITY){ AT91C_BASE_MC->MC_FCR = AT91C_MC_FCMD_SET_SECURITY ; while ((AT91C_BASE_MC->MC_FSR & AT91C_MC_FRDY) != AT91C_MC_FRDY ); }
насколько я понял, после етого включается лок-бит. Как сказано в даташите, должен отрубиться JTAG и вообще все операции обмена с внешним миром. .... как ни странно, после етого отладка происходит по прежнему корректно, и не отваливается. Кроме того, меня терзает еще одно смутное сомненье. Насколько я понял из чтения конференции, для прошивки контроллера, пользуясь средсвами SAMBA необходимо несколькими шаманскими пассами загнать в бут загрузчик и работать с ним. При етом залив в контроллер данных идет через USB, или Serial Debug Port. Так вот, я никак не могу понять, почему через JTAG интерфейс можно отлаживаться, но нельзя втупую заливать хексы, или я просто не догнал еще как ето делается ?
Разрешите мои сомненья, плз.
--------------------
Если хочешь узнать, что ждет тебя на дороге впереди, спроси у тех, кто возвращается по ней.
|