1、官方下载相应的固件包
需要注意的:想在对应型号的固件包,特别注意后缀at32f407a和at32f407的区别。
下载之后的文件如下如图所示:
得到这个文件之后·,首先可以看document下的文件,里面是一些pdf的介绍文件,如下图所示:
然后就可以打开project下的文件,里面是相应的项目代码,编译之后,就可以下载到相应的板子之中,查看是否能下载成功。
2、摘捡最简的项目
首先创建一个项目文件夹,我创建的AT32_robot_v1文件夹,然后创建如下所示的一些文件夹:
app文件夹主要存放用户自己的一些项目,library文件夹主要存放官方的固件库的文件,project主要存放编译产生的一些中间文件以及重要的.hex.bin文件,readme主要存放介绍的text文件,start_up文件主要存放系统的启动文件、汇编文件、时钟初始化文件、中断初始化文件、头文件配置头文件等,user主要存放keil可以打开的文件。
主要需要摘取移植的是library文件夹、start_up文件夹和uaer文件夹,下面分别介绍每个文件夹:
一、library文件夹
这个文件夹下主要就是外设的固件库文件,去官方下载的文件夹下如下图所示位置找,文件夹里面包括.c和.h文件,文件如下图所示:
二、start_up 文件夹(重要)
start_up文件夹中主要都是一些启动文件(.s的汇编文件),时钟初始化文件,中断初始化文件。在start_up文件夹下创建如下图所示的几个文件夹,分类存放以上的文件。
然后去官方文档里面摘取相应的文件,打开官方文档中的project文件夹里面的demo,这里我打开的是gpio的demo,打开之后,就如下面文件夹所示,里面可以看到inc和src的两个文件,对应的时钟初始化和中断初始化函数就在这个里面。将这些文件整理到自己的文件夹中。
然后就是启动文件的整理,去官方的固件包中的library文件夹下,可以看到如下图所示的文件夹,其中drivers就是一些外设的固件库,上面已经整理过。cmsis文件夹下就是对应的系统启动文件。
打开cmsis之后,如下图所示的文件夹我们需要的是cm4文件夹下的东西,打开cm4文件夹之后,可以看如下图所示的文件夹,core文件夹下主要是一些应用支持的文件夹,比如运算需要的math.h文件夹。
下图中的core_support文件夹中的内容要添加到自己start_up文件夹下,这里面有关于cm4的配置头文件。
启动文件在device_support文件夹之下,将这个文件夹下的文件都复制到自己的start_support文件夹下,并且修改下图箭头就中的文件名,改为“at32f403a_407_conf.h”。
然后打开startup文件夹,我们使用的是mdk,所以到这个问价夹下复制汇编启动文件,添加到自己的start_support文件夹下。
三、project文件夹
这个文件夹只需要创建好就可以了,不需要添加东西,后面编译产生的中间文件放在这个文件夹中。需要在=keil中给定一下地址,如下图所示的操作,并且可以修改名字。
四、user文件夹的修改
这个只需要去一个demo下面拷贝过来就可以了,如下图所示,直接拷贝这个文件就可以了。到这个位置,文件的整理就已经完成了,接下来就是文件的项目添加,地址添加,编译改错的步骤了。
当然也可以在keil中新建一个project,点击keil中的“project->new uvision projict”,然后选择自己创建的user文件夹,之后选择芯片进行,给项目起名字进行创建就可以了。
3、编译调错添加文件
按照上面的步骤整理好文件之后,记得项目中library中要对应添加misc.c的文件,不然会报错没有系统时钟频率获取函数。如下图所示的函数:
对应添加文件的路径,添加的路径如下图所示:(core_support中有个core_cm4.h的头文件需要给路径)
注意红色箭头的外设库的头文件也需要添加。里面有一个如下图所示的头文件需要引用