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

 
 
> Проблемы при работе с Flash (MCS 51), Стирание сектора во внешней flash, в ней же находится и прошивка
Benon
сообщение Dec 19 2006, 21:56
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 19-12-06
Пользователь №: 23 702



Цель работы - удалить заданный (скажем 0x9000) сектор в 64Кб flash памяти, которая подвязана как внешняя к MCS 51. Процессор ND3260, память - Pm39LV512. По сути это небольшая модификачия прошивки кард-ридера. Прочитав мануал по памяти был сделан код:
Код
ERASE_SECTOR:
    mov DPTR, #0x5555
    mov A, #0xAA
    movx    @DPTR, A
    mov DPTR, #0x2AAA
    mov A, #0x55
    movx    @DPTR, A
    mov DPTR, #0x5555
    mov A, #0x80
    movx    @DPTR, A
    mov DPTR, #0x5555
    mov A, #0xAA
    movx    @DPTR, A
    mov DPTR, #0x2AAA
    mov A, #0x55
    movx    @DPTR, A
    mov DPTR,#0x9000
    mov A, #0x30
    movx    @DPTR, A
    ret


он просто проводит инициализацию режима удаления блока и затирает блок 0x9000-0xA000.

Дело в том, что в начале работы прошивки я по определенному условию, либо передаю управление на стандартную прошивку, либо применяю свою из flash. В обычном режиме (лампочками помигать и тп ) все работает как надо.

Если же вызвать мою функцию ERASE_SECTOR то очистка проходит верно (я смотрю дамп flash в hex редакторе),но почему-то после выполнения
Код
movx    @DPTR, A


автоматически запускается стандартная прошивка и Windows определяет кард-ридер Т.е. дальше я ничего уже сделать не могу.

Т.е. как я понял, во время стирания проц пытается обратиться к внешней флеш, а она занята, следовательно контроллер рестартиться. Т.е. надо каким-то образом заморозить контроллер пока не выполнится стирание блока из флеш.

Вся проблема в том, что прошивка находится в той же флешке, в которой я стираю блок.

Разъясните пожалуйста. smile.gif
Go to the top of the page
 
+Quote Post

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


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

 


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


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