天天看点

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

1.在board/README.md中有需要的各个文件说明

2.复制一个已经有的3.0版本的板子进行修改

2.1startup.c不用修改

3.board文件

3.1仅用串口作为说明,其他IO/SPI同样使用(现在就测试这么多)

如结构体声明:

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

变量声明:

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

3.1.1结构体是配合board.c中的

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库
AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库
AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库
AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

3.1.2注意这里仅仅完成了stduart_init()的整个流程

3.1.3作用:就是将CubeMX中的HAL库的初始化与本系统对接,其中有些宏定义,变量值不一样就通过GPIO_MAPPING结构体转换。

3.1.4当然,HAL生成的其实用得不多,我就仅仅用到stm32f4xx_hal_msp.c(其实就是IO端口的配置初始化,以及是否开启中断),其他的其实已经在platform/mcu已经实现,不用自己做

3.1.5这样就可以使用inlude/aos/hal/uart.h中的对应函数使用

4.这个是CubeMX中生成的void SystemClock_Config(void),直接复制替换就行

4.1最终在

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

调用

5.这个与CubeMX中的有些不一样

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

6.重定向printf中的输出与输入

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

6.1注意其中第一个变量改为了我串口中的第一个uart_0→PORT_UART_STD=0(这里宏定义0对应的变量一定是标准输入输出的设备);

7.k_config文件暂时不作修改

8.partition_conf.c就是划分芯片的flash,暂时不修改

9.拷贝CubeMX中生成的startup_stm32f407xx.s(这里注意,生成的时候改为makefile目标哟)

10.拷贝CubeMX中生成的stm32f4xx_hal_conf.h(其实就是个根据使用引用对应的头文件及相关宏定义,方便与HAL库的裁剪)

11.修改aos.mk(最好复制stm32f401的作修改)

11.1 NAME:=改为文件夹名字

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

$(NAME)_SOURCES表示需要编译的源文件(.c)文件

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

.s是启动汇编文件

.ld是链接文件(前面忘了说,这个也是CubeMX会生成的

GLOBAL_INCLUDES 头文件包含路径

下面这个就是自己尝试了,好像是留给后面的定义使用的

12.文件夹下的Config.in,一样的照着抄就行(注意几个地方“-”要改为“_”)

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

13.一定要修改board/Config.in(这个玩意就是板级下的最高层,只有在这里增加了你的选项,配置才能生成)

AliOS Things增加自己的开发板STM32F407ZET6,使用CubeMX库

13.1感觉就是一阵复制粘贴,然后把需要的地方改为自己的名字

14这样就可以选择helloworld,再选中自己的开发板了

继续阅读