STM32 UCOS II 项目开发过程问题记录
1、问题:在使用 UCOS II创建任务时,创建函数 OSTaskCreate()返回值是66,表示创建任务的任务块不够;
解决方法:具体修改:os_cfg.h文件下的 #define OS_MAX_TASKS 30u /* Max. number of tasks in your application, MUST be >= 2
将该值调大即可;
2、问题:UCOSII进入HardFault_Handler();
解决方法:(1)检查是否存在数组越界;(2)检查是否存在内存溢出或访问内存越界;(3)检查堆栈是否溢出导致程序跑飞;(4)检查中断处理函数内是否存在延时函数等;
3、问题:编译时提示“main.c(465): error: #268: declaration may not appear after executable statement in block”;
解决方法:函数内定义的变量不能在变量赋值后面;如下图中的变量“temCommand”的赋值应放到"u8 tmpPackage[50];"之后;
4、问题::正常编译后下载到板子,程序不运行
原因:很大可能 程序设计时 退栈空间使用超出范围;
解决方法:优化代码堆栈的使用,尽量减少堆栈空间的使用量