реклама на сайте
подробности

 
 
> dsPIC33F - запись в FLASH-память программ, Непонятки с системой CodeGuard
Harvester
сообщение Jun 1 2013, 11:34
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Добрый день.
Имеется dsPIC33FJ64GP206. Память разбита на Boot Segment (0x0200..0x07FF, уровень безопасности - High, защита от записи включена) и General Segment (уровень безопасности - Standard). В Boot Segment лежит загрузчик и, соответственно, п/п записи/чтения Flash.
Загрузчик и п/п работы с Flash полностью отлажены и работают.

В какой-то момент потребовалось писать в Flash непосредственно из основной программы, т.е. из GS в GS. Однако при попытке стирания страницы возникает прерывание Address Error Trap. Основная пикантность ситуации в том, что п/п работы с Flash находятся в BS, т.е. фактически запись в Flash производится из BS, также как и при работе загрузчика. Эта проблема возникает и при стандартном уровне безопасности BS. Если убрать BS, то запись работает.

Кто-нибудь сталкивался с такой проблемой? Может я что-то упустил (в Errat-ах ничего похожего не описано)?

Примечание.
Я в курсе, что при высоком уровне безопасности BS переход в него из GS возможен только на первые 32 команды. Поэтому из GS вызываются не сами п/п работы с Flash, а "обертки", расположенные в начале BS. Т.е. начало листинга BS выглядит след. образом:
Код
Line  Address  Opcode      Label                   Disassembly              

   257   0200   0407A8 IAP_ReadLatch  goto ReadLatch                        
   258   0202   000000                nop                                    
   259   0204   04079C IAP_WriteLatch goto WriteLatch                        
   260   0206   000000                nop                                    
   261   0208   0407DA IAP_ReadPage   goto ReadPage                          
   262   020A   000000                nop                                    
   263   020C   04073C IAP_WritePage  goto WritePage                        
   264   020E   000000                nop                                    
   265   0210   0407B0 IAP_ErasePage  goto ErasePage                        
   266   0212   000000                nop                                    
   267   0214   040782 IAP_VerifyPage goto VerifyPage                        
   268   0216   000000                nop                                    
   269   0218   4787E4 _monitor       add.w w15,#4,w15                      
   270   021A   210D2E                mov.w #0x10d2,w14



--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016