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())

二、切换工程选项,选择自己开发板对应的工程

022d349831db2270f19a0a24d0faf768

三、仿真运行,比较慢跳到 e51(), 暂停执行,发现函数停在 test_ddr(), 暂时屏蔽 // (void)mss_nwc_init_ddr(); 解决,还在研究中!

24e8fb0b707eb23adc466360e8ea57af

四、main_first_hart() 函数 和 宏定义 IMAGE_LOADED_BY_BOOTLOADER 有关

image

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

五、修改 IMAGE_LOADED_BY_BOOTLOADER 定义

找到 /mpfs-mmuart-interrupt/src/boards/icicle-kit/platform_config/lim-debug/mpfs_hal_config/mss_sw_config.h

define IMAGE_LOADED_BY_BOOTLOADER 0 // 改为0

posted on 2025-09-03 16:54  所长  阅读(4)  评论(0)    收藏  举报

导航