PolarFire® SoC mpfs-mmuart-interrupt demo 运行记录
一、根据链接文件分析程序入口
graph LR
A[mss_entry.S 程序入口] -->B(system_startup.c)-->C(main_first_hart函数)
C --> D(按照顺序启动5个内核)
D --> E(e51())
D --> F(u54_1())
D --> G(u54_2())
D --> H(u54_3())
D --> J(u54_4())
二、切换工程选项,选择自己开发板对应的工程
三、仿真运行,比较慢跳到 e51(), 暂停执行,发现函数停在 test_ddr(), 暂时屏蔽 // (void)mss_nwc_init_ddr(); 解决,还在研究中!
四、main_first_hart() 函数 和 宏定义 IMAGE_LOADED_BY_BOOTLOADER 有关
IMAGE_LOADED_BY_BOOTLOADER 宏在 mss_sw_config.h 文件中, 但是 mss_sw_config.h 在工程里有很多个!
怎么知道 是那个文件 那, 根据 include 包含路径确认,包含路径根据两个东西确认
1、代码中的 #include "mpfs_hal_config/mss_sw_config.h"
2、project 中 include 寻找路径
五、修改 IMAGE_LOADED_BY_BOOTLOADER 定义
找到 /mpfs-mmuart-interrupt/src/boards/icicle-kit/platform_config/lim-debug/mpfs_hal_config/mss_sw_config.h