FileX与STM32H7相关资源
ThreadX官方文档
ThreadX代码仓库
STM32Cube MCU包
FileX代码仓库
x-cube-azrtos-h7
FileX移植
首先在FileX代码仓库中下载FileX,将FileX的.\common\scr
文件夹下的源文件全部添加到工程中,.\port
文件夹下没有源文件,这一部分需要自己实现(STM32提供了相关代码),并添加包含路径.\common\inc
、.\ports\cortex_m7\gnu\inc
,此时工程应该可以正常编译,FileX在使用时才会将驱动传入,因此不需要驱动即可编译。
移植sd驱动
下载x-cube-azrtos-h7,随便将一个\FileX\Target
(例如.\Projects\STM32H735G-DK\Applications\FileX\FX_IAP\IAP_main\FileX\Target
)下的fx_stm32_sd_driver_glue.c
添加到工程中,将.\Middlewares\ST\filex\common\drivers
的fx_stm32_sd_driver.c
添加进工程,并添加相应的头文件。
修改相关文件
此外,还需要我们实现这些函数
void MX_SDMMC1_SD_Init(void)
(这个函数用于初始化SDMMC1初始化,调用路径fx_stm32_sd_driver`
->fx_stm32_sd_init
->MX_SDMMC1_SD_Init
,在.\Core\Src\main.c
中移植)void HAL_SD_MspInit(SD_HandleTypeDef *sdHandle)
(这个函数用于SDMMC1的低级初始化,它是MX_SDMMC1_SD_Init
调用的,在.\Core\Src\stm32h7xx_hal_msp.c
中移植)void HAL_SD_MspDeInit(SD_HandleTypeDef *sdHandle)
(在.\Core\Src\stm32h7xx_hal_msp.c
中移植)void SDMMC1_IRQHandler(void)
(在.\Core\Src\stm32h7xx_it.c
中移植)- 并定义
SD_HandleTypeDef hsd1
以供其他函数使用
至此,移植完毕。
可选的配置选项
在fx_stm32_sd_driver.h
可以进行一些配置,例如使能FX_STM32_SD_INIT
则可以让FileX来调用初始化函数,而不是我们在Filex初始化前手动调用。