嵌入式技术论坛
直播中

laisvl

8年用户 1027经验值
私信 关注
[问答]

STM32F767阿波罗bsp进不了main函数有哪位大佬帮忙看看

下载github上master分支的RT-Thread代码库,使用keil打开bsp\stm32\stm32f767-atk-apollo文件夹中的project工程文件,编译无报错,修改使用stlink下载程序到板子上,LED灯未闪烁,对应串口1也无任何数据输出。

尝试1:使用rt-thread studio重新基于芯片F767IG创建工程,编译后下载后,观察串口1同样无输出。

尝试2:使用rt-thread studio重新基于芯片F103ZE创建工程测试正点原子F103精英版,编译下载后,串口1正常输出日志,说明使用软件创建工程的操作没有问题。

尝试3:烧录正点原子的F767串口发送例程,串口1能正常读取到测试数据,说明板子硬件正常。

尝试4:使用debug模式,单步运行,发现在运行到 rt_application_init()时会卡住,主要是在rt_thread_create("main", main_thread_entry, RT_NULL,RT_MAIN_THREAD_STACK_SIZE, RT_MAIN_THREAD_PRIORITY, 20)中有一个rt_sem_take的操作会失败,由于无法在串口收到日志,因此我在rt_kprintf函数的末尾打了断点,抓取到报错日志function[rt_sem_take] shall not be used before scheduler start之后就会断言失败。

有哪位大佬帮忙看看,感激不尽

回帖(2)

李梅

2022-10-26 14:37:45
验证
我使用:NUCLEO-F767ZI 开发板(STM32F767ZI)验证,断言了,调试发现死在了内存堆(memheap)初始化的一处位置,这时调度器没有开启,使用了信号量。
1.jpg
规避方法:改为小内存分配
2.jpg
举报

laisvl

2022-10-26 14:38:51
修改完成后成功点亮led,多谢大佬
举报

更多回帖

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