STM32
直播中

王健

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

STM32MP135DAE7进行编译测试,结果有报错,无法进uboot的原因?

第一部分:平台描述开发板:正点原子ATK-DLMP135
MPU:STM32MP135DAE7
DDR:512MB DDR3L
SDK: en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
SOURCES: en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz

开发板不带 STPMIC1DPQR 电源管理芯片
TF-A修改的文件列表如下:

其中stm32mp1_def.h修改的部分如下:
/****************************************************************************** * REGULATORS******************************************************************************//* 3 PWR + 1 VREFBUF + 14 PMIC regulators + 1 FIXED */#define PLAT_NB_RDEVS           U(19)/* 2 FIXED */#define PLAT_NB_FIXED_REGS      U(17)/* Number of low power modes defined in the device tree */#define PLAT_NB_SUSPEND_MODES       7uboot修改的文件列表如下:

optee修改的文件列表如下:

其中regulator_fixed.c修改的部分如下:
#define FIXED_REGULATOR_NAME_LEN    24第二部分: 使用
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.xz
进行编译测试,结果有报错,但可以进uboot
因为芯片为STM32MP135DAE7
设备树头文件使用  #include "stm32mp13xd.dtsi"  进行编译结果如下:


有一个报错但可以正常进入uboot,可以运行。
第三部分: 使用
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
进行编译测试,结果有报错,无法进uboot
设备树头文件使用  #include "stm32mp13xd.dtsi"  进行编译结果如下:


结果有报错,无法进uboot
然后将TF-A,uboot,optee中设备树头文件由
#include "stm32mp13xd.dtsi"更换为
#include "stm32mp13xf.dtsi",同时在optee的设备树文件stm32mp135d-dk-atk.dts 增加以下内容:
saes {    status = "okay";};进行编译结果如下:


虽然有报错,但是可以进入uboot。
第四部分: 使用
en.sources-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz
进行编译测试,结果有报错,无法进uboot
设备树头文件使用  #include "stm32mp13xd.dtsi"  进行编译结果如下:

各位老师,各位前辈,麻烦大家指导一下,STM32MP135D 测试了3个版本的源码,有的能运行,有的不行,帮忙看一下有哪里可能没有配置对的,谢谢!
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.tar.gz
en.SOURCES-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23.tar.gz
en.sources-stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21.tar.gz
正常应该都能运行起来的吧。



回帖(1)

幽默

2024-7-4 16:55:04
根据您提供的信息,您正在使用正点原子ATK-DLMP135M开发板,搭载STM32MP135DAE7处理器,512MB DDR3L内存,并使用en.SDK-x86_64-stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.11.23软件包进行开发。您还提到了TF-A的修改,以及stm32mp1_def.h文件的部分修改。

首先,我们需要分析可能导致编译测试失败和无法进入U-Boot的原因。以下是一些可能的原因和相应的解决方案:

1. **环境配置问题**:确保您的开发环境已正确设置,包括工具链、依赖库等。检查环境变量是否正确配置。

2. **源代码问题**:检查您的源代码是否有语法错误或逻辑错误。使用代码检查工具(如clang-tidy或cppcheck)来帮助发现潜在问题。

3. **修改的文件**:您提到了对TF-A和stm32mp1_def.h文件的修改。请确保这些修改是正确的,并且与您的硬件和软件环境兼容。如果可能,请回滚修改并尝试重新编译。

4. **电源管理芯片问题**:您提到开发板不带STPMIC1DPQR电源管理芯片。这可能会影响系统的启动和运行。请检查您的电源配置是否正确,并确保系统能够正常供电。

5. **编译选项**:检查您的编译选项是否正确。例如,确保您选择了正确的CPU架构、内存大小等。

6. **错误信息**:仔细阅读编译过程中的错误信息,这可能会提供关于问题原因的线索。根据错误信息进行相应的调整。

7. **固件版本**:检查您使用的固件版本是否与您的硬件和开发环境兼容。如果不兼容,尝试升级或降级固件。

8. **硬件问题**:检查开发板是否有硬件损坏或连接问题。如果可能,请使用其他开发板进行测试。

9. **社区支持**:如果您在解决问题时遇到困难,可以寻求社区的支持。许多开发社区都有论坛或邮件列表,您可以在那里提问并获取帮助。

10. **文档和示例**:查阅相关的文档和示例项目,以确保您的开发流程和配置与官方推荐的做法一致。

最后,解决问题的过程可能需要一些时间和耐心。尝试逐步排查上述可能的原因,并根据需要进行调整。希望这些建议能帮助您找到问题所在并解决它。
举报

更多回帖

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