stm32h750vb移植linux,将Art-Pi的bootloader移植到通用H750vb开发板上
开发环境:rt-thread studio开发板:ART-PI和stm32h750vbt6通用开发板手头除了art-pi,还有一块stm32h750vbt6的通用开发板,板子小巧,已经集成了TF卡座,QSPI和SPI,可以作为核心板来用。虽然原版配套的SDK中已经提供了bootloader。不过是裸机的,心痒痒想用art-pi的基于rtt的bootloader。于是就又给自己挖了一个坑,然后又想办
开发环境:
rt-thread studio
开发板:
ART-PI和stm32h750vbt6通用开发板

手头除了art-pi,还有一块stm32h750vbt6的通用开发板,板子小巧,已经集成了TF卡座,QSPI和SPI,可以作为核心板来用。虽然原版配套的SDK中已经提供了bootloader。不过是裸机的,心痒痒想用art-pi的基于rtt的bootloader。于是就又给自己挖了一个坑,然后又想办法把坑给填了。这里将过程记录下来,分享给大家。
1.首先修改applications目录下的main.c文件的修改

修改LED0的宏定义,改成开发板上的PE3

2.接下来修改board目录下的stm32h7xx_hal_msp.c
这个文件主要是负责硬件初始化的,因此要修改成和开发板上相对应的GPIO

修改void HAL_QSPI_MspInit(QSPI_HandleTypeDef* hqspi)函数,让GPIO和开发板的对应起来。
开发板上的QSPI的GPIO如图所示:

可以使用cubemx配置好功能和引脚,然后用cubemx生成代码,直接拷贝过来。

还需要修改void HAL_QSPI_MspDeInit(QSPI_HandleTypeDef* hqspi)函数

接下来修改void HAL_UART_MspInit(UART_HandleTypeDef* huart)函数,这是调试终端的输出口,虽然都是使用uart4,但是映射到不同的IO上,因此也要初始化相应的IO。

同样需要修改void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)函数

3.接下来修改board目录下的board.h文件
主要是关于UART4的引脚宏定义

完成上述修改之后编译一次,没有报错。可以下载进开发板看看什么情况。

运行之后会出现hardfault,提示是在main线程中。现在去检查问题。

由于这个开发板上使用的spiflash并不是25Q128JVSQ,而是25Q64JVSIQ,和art-pi上的还是有一些不同,因此需要修改w25qxx.c文件中的static void MX_QUADSPI_Init(void)函数,如下图所示:

然后再次烧录进去就可以了。

至此,就已经完成了一个基本功能的bootloader的移植,实现了上电后跳转到外部qspi运行app的功能。后续看看再研究研究,加上其他功能。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)