硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3349|回复: 6
收起左侧

[FreeRTOS] STM32CubeMX生成的FreeRTOS V2+fatfs会报错

[复制链接]

7

主题

15

回帖

36

积分

新手上路

积分
36
发表于 2021-1-25 23:19:13 | 显示全部楼层 |阅读模式
如题,STM32CubeMX生成的FreeRTOS V2+fatfs会报错,但是把 FreeRTOS V2换成 FreeRTOS V1就没问题,原因大约是在生成的工程中,fatfs使用的信号量和FreeRTOS V2提供的信号量不一致。如果想采用FreeRTOS V2+fatfs,怎么搞比较正规安全?因为是STM32CubeMX生成的代码,所以不敢随便乱改。
记得这个问题有人提过,但现在我找不到那个帖子了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106725
QQ
发表于 2021-1-26 10:56:43 | 显示全部楼层
使用V2的话,生成的那个FatFS底层接口文件应该是用的V2的API实现的,估计是这个地方有问题。
回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 2021-1-27 11:24:41 | 显示全部楼层
FreeRTOS V2 和V1的接口函数差异很大的,需要一点点的找出来修改才行。
回复

使用道具 举报

73

主题

1193

回帖

1412

积分

至尊会员

积分
1412
发表于 2021-1-27 13:34:47 | 显示全部楼层
你这头像,容易吸引眼球。。。
回复

使用道具 举报

7

主题

15

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 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的工程做参考,然后再修改自己的工程即可。
回复

使用道具 举报

7

主题

15

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 2021-1-27 18:02:56 | 显示全部楼层
问题已经解决
回复

使用道具 举报

7

主题

15

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 2021-1-27 18:05:42 | 显示全部楼层
问题已经解决,使用cubemx生成G0的工程(freertos-v2+fatfs)就没问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-1 09:36 , Processed in 0.211759 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表