完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
main()函数中,完成各类外设初始化后,执行rt_thread_mdelay(500);进入异常。 跟踪原因: 执行到rt_err_t rt_thread_sleep(rt_tick_t tick)这个函数时,
在函数rt_thread_self(void)中,返回变量rt_current_thread,这个值为0,应该是未赋值。 |
|
相关推荐
6个回答
|
|
返回空说明此时调度器没有启动,你延时函数放的位置有问题,太早了。
|
|
|
|
main本身就是一个线程,假如delay后也不应该有影响,你说的异常具体是什么呢,有没有日志或者具体现象?
最好把异常的日志和main函数中的代码贴出来看看,方便大家分析。 |
|
|
|
你这一堆初始化放main函数里干啥呢。进入main函数后都已经开始任务调度了。这里又调用HAL_init和SystemClock_Config()重置外围和时钟配置,肯定是有问题的呀。
|
|
|
|
这是生成的项目里面就包含的这个函数,我直接拿来用的。我觉得用RTT Studio生成的BSP是基于ST的CubeMX的,和RTT的函数有重叠。风格与数据结构、处理流程都有不少差异,要有机整合在一起,还真不容易。
|
|
|
|
studio生成的BSP并不是说基于Cubemx的,而是结合cubemx进行开发的。studio仅用到了cubemx生成的stm32fxxx_hal_conf.h和stm32fxxx_hal_msp.c文件,这是对芯片的时钟和底层进行配置,studio会调用其中的配置函数。像MX_GPIO_Init();这些初始化函数,是不调用的,RT各设备驱动会进行相应的初始化操作,因此这些初始化不需要添加进来。studio结合cubemx进行开发还是很方便快捷的。
|
|
|
|
确实,main()函数中,不需要再按照CubeMx的初始化流程再做一遍, 按照RTT的流程,在rtthread_startup()函数中已经有对board的各种接口的初始化。 其中rt_hw_board_init()函数(文件 drv_common.c中)已经是改写成STM32对应的函数。 宏定义 RT_USING_PIN 在rtconfig.h文件中也已经定义。 继续调用 rt_hw_pin_init(void) (drv_gpio.c文件中),这个函数中,根据配置打开各个端口,并注册硬件pin设备。 rt_device_pin_register(“pin”, &_stm32_pin_ops, RT_NULL); 这个函数注册pin设备时,传递了_stm32_pin_ops 结构地址,这个是在这个文件中定义的局部变量。 再下层函数将这个ops地址付给 _hw_pin.ops. 一切看起来都非常OK。 但是,main()函数里,执行 rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); 也就是调用 void rt_pin_mode(rt_base_t pin, rt_base_t mode) { RT_ASSERT(_hw_pin.ops != RT_NULL); _hw_pin.ops->pin_mode(&_hw_pin.parent, pin, mode); } 发现_hw_pin.ops 是空(RT_NULL) 我觉得最大可能性,前面初始化函数就没有执行。 可惜我没能在初始化部分单步跟踪,断点调试。 百思不得其解! 继续求教!请多指导! |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
504 浏览 0 评论
1594 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2139 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2659 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
28908 浏览 11 评论
72106 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-8 13:39 , Processed in 0.711160 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号