程序卡死在USB_EPStartXfer这里
SDIO 初始化 死在 __HAL_RCC_SDIO_CLK_ENABLE语句上
我现在使用STM32F446ZET6芯片,外挂了16m的片外SDRAM。想把程序在SDRAM中运行,一直尝试没有成功,希望得到帮助,是否有相关的例子或参考的文档
MotorControl Workbench 6.4.1 生成 FOC 项目代码后运行死机。
STM32F405rgt6 I2S DMA输入会造成卡死,这个芯片有BUG
USBX在F407上创建CDC不能正常使用
STM32F427ZGTx内部RTC秒及亚秒同步问题
有没有STM32F405RG参考设计
LSM6DS3TR-C静止情况下使用MotionFX固件算出的欧拉角周期性异常跳动
全球论坛无法登录
微信公众号
手机版
1、在工程里设置合适的系统栈大小,这点通常在启动文件里配置即可。它用于处理异常或中断。
2、在RTOS里设置合适的堆内存大小,比方 #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10* 1024 ) )
Hi,xmshao:
我查看了工程中的堆栈配置,在FreeRTOSConfig.h文件中:
define configMINIMAL_STACK_SIZE ((uint16_t)128)
define configTOTAL_HEAP_SIZE ((size_t)15360)
这样的配置是合理的吗?
[md]这看不出有啥不合理的。
onfigTOTAL_HEAP_SIZ的大小15KB,不小了,一般来讲应该够用了。具体是否够用,跟你创建的任务、任务栈大小以及其它RTOS资源,比方队列、信号量的多少有关。
你也可以参考下例程的配置。
另外,不知你选择的是哪种内存管理方案,通常选用heap_4.c内存管理方案。
[md]我选择的是heap_4的内存管理方案,这个现象很奇怪,在网上我也没有找到对应的类似问题,另外,我使用xSemaphoreTake和xSemaphoreGive来实现的mutex功能,发现使用后会死锁,我不清楚是否freertos使用还需要什么配置,才能启用这些接口。