打印
[牛人杂谈]

BSP库的结构以及使用

[复制链接]
1497|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
BSP, API, pi, AC, AN
库的结构
假如下载了这个BSP:NANO102_112_SeriesBSP_CMSIS_V3.01.000,打开,目录如下左边第一个图,Library目录打开如中间图示,StdDriver打开目录如右边图示:

SampleCode打开目录如下

各个目录内容如下:
 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目录下的文档

下图是StdDriver目录

使用特权

评论回复
地板
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个目录和一个文件


1) 进入keil目录,双击项目文件GPIO.uvproj,keil就会被打开,如下图

上图中,CMSIS下是ARM CMSIS规范规定的2个文件

使用特权

评论回复
5
dongnanxibei|  楼主 | 2018-3-8 17:09 | 只看该作者
User下是main.c
Library下是Library\StdDriver\src目录下的文件,项目用到的就包在这个目录下
2) 点击F7进行编译,keil Build Output窗口会显示编译结果,GPIO.bin生成,在obj目录下
3) 将板子通过Nu-Link或者Nu-Link-Me接到PC上

4) 点击Load进行下载。下载之前让我们看一下怎么选择用Nu-Link进行下载
点击Target Option进入下面的画面,大家注意该画面东西特多,瞪大眼睛,注意看,该窗口有10个frames


 首先在Device窗口选择正确的型号,例如:我们选择NANO112VC2AN。这样等会Debug的时候才能看到寄存器列表,注意:Target里面下图红框内不能是空的,否则Debug的时候看不到寄存器列表

使用特权

评论回复
6
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系统里面缺少安装包,可以联系新唐技术支持。

最后进入Utilities,打勾Usb Debug Driver和Update Target before Debugging。点击Settings

可以选择要烧录的位置,一般都烧录到APROM
 然后关闭option窗口,点击Load就会下载了
看到下面的进度条,说明环境,BSP安装都没有问题了


使用特权

评论回复
7
dongnanxibei|  楼主 | 2018-3-8 17:14 | 只看该作者
点击上图红框中绿色的按钮,就可以看到寄存器列表,点击GP,就会看到GPIO的所有寄存器,如下图红框所示

6) 之后就可以进行单步/Free run等调试动作
可以编译、调试、下载,环境基本就OK了。

使用特权

评论回复
8
huangcunxiake| | 2018-3-8 22:36 | 只看该作者
仔细一看,应该是老版本的吧

使用特权

评论回复
9
yiyigirl2014| | 2018-3-9 16:52 | 只看该作者
用模板还是比较好的,省的工程配置错误

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

201

主题

3587

帖子

16

粉丝