一、我们先来认识一下华大驱动库包下的文件功能。注意,华大提供的包是没有M0+内核标准文件的,(HC32L130 是M0+)ST提供的驱动库包是有的,就是CORE文件夹。

第一步:创建文件夹目录
具体这个创建文件夹目录的含义可以看STM32工程创建理论篇

第二步:将华大提供的driver文件内容(这些文件是从华大驱动库包)复制到HC32L130x_FWLib


第三步:将内核相关的文件从commom和KEIL的烧录算法文 复制到CMSIS。注:common文件是IAR和KEIL通用。


第四步:将source文件下的内容拷贝过来到USER。IAR和KEIL通用。IAR和KEIL通用。


第五步:随便找一个例程将其添加启动文件复制至starup


二、在KEIL5创建工程
第一步:安装芯片支持包,可以到华大官网下载对应的芯片MDK支持包的既可

第二步:创建新工程

输入名称,点击保存到Projiect文件下

第三步:选择对应的芯片包对应的芯片型号(前提我们要小华官网先下载对应的MDK芯片支持包,下载下来双击安装即可)

勾选内核标准组件。注意,华大驱动库包是没有提供标准内核文件的,不论是华大还是ST单片机,使用的内核文件都是通用的,这里有两种方法,1、勾选内核组件。2、复制ST库的CORE M0+内核标准文件。本次我们直接选择方法1。
方法1。直接选择KEIL提供的组件。

方法2 。复制ST库的内核标准文件到我们的CMSIS目录下,注意HC32L是M0+内核。
三、添加文件
第一步:创建目录添加文件

APP还没放代码,所以为空闲预留,后续自己可以添加外设驱动放在这里

BSP比如GPIO\timer等等,大家 自己可以放


库文件添加大家根据自己需求来放置,我是去全都添加进去

启动文件

第二步:声明头文件

添加完

第三步:编译优化配置。华大驱动库中断的特点是回调函数调用,而编译器是会优化掉一些认为不用的函数的,所以我们要屏蔽优化回调函数。--keep=*Handler

第四步:输出hex

第五步:细心的同学肯定发现刚刚我们移植的CMSIS目录下的MDK算法文件没有用到,当然你也可以用上。如下,这个文件只要跟你到时候仿真有关系,我们还是添加下,这个具体含义我不太懂。


第六步:我们编译下

编译完有警告与错误,我们先来解决下错误
(1)错误查找解决,这个错误显示是库文件ram.c的类型与头文件的类型不一致,报错的。
从理论上分析官方提供的库不应该有这种错误才是,既然知道错误我们就进行修改,把头文件的类型更换成void,就可以。


修改完,错误没有了

(2)警告排查
说实话这些警告看不出问题所在,后面与官方提佛

上面这个警告表示不会执行到这一句话

上面这个警告表示这个参数超出“int”范围,确实这个1<<31,确实超出这个类型范围
那么回过头看看官方提供的代码,发现官方提供的DEMO没有警告,警告查找发现他默认使用的是编译器6版本。

我们也改成V6版本编译器,重新编译

编译通过,我去查找了V6编译器没招相关有用的资料,如果你们有找到跟我说下,共勉学习下。
我猜测是V6的编译器int类型的范围变成64位了,这样才你能合理解释把
那么到这里,我们整个裸机工程创建结束啦!
四、附录
工程文件
链接:https://pan.baidu.com/s/1Q5tm52aqviDYVa2ODmORiA
提取码:5vt5