
<1>我在使用USB时发现有人会去修改在CubeMX中Linker settings设置,此设置为最小的堆栈大小设置。 请教下 ,这设置是与单片机的RAM有关(小于单片机RAM的值)嘛? 他可以在程序中什么地方设置呢?我遇到个没有cubemx工程,且USB通讯有异常的程序,我想看看是否是堆栈设置过小导致的。 <2> 且在FreeRTOS创建任务时也需要将任务堆栈空间设置得尽可能得大,以免出现异常。 那这堆栈我是根据这Minimum Heap Size(所有任务堆栈总和<Minimum Heap Size)还是Stack Size(所有任务堆栈总和<Stack Size)来设置。 或者这与Linker Settings无关,而只要(所有任务堆栈总和<单片机的系统SRAM)就可以了? 有遇到过或思考过的社友解答下嘛,不吝赐教 |
这个linger setting对应到启动文件里的系统配置,我认为启动文件里配置的栈空间和堆空间大小跟任务所用的栈和堆是没有关系的,或者说各种独立的。启动文件里设置的栈属于MSP主栈空间,主栈给任务以外的中断使用。任务栈属于线程栈PSP,为任务所用。动态创建任务时分配TCB、任务栈时都会用到RTOS申请的堆空间。当然,所有BSS变量、DATA常量加上堆、栈空间以实际RAM为限。 |
请教专家,STM8L052的GPIO口做输入检测,为什么不能反应管脚实际电压变化?
STM32CubeG4 HAL库 V1.6.1 版本中的 stm32g4xx_hal.h 文件宏定义BUG
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
STM32F407ZGT6的SD卡通过DMA控制时,无法从外部SRAM取数据
touchgfx4.25 颜色错误?
关于STM32Cubemx 6.15版本生成工程的文件编码的问题
STM32F407VET6 I2S 采用纯中断接收数据的问题
touchgfx handletickevent 执行的频率 是由什么决定的
STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗
《年中视频学习心得》+我在年中学习STM32心得