完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近移植ucos-ii到STM32板子上时发现一个问题,一调用printf函数的话任务直接不能运行,系统死机,希望大神指点!!!是不是printf函数用的是DOS属于不可重入函数???
|
|
相关推荐
6个回答
|
|
找到原因了,之前发烧友的资料里忽略了一个很重要的问题,那就是在任务建立之前,ucos初始化之前要进行的一步就是关闭所有中断!在OS_CPU_a.asm中加两句作为输出函数用EXPORT声明一下,
CPU_IntDis CPSID I BX LR CPU_IntEn CPSIE I BX LR 以及在OS_CPU.H中加上C的声明。在创建任务之前调用关闭所有中断! |
|
|
|
printf函数会占用额外的空间,可能是你的栈空间开小了才会导致死机,另外,用该函数需要用另一个函数来映射你的具体串口,我相信这个你肯定是映射了的!
|
|
|
|
我就是在mian函数中调用的,在任务创建之前就调用了,应该不存在栈空间小的问题,映射我已经映射了。
|
|
|
|
我尝试了一下在任务中调用printf函数是没问题的,但是在任务建立之前调用printf函数的话,printf函数运行之后的程序就直接死了,不清楚这里面到底什么原因。
|
|
|
|
我昨天尝试了一天发现在任务创建之前调用printf函数的话就容易导致ucos死机,如果在任务中调用printf函数的话就没问题,不清楚这里面是什么原因。
|
|
|
|
printf语句没有执行,其它都没问题是怎么回事?
|
|
|
|
只有小组成员才能发言,加入小组>>
793 浏览 0 评论
1152 浏览 1 评论
2528 浏览 5 评论
2861 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2711 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1072浏览 3评论
195浏览 2评论
457浏览 2评论
370浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
455浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 01:04 , Processed in 1.284861 second(s), Total 89, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号