|
各位坛友,我的ucosiii跑起来之后到startup之后任务运行不了,仿真后得出以下结果,是什么原因造成的?
系统部分的代码如下:
- 01
- //main:
- 02
- static OS_TCB start_up_TCB;
- 03
- static CPU_STK start_up_STK[COMMON_STK_SIZE];
- 04
- void main(void)
- 05
- {
- 06
- OS_ERR err;
- 07
-
- 08
- DISABLE_INTERRUPTS(); //disable all interrupts
- 09
- OSInit(&err);
- 10
- if(err!=OS_ERR_NONE)
- 11
- {
- 12
- while(1);
- 13
- }
- 14
- /*创建任务*/
- 15
- OSTaskCreate((OS_TCB *)&start_up_TCB, //任务控制块指针
- 16
- (CPU_CHAR *)"Startup_Task", //任务名称
- 17
- (OS_TASK_PTR )start_up, //任务代码指针
- 18
- (void *)0, //传递给任务的参数parg
- 19
- (OS_PRIO )start_up_prio, //任务优先级
- 20
- (CPU_STK *)&start_up_STK[0], //任务堆栈基地址
- 21
- (CPU_STK_SIZE)COMMON_STK_SIZE/10, //堆栈剩余警戒线
- 22
- (CPU_STK_SIZE)COMMON_STK_SIZE, //堆栈大小
- 23
- (OS_MSG_QTY )0, //可接收的最大消息队列数
- 24
- (OS_TICK )0, //时间片轮转时间
- 25
- (void *)0, //任务控制块扩展信息
- 26
- (OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), //任务选项
- 27
- (OS_ERR *)&err); //返回值
- 28
-
- 29
- OSStart(&err);
- 30
- }
- 31
- //startup:
- 32
- void start_up(void *p_arg)
- 33
- {
- 34
- OS_ERR err;
- 35
- p_arg=p_arg;
- 36
-
- 37
- bsp_init(); //hardware init
- 38
- CPU_Init(); //CPU init
- 39
- Init_SysTick(); //systick init
- 40
- ENABLE_INTERRUPTS(); //interrupts enable
- 41
- printf("\r\nstartup\r\n");
- 42
- OSTaskCreate((OS_TCB *)&car_control_TCB, //任务控制块指针
- 43
- (CPU_CHAR *)"Car_Control", //任务名称
- 44
- (OS_TASK_PTR )car_control, //任务代码指针
- 45
- (void *)0, //传递给任务的参数parg
- 46
- (OS_PRIO )car_control_prio, //任务优先级
- 47
- (CPU_STK *)&car_control_STK[0], //任务堆栈基地址
- 48
- (CPU_STK_SIZE)COMMON_STK_SIZE/10, //堆栈剩余警戒线
- 49
- (CPU_STK_SIZE)COMMON_STK_SIZE, //堆栈大小
- 50
- (OS_MSG_QTY )0, //可接收的最大消息队列数
- 51
- (OS_TICK )0, //时间片轮转时间
- 52
- (void *)0, //任务控制块扩展信息
- 53
- (OS_OPT )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR), //任务选项
- 54
- (OS_ERR *)&err); //返回值
- 55
- //OSTaskDel(&Start_Up_TCB,&err);
- 56
- while(1);
- 57
- }
- 58
- //栈空间定义:
- 59
- #define COMMON_STK_SIZE 32
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|