quhaton 发表于 2021-1-25 23:19:13

STM32CubeMX生成的FreeRTOS V2+fatfs会报错

如题,STM32CubeMX生成的FreeRTOS V2+fatfs会报错,但是把 FreeRTOS V2换成 FreeRTOS V1就没问题,原因大约是在生成的工程中,fatfs使用的信号量和FreeRTOS V2提供的信号量不一致。如果想采用FreeRTOS V2+fatfs,怎么搞比较正规安全?因为是STM32CubeMX生成的代码,所以不敢随便乱改。
记得这个问题有人提过,但现在我找不到那个帖子了

eric2013 发表于 2021-1-26 10:56:43

使用V2的话,生成的那个FatFS底层接口文件应该是用的V2的API实现的,估计是这个地方有问题。

caicaptain2 发表于 2021-1-27 11:24:41

FreeRTOS V2 和V1的接口函数差异很大的,需要一点点的找出来修改才行。

wdliming 发表于 2021-1-27 13:34:47

你这头像,容易吸引眼球。。。

quhaton 发表于 2021-1-27 18:02:10

问题已经解决。虽然cubemx创建F0的工程(freertos-v2+fatfs)会报错,但是创建G0的工程(freertos-v2+fatfs)正常。对比发现F0的工程中 syscall.c 使用的信号量还是RTOS-V1定义的,显然和我们使用freertos-v2不匹配,所以会报错;而G0工程中 syscall.c 使用的信号量是RTOS-V2定义的,所以正确不报错。如果大家也遇到这个问题,可以生成G0的工程做参考,然后再修改自己的工程即可。

quhaton 发表于 2021-1-27 18:02:56

问题已经解决

quhaton 发表于 2021-1-27 18:05:42

问题已经解决,使用cubemx生成G0的工程(freertos-v2+fatfs)就没问题
页: [1]
查看完整版本: STM32CubeMX生成的FreeRTOS V2+fatfs会报错