[牛人杂谈] BSP库的结构以及使用

[复制链接]
1738|8
 楼主| dongnanxibei 发表于 2018-3-8 17:01 | 显示全部楼层 |阅读模式
BSP, API, pi, AC, AN
库的结构
假如下载了这个BSP:NANO102_112_SeriesBSP_CMSIS_V3.01.000,打开,目录如下左边第一个图,Library目录打开如中间图示,StdDriver打开目录如右边图示:
0.png
SampleCode打开目录如下
1.png
各个目录内容如下:
 Document\目录里面是Driver API和一些结构体的说明chm help文件
 Library\目录就是芯片每个外设的驱动API源码,展开之后有5个目录
 CMSIS\目录是ARM写的一些code,包括M0/M4核中ARM做的一些外设:Systick和NVIC。还有一些函数
 Device\目录是ARM定义的一些接口,由原厂实现。包括所有寄存器的定义都在这个目录下的Nano1x2Series.h里面,其它芯片.h文件的名字不同
 StdDriver目录是芯片所有外设的API源码和宏定义都在这里,该目录打开包含2个目录
 Inc\目录。头文件在这里定义,每个外设有一个自己的头文件,如下图2-1
 Src\目录。API源码都定义在这里
 LCDLib\因为NANO112有段式屏的驱动,所以新唐的一些开发板上有带段式屏,这里定义了一些在屏上显示字符的API
 SmartcardLib\目录。因为NANO112支持ISO7816接口,初始化卡、读、写卡的函数都在这里


 楼主| dongnanxibei 发表于 2018-3-8 17:02 | 显示全部楼层
SampleCode\目录。顾名思义就是所有的demo code都在这里。该目录下有6个子目录
 Hard_Fault_Sample\是Hardfault中断处理函数的范例
 NUTINY-EVB-NANO112\是NANO112EVB板子上跑的一些sample code,包括power down的一些范例都在这里
 PowerDown_Chk\进行power down时一些设定的检查,会列出哪个IO没有设为GPIO功能,晶振引脚没有设为晶振,某个脚为低电平提示不能打开PULL high电阻,等等一些提示信息
 Semihost\是keil下使用semihost功能打印字符到keil窗口的范例
 StdDriver\:所有IP的常用范例都在该目录下,包括UART、Timer、SPI等。我截取了一部分,如下图2-2
 Template\:模板,新建一个project比较麻烦,要设定使用的库,头文件搜索目录等等。如果StdDriver下的范例中的*.uvproj文件都不想用,可以用这个
 楼主| dongnanxibei 发表于 2018-3-8 17:03 | 显示全部楼层
下图是inc目录下的文档
2.png
下图是StdDriver目录
3.png
 楼主| dongnanxibei 发表于 2018-3-8 17:06 | 显示全部楼层
初识Sample code
下面我们通过讲解一些sample code来更进一步了解BSP。
常用Sample code都在目录NANO102_112_SeriesBSP_CMSIS_V3.01.000\SampleCode\StdDriver下面。

通过讲解GPIO范例,大家可以了解API的使用方法以及通过Nu-Link下载、调试的方法。因为使用UART打印信息,所以UART也会被初始化。
GPIO范例
打开GPIO目录,下面有2个目录和一个文件

0.png
1) 进入keil目录,双击项目文件GPIO.uvproj,keil就会被打开,如下图
1.png
上图中,CMSIS下是ARM CMSIS规范规定的2个文件
 楼主| dongnanxibei 发表于 2018-3-8 17:09 | 显示全部楼层
User下是main.c
Library下是Library\StdDriver\src目录下的文件,项目用到的就包在这个目录下
2) 点击F7进行编译,keil Build Output窗口会显示编译结果,GPIO.bin生成,在obj目录下 2.png
3) 将板子通过Nu-Link或者Nu-Link-Me接到PC上
3.png
4) 点击Load进行下载。下载之前让我们看一下怎么选择用Nu-Link进行下载
点击Target Option进入下面的画面,大家注意该画面东西特多,瞪大眼睛,注意看,该窗口有10个frames

2.png
 首先在Device窗口选择正确的型号,例如:我们选择NANO112VC2AN。这样等会Debug的时候才能看到寄存器列表,注意:Target里面下图红框内不能是空的,否则Debug的时候看不到寄存器列表
3.png
 楼主| dongnanxibei 发表于 2018-3-8 17:13 | 显示全部楼层
然后进入Debug选择Nuvoton Nu-Link Debugger。点击Settings会看到当前使用的Nu-Link Keil驱动版本号
如果看不到该项选择,说明Nu-Link-Keil-Driver安装的目录不对或者Nu-Link没有被识别,目录不对需要选择正确的目录重新安装,注意要安装到Keil的安装目录下;Nu-Link没有被识别的话,如果USB驱动安装都没有问题,就只能是驱动有问题或者你的windows系统里面缺少安装包,可以联系新唐技术支持。
0.png
最后进入Utilities,打勾Usb Debug Driver和Update Target before Debugging。点击Settings
1.png
可以选择要烧录的位置,一般都烧录到APROM
 然后关闭option窗口,点击Load就会下载了
看到下面的进度条,说明环境,BSP安装都没有问题了
1.png

 楼主| dongnanxibei 发表于 2018-3-8 17:14 | 显示全部楼层
点击上图红框中绿色的按钮,就可以看到寄存器列表,点击GP,就会看到GPIO的所有寄存器,如下图红框所示
2.png
6) 之后就可以进行单步/Free run等调试动作
可以编译、调试、下载,环境基本就OK了。

huangcunxiake 发表于 2018-3-8 22:36 | 显示全部楼层
仔细一看,应该是老版本的吧
yiyigirl2014 发表于 2018-3-9 16:52 | 显示全部楼层
用模板还是比较好的,省的工程配置错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

3870

帖子

18

粉丝
快速回复 在线客服 返回列表 返回顶部