Я делаю тесты на 6SX-SABRE-SBD board
. На этой плате установлен i.MX6SX, асимметричный двухъядерный процессор: Cortex A9
и Cortex M4
.
На данный момент система запускается с U-Boot
и linux kernel
с SD
. Это означает, что A9 работает в регионе DDR. Прошивка M4 имеет ОС MQX 4.1.0, портирование freescale.
На данный момент я сделал:
- Протестируйте пример пинг-понга, образец кода, предоставленный MQX, который отображает код M4 в QSPI2. Это работает хорошо.
- Я изменил сценарий компоновщика (icf, я использую IAR) примера pingpong, чтобы область ROM находилась внутри области DDR (например,
0x84000000
). - При запуске U-Boot я останавливаюсь и копирую переназначенный файл
.bin
по правильному адресу (например,fatload mmc ${mmcdev}:${mmcpart} 0x84000000 myRemapped.bin
) - Использовал команду bootaux U-Boot для запуска приложения M4 (например,
bootaux 0x84000000
, и я пробовалbootaux 0x8400400
также для пропуска векторов)
Эти шаги, кажется, не работают.
В качестве теста я изменил стандартный пример pingpong, чтобы изменить некоторые байты в 0x84000000
, адрес внутри DDR region
, и он работает хорошо. Это означает, что M4 имеет права на DDR region
.
Может ли кто-нибудь помочь мне понять, что необходимо знать/изменить, чтобы сделать прошивку M4 работающей в DDR
?