主题中讨论的其他器件:UNIFLASH、 AM263P4、 SysConfig
工具与软件:
你(们)好
我使用 CCS theia 版本 1.5.1.3.
使用 AM263P LaunchPad 时、我尝试让一个在 XIP 中运行的简单应用程序、但似乎无法做到。
我遵循这个主题:
因此、我的 SYSCFG 设置如下所示:
MPU 设置:
在存储器区域中、按如下方式设置闪存:
然后、在章节中、我有:
在 OCRAM 中添加了.rodata.cfg 下面的所有段、允许代码执行、直到在开始时引入了 main 和 while 循环。
否则、代码会在 启动代码中的_system_pre_init 和__TI_auto_init 中从 RESET 进入预取中止。
然后、我就像上面线程中建议的那样、将闪存中的其余代码:
刷写时、我会将 launchpad 板置于 UART 引导模式、并使用从命令行调用的 uart_uniflash python 脚本进行闪存:
Python uart_uniflash.py -p COM11 --cfg=C:/ti/mcu_plus_sdk_am263px_10_00_00_35/tools/boot/sbl_prebuilt/am263px-lp/default_sbl_ospi_Seb.cfg
我的配置文件如下所示:
#首先指向 sbl_uart_uniflash 二进制文件,其作为服务器来刷写一个或多个文件
--flash-writer=sbl_prebuilt/am263px-lp/sbl_uart_uniflash.release.tiimage
#对 OSPI PHY 调优攻击向量进行编程
--operation=flash-phy-tuning-data
#发送 bootloader 时、请确保闪存偏移量为0x0。 ROM 期望引导加载程序位于偏移量0x0处
--文件=sbl_prebuilt/am263px-lp/sbl_ospi.release.tiimage --操作=flash -- flash-offset=0x0
#发送应用程序映像时、请确保闪存在偏移0x81000 (默认值)处或引导加载程序配置的任何偏移处
#--file=../../examples/drivers/ipc/ipc_notify_echo/am263px-lp/system_freertos_nortos/ipc_notify_echo_system.release.appimage --operation=flash --flash-offset=0x81000
#--file=C:/AM263P_VxPlatform/DevOnLaunchpad/Bootloader/LedBlinkingApp_am263px-lp_r5fss0-0_nortos_ti-arm-clang/Debug/LedBlinkingApp_am263px-lp_r5fss0-0_nortos_ti-arm-clang=flash-offset=flash-offset=image-offset-offset
--file=C:/AM263P_VxPlatform/DevOnLaunchpad/Bootloader/LedBlinkingApp_xip_am263px-lp_r5fss0-0_nortos_ti-arm-clang/Debug/LedBlinkingApp_xip_am263px-lp_r5fss0-0_nortos_ti-flash_offset=ti-arm-offset=flash-offset-image-flash-offset-offset-image-flash-offset-image-apper-image-apper-add-apper-image-apper-flash
#XIP 部分
--file=C:/AM263P_VxPlatform/DevOnLaunchpad/Bootloader/LedBlinkingApp_xip_am263px-lp_r5fss0-0_nortos_ti-arm-clang/Debug/LedBlinkingApp_xip_am263px_r5fss0-0_nortos_ti-arm-flash-ip-ip-image-operation
刷写操作正常、我可以看到 SBL 的以下输出:
调试应用程序时、我将按预期在主函数开始时进入等待循环:
单步执行代码时、执行过程会一直进行、直到从闪存执行蹦床函数、这会再次导致预取中止:
我认为我遵循了 AM263P4开发者培训中规定的所有步骤。
我必须错过一些东西或做一些错误的事情。 鉴于例外情况、它看起来像是 CPU 没有对外部闪存的可见性。
根据下面的文档、我希望 SBL 将闪存设置为正确支持 XIP、尤其是激活 DAC 模式:
从文档来看、它看起来并不是一般的文档、但实际上并不是。 是否有可能向我指出我在做什么错、并向我指出正确的方向?
如果需要、欢迎分享该项目。
谢谢
此致
单端