你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于 FreeRTOS xTaskCreate 函数usStackDepth 的疑问

[复制链接]
su-409464 提问时间:2016-7-11 18:48 /

#define configMINIMAL_STACK_SIZE         ( ( uint16_t ) 128 )

#define configTOTAL_HEAP_SIZE         ( ( size_t ) ( 2 * 1024 ) )


configuration file 里面 这两个选项是按照 nucleo 提供的 例子,填的。


main 函数中只做了 一个LED  toggle 的 task


int main(void)

{

  HAL_Init();


  /* Configure the system clock to 2 MHz */

  SystemClock_Config();


  //BSP driver init

  BSP_Init();


  xTaskCreate( vTaskLEDBlink, "vTaskLED", 512, NULL, 2, &xHandleTaskLED );  


  /* Add your application code here */

  vTaskStartScheduler();



  /* Infinite loop */

  while (1)

  {

  }

}


当   xTaskCreate( vTaskLEDBlink, "vTaskLED", 512, NULL, 2, &xHandleTaskLED );  填入512时,程序下载后,LED 没有实现toggle


当  xTaskCreate( vTaskLEDBlink, "vTaskLED", 128, NULL, 2, &xHandleTaskLED );  填入128时, 程序下载后,LED 可以实现Toggle 。



我不明白的时候 如果填入512  内存不足,为什么没有任何提示?


如果以后 有其他task  这个值应该填多少合适呢?  有没有 依据 可以参考?


收藏 评论5 发布时间:2016-7-11 18:48

举报

5个回答
whtt 回答时间:2016-7-11 23:28:36
#define configTOTAL_HEAP_SIZE         ( ( size_t ) ( 2 * 1024 ) )
你定义的任务堆栈大小是2048byte
如果
xTaskCreate( vTaskLEDBlink, "vTaskLED", 512, NULL, 2, &xHandleTaskLED );
请注意奥,这里的512是按4字节算的哦,512是512word,也就是2048byte
再弄个idle空任务的话,函数堆栈都出界了,所以执行错误。
由于是软件错误,跟编译和硬件没关系,所以不报错

因此,freertos的堆栈空间分配和中断嵌套是需要深入学习和一定要注意的地方

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 很给力!

查看全部评分

犹豫的大三 回答时间:2016-7-12 10:26:59
那堆得大小要如何限定呢?可以检测出已使用的空间大小吗
回答时间:2016-7-13 09:38:41
一般1024或者512就足够了。.MAP文件。可以看一下对应任务占用的代码空间。
su-409464 回答时间:2016-7-14 08:55:32
whtt 发表于 2016-7-11 23:28
#define configTOTAL_HEAP_SIZE         ( ( size_t ) ( 2 * 1024 ) )
你定义的任务堆栈大小是2048byte
如 ...

精辟,就是这个原因。

所以我觉得一开始 还是要先把 configuration 这个文件 里面的每个项 大概看一下,具体什么意思。

但是网上很大教 移植的  都遗漏了 这一点。

所以即便你一步步按照别人 的方法进行移植, 后面程序跑起来 很多东西 也你迷迷糊糊的。。。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版