搜索
bottom↓
回复: 1

STM32 IAR UCOS CSTACK 设置问题

[复制链接]

出0入0汤圆

发表于 2014-12-31 10:02:58 | 显示全部楼层 |阅读模式
各位坛友,我的ucosiii跑起来之后到startup之后任务运行不了,仿真后得出以下结果,是什么原因造成的?

系统部分的代码如下:

  1. 01
  2. //main:
  3. 02
  4. static OS_TCB   start_up_TCB;
  5. 03
  6. static CPU_STK  start_up_STK[COMMON_STK_SIZE];
  7. 04
  8. void main(void)
  9. 05
  10. {
  11. 06
  12.    OS_ERR err;
  13. 07
  14.    
  15. 08
  16.    DISABLE_INTERRUPTS();     //disable all interrupts
  17. 09
  18.    OSInit(&err);
  19. 10
  20.    if(err!=OS_ERR_NONE)
  21. 11
  22.      {
  23. 12
  24.         while(1);
  25. 13
  26.      }
  27. 14
  28.    /*创建任务*/
  29. 15
  30.     OSTaskCreate((OS_TCB     *)&start_up_TCB,                           //任务控制块指针         
  31. 16
  32.                  (CPU_CHAR   *)"Startup_Task",                              //任务名称
  33. 17
  34.                  (OS_TASK_PTR )start_up,                                //任务代码指针
  35. 18
  36.                  (void       *)0,                                   //传递给任务的参数parg
  37. 19
  38.                  (OS_PRIO     )start_up_prio,                           //任务优先级
  39. 20
  40.                  (CPU_STK    *)&start_up_STK[0],                        //任务堆栈基地址
  41. 21
  42.                  (CPU_STK_SIZE)COMMON_STK_SIZE/10,                              //堆栈剩余警戒线
  43. 22
  44.                  (CPU_STK_SIZE)COMMON_STK_SIZE,                                 //堆栈大小
  45. 23
  46.                  (OS_MSG_QTY  )0,                                   //可接收的最大消息队列数
  47. 24
  48.                  (OS_TICK     )0,                                   //时间片轮转时间
  49. 25
  50.                  (void       *)0,                           //任务控制块扩展信息
  51. 26
  52.                  (OS_OPT      )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),  //任务选项
  53. 27
  54.                  (OS_ERR     *)&err);                       //返回值
  55. 28
  56.      
  57. 29
  58.     OSStart(&err);
  59. 30
  60. }
  61. 31
  62. //startup:
  63. 32
  64. void start_up(void *p_arg)
  65. 33
  66. {
  67. 34
  68.    OS_ERR err;
  69. 35
  70.    p_arg=p_arg;
  71. 36
  72.    
  73. 37
  74.    bsp_init();                  //hardware init
  75. 38
  76.    CPU_Init();                  //CPU init
  77. 39
  78.    Init_SysTick();              //systick init
  79. 40
  80.    ENABLE_INTERRUPTS();         //interrupts enable
  81. 41
  82.    printf("\r\nstartup\r\n");
  83. 42
  84.    OSTaskCreate((OS_TCB     *)&car_control_TCB,                         //任务控制块指针         
  85. 43
  86.                  (CPU_CHAR   *)"Car_Control",                               //任务名称
  87. 44
  88.                  (OS_TASK_PTR )car_control,                             //任务代码指针
  89. 45
  90.                  (void       *)0,                                   //传递给任务的参数parg
  91. 46
  92.                  (OS_PRIO     )car_control_prio,                            //任务优先级
  93. 47
  94.                  (CPU_STK    *)&car_control_STK[0],                     //任务堆栈基地址
  95. 48
  96.                  (CPU_STK_SIZE)COMMON_STK_SIZE/10,                              //堆栈剩余警戒线
  97. 49
  98.                  (CPU_STK_SIZE)COMMON_STK_SIZE,                                 //堆栈大小
  99. 50
  100.                  (OS_MSG_QTY  )0,                                   //可接收的最大消息队列数
  101. 51
  102.                  (OS_TICK     )0,                                   //时间片轮转时间
  103. 52
  104.                  (void       *)0,                           //任务控制块扩展信息
  105. 53
  106.                  (OS_OPT      )(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),  //任务选项
  107. 54
  108.                  (OS_ERR     *)&err);                       //返回值
  109. 55
  110.     //OSTaskDel(&Start_Up_TCB,&err);
  111. 56
  112.    while(1);
  113. 57
  114. }
  115. 58
  116. //栈空间定义:
  117. 59
  118. #define COMMON_STK_SIZE                  32
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-12-31 11:16:28 | 显示全部楼层
各位,我的问题解决了。应该先开中断后配置systick
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-8 23:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表