benlarden 发表于 2016-10-15 15:38:41

关于stm32f1 使用freeRTOS和Fatfs时任务堆栈大小问题

哪位使用过freeRTOS和Fatfs时,使用Fatfs系统的函数如f_open()等等时,此任务的堆栈大小大致需要多大,当前MAX_SS 定义为4096,我分配12K软件都跑飞了,请哪位使用分享一下经验,谢谢!~~?

benlarden 发表于 2016-10-18 15:24:37

benlarden 发表于 2016-10-17 15:12
基本就是任务堆栈的大小的问题,当前使用STM32CUBEMX 生成一个usb device的大容量存储,断电再上电就出现硬 ...

通过调试得出结论,后面有疑问的可以做一个参考,usb device时,通过检测VBUS电源来确定是否连接设备,由于当前OTG方式,选择device时忘记把VBUS电源关掉了,导致检测到有连接但是枚举时导致硬件异常!~~

benlarden 发表于 2016-10-17 15:49:35

高二毛 发表于 2016-10-17 15:37
fatfs确实需要耗一些内存的。你可以用堆栈使用的highmark看看到底用了多少,然后再选择一个合适的。 ...

是的,我当前就是使用了这种方法,感谢关注!~~

benlarden 发表于 2016-10-15 16:29:36

最后实验给了24K才跑起来,这也太费RAM了。。。。。如果MAX_SS能定义到512B估计会好很多

benlarden 发表于 2016-10-15 17:18:52

没有人使用过吗???

zhangdaijin 发表于 2016-10-15 20:20:04

            :D:D:D:D

mark0668 发表于 2016-10-15 23:49:53

   :):):):):):):)

奏奏奏 发表于 2016-10-16 08:45:59

我使用FreeRTOS了,但是没有用Fatfs系统,目前的使用情况截了两张图,图示现在的资源使用情况

wdshuang09 发表于 2016-10-16 09:32:05

只能帮忙顶贴:)

benlarden 发表于 2016-10-16 15:14:06

奏奏奏 发表于 2016-10-16 08:45
我使用FreeRTOS了,但是没有用Fatfs系统,目前的使用情况截了两张图,图示现在的资源使用情况
...

谢谢!~~是不是这个任务里的所有的局部变量都使用这个任务的堆栈,比如:
osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 512);
任务里跑的函数的什么变量都是通过512来分配???

奏奏奏 发表于 2016-10-16 19:07:10

benlarden 发表于 2016-10-16 15:14
谢谢!~~是不是这个任务里的所有的局部变量都使用这个任务的堆栈,比如:
osThreadDef(defaultTask, Star ...

抱歉,具体是怎样的不太清楚,我用STM32CubeMX配置的。
当它提示我的任务多或者消息队列占用多不够用的时候,我才去把堆栈的数值设置大一些。

原田夜舞love 发表于 2016-10-16 23:55:37

帮顶了!
页: [1] 2 3
查看完整版本: 关于stm32f1 使用freeRTOS和Fatfs时任务堆栈大小问题