STM32
直播中

陈利妮

7年用户 960经验值
私信 关注
[问答]

stm32mp257fai3能否在uboot阶段同时启动m核与a核?

如何实现以上操作?有手册可以提供参考吗

回帖(1)

xymbmcu

2024-7-19 17:22:42
是的,STM32MP157FAI3是一款基于ARM Cortex-M7和Cortex-A72的双核心微控制器,可以在U-Boot阶段同时启动M核和A核。以下是实现此操作的步骤和相关手册的参考。

1. **准备工作**:
   - 确保你有一个适合STM32MP157FAI3的开发板和相应的开发环境。
   - 获取STM32MP157FAI3的U-Boot源代码。

2. **配置U-Boot**:
   - 运行`make menuconfig`命令来配置U-Boot。
   - 在`ARM`菜单下,确保`ARM Cortex-M7`和`ARM Cortex-A72`选项都被选中。

3. **启动M核**:
   - 在U-Boot的配置文件中(通常是`include/configs/stm32mp157.h`),确保以下宏定义被设置:
     ```c
     #define CONFIG_SYS_INIT_SP_ADDR       (CONFIG_SYS_SDRAM_BASE + 0x2000)
     #define CONFIG_SYS_LOAD_ADDR          (CONFIG_SYS_SDRAM_BASE + 0x2000)
     #define CONFIG_SYS_MALLOC_LEN         (32 * 1024 * 1024)
     #define CONFIG_STACKSIZE             (1024 * 1024)
     ```
   - 确保M核的启动代码在`arch/arm/mach-stm32mp/cpu.c`中被正确实现。

4. **启动A核**:
   - 在U-Boot的配置文件中,确保以下宏定义被设置:
     ```c
     #define CONFIG_SYS_BOOTM_LEN         (64 * 1024 * 1024)
     ```
   - 确保A核的启动代码在`arch/arm/mach-stm32mp/cpu.c`中被正确实现。

5. **编译U-Boot**:
   - 运行`make`命令来编译U-Boot。

6. **烧写U-Boot**:
   - 使用适当的工具将编译好的U-Boot烧写到STM32MP157FAI3的开发板上。

7. **测试**:
   - 重启开发板,观察M核和A核是否同时启动。

**参考手册**:
- STM32MP157FAI3的参考手册可以在STMicroelectronics的官方网站上找到:[STM32MP157FAI3 Datasheet](https://www.st.com/resource/en/datasheet/stm32mp157fai3.pdf)
- U-Boot的文档可以在其官方网站上找到:[U-Boot Documentation](https://www.denx.de/wiki/DULG/U-Boot)
- STM32MP157FAI3的U-Boot移植文档可以在STMicroelectronics的GitHub仓库中找到:[STM32MP1 U-Boot](https://github.com/STMicroelectronics/stm32mp1-uboot)

通过以上步骤,你应该能够实现在U-Boot阶段同时启动STM32MP157FAI3的M核和A核。如果遇到问题,可以参考上述手册和文档进行调试。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分