1.在board/README.md中有需要的各个文件说明
2.复制一个已经有的3.0版本的板子进行修改
2.1startup.c不用修改
3.board文件
3.1仅用串口作为说明,其他IO/SPI同样使用(现在就测试这么多)
如结构体声明:
变量声明:
3.1.1结构体是配合board.c中的
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最终在
调用
5.这个与CubeMX中的有些不一样
6.重定向printf中的输出与输入
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:=改为文件夹名字
$(NAME)_SOURCES表示需要编译的源文件(.c)文件
.s是启动汇编文件
.ld是链接文件(前面忘了说,这个也是CubeMX会生成的
GLOBAL_INCLUDES 头文件包含路径
下面这个就是自己尝试了,好像是留给后面的定义使用的
12.文件夹下的Config.in,一样的照着抄就行(注意几个地方“-”要改为“_”)
13.一定要修改board/Config.in(这个玩意就是板级下的最高层,只有在这里增加了你的选项,配置才能生成)
13.1感觉就是一阵复制粘贴,然后把需要的地方改为自己的名字
14这样就可以选择helloworld,再选中自己的开发板了