Перейти к содержанию
    

Benon

Новичок
  • Постов

    2
  • Зарегистрирован

  • Посещение

Весь контент Benon


  1. Добрый день! Есть модуль EB-600, сконфигурировал его в 10Hz @ 38400, все работало нормально. Решил немного поиграться с настройками - запросил параметры командой $PSTMGETPAR,1200 получил значение ответа - 0x363940 После этого решил изменить некоторые параметры (в частности, используемые созвездия, в ответе были отключены GPS), для чего послал команду $PSTMSETPAR,1200,0x733942 На что модуль ответил ОК, после этого сохранил параметры в память. После сброса питания модуль превратился в кирпич, ничего не шлет и не реагирует на команды. Что могло произойти?
  2. Цель работы - удалить заданный (скажем 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 определяет кард-ридер Т.е. дальше я ничего уже сделать не могу. Т.е. как я понял, во время стирания проц пытается обратиться к внешней флеш, а она занята, следовательно контроллер рестартиться. Т.е. надо каким-то образом заморозить контроллер пока не выполнится стирание блока из флеш. Вся проблема в том, что прошивка находится в той же флешке, в которой я стираю блок. Разъясните пожалуйста. :)
×
×
  • Создать...