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

STR912FAW47

Установили новый кристалл STR912FAW47.

 

После попытки прошивать Flash Bank1 128K получаем ошибку - таймаут доступа к Flash.

Это насчёт алгоритма ICP. Обычный тоже не работает, но ошибка другая (не работал и ранее).

 

Если прошивать алгоритмом ICP для версии FAW44 (которым пользовались ранее), то прошивка проходит. Но здесь уже возникает проблема непосредственно с запуском самой программы.

 

О запуске.

 

Для старого чипа используем startup-файл, строки инициализации FMI:

FMI_CR_Val      EQU     0x00000018  

FMI_BBSR_Val    EQU     0x00000000

FMI_BBADR_Val   EQU     0x00000000
FMI_NBBSR_Val   EQU     0x00000006

FMI_NBBADR_Val  EQU     0x00080000
FLASH_CFG_Val   EQU     0x00001000

; Setup Flash Memory Interface (FMI)
                LDR     R0, =FMI_BASE
                LDR     R1, =FMI_BBSR_Val
                STR     R1, [R0, #FMI_BBSR_OFS]
                LDR     R1, =FMI_NBBSR_Val
                STR     R1, [R0, #FMI_NBBSR_OFS]
                LDR     R1, =(FMI_BBADR_Val:SHR:2)
                STR     R1, [R0, #FMI_BBADR_OFS]
                LDR     R1, =(FMI_NBBADR_Val:SHR:2)
                STR     R1, [R0, #FMI_NBBADR_OFS]
                LDR     R2, =FMI_CR_Val
                STR     R2, [R0, #FMI_CR_OFS]

               ; Write "Write flash configuration" command (60h)
                LDR     R0, =FMI_BBADR_Val
                MOV     R1, #0x60
                STRH    R1, [R0, #0]

               ; Write "Write flash configuration confirm" command (03h)
                LDR     R2, =(FLASH_CFG_Val:SHL:2)
                ADD     R0, R0, R2
                MOV     R1, #0x03
                STRH    R1, [R0, #0]

 

Для нового изменяем следующие параметры:

FMI_BBSR_Val на 0x02

FMI_NBBSR_Val на 0x08

FMI_NBBADR_Val на 0x200000

 

Бит, который выбирает Flash для загрузки (CSX) установлен в "1" -> загрузка из bank1.

 

В свойствах проекта на вкладке "Target" изменяем все 0x80000 на 0x20000 и 0x8000 на 0x20000.

 

После запуска по debugger'у видно, что программа делает переход на вектор неверного адреса при попытке запустить следующую команду после команды "LDR R0, =FMI_BBADR_Val". При этом в окне дизассемблера текущие команды уже не опознаются (стоит "???"), т.е. - явно неверная инициализация адреса и т.п.

 

Исполузуем MDK 3.22.

 

Кто-нибудь уже работал с STR912FAW47 ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...