完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Systick_Configuration();
OSInit(); SendCom = OSSemCreate(2); OSTaskCreate(TASK0_Start, (void *)0, (OS_STK *)&TASK0_STK[TASK0_STK_SIZE-1], TASK0_Prio); OSTaskCreate(TASK1, (void *)0, (OS_STK *)&TASK1_STK[TASK1_STK_SIZE-1], TASK1_Prio); OSStart(); return 0; 我创建的信号量的值是2,只申请了1个ECB, #define OS_MAX_EVENTS 2 //应用中最多事件控制块的数目 必须大于0。 定义的时候是2个 // ------------------------ 信号管理 ------------------------ #define OS_SEM_EN 1 //允许 (1) 或者禁止 (0) 产生信号量相关代码 #define OS_SEM_ACCEPT_EN 1 //允许生成OSSemAccept() #define OS_SEM_DEL_EN 1 //允许生成OSSemDel() #define OS_SEM_QUERY_EN 1 //允许生成OSSemQuery() 定义也是全部置1、、 void TASK0_Start(void *pdata) { INT8U *perr0; OSSemPend(SendCom, 0, perr0); while(1) { OSTimeDly(1000); } } 但是我调试的时候是,OSSemPend后,根部就没有到任务延时那里, 然后我再在OSSemPend里面调试,发现都是对的,直到最后return;然后再点下一步,就显示错误了 HardFault_Handler PROC EXPORT HardFault_Handler [WEAK] B . ENDP 不知道是为什么、、、 |
|
相关推荐
5个回答
|
|
我的UC/OS是直接用的原子哥的uC/OS灯实验里面的。
|
|
|
|
void TASK0_Start(void *pdata)
{ INT8U *perr0; while(1) { OSSemPend(SendCom, 0, perr0); OSTimeDly(1000); } } 这样也不行、、 |
|
|
|
啊,好了,我懂了,
INT8U *perr0; 这样不行,要给他分配个内存才行, 就直接 void TASK0_Start(void *pdata) { INT8U perr0; while(1) { OSSemPend(SendCom, 0, &perr0); OSTimeDly(1000); } } 就可以了~~~O(∩_∩)O~ |
|
|
|
|
|
|
|
原来HardFault都常常和内存相关呀,
以前经常见到HardFault都不知道该怎么检查、、 我之前是到处移 OSSemPend函数里面的return;的位置才知道的~ |
|
|
|
只有小组成员才能发言,加入小组>>
542 浏览 0 评论
1045 浏览 1 评论
2421 浏览 5 评论
2748 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2567 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
597浏览 9评论
594浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
705浏览 6评论
573浏览 5评论
613浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-10 12:44 , Processed in 1.026282 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号