注意:所用的库要放在KSDK_1.3.0的文件夹里
KSDK_1.3.0库下载网址:
http://www.nxp.com/zh-Hans/products/software-and-tools/run-time-software/kinetis-software-and-tools/development-platforms-with-mbed/software-development-kit-for-kinetis-mcus:KINETIS-SDK?lang_cd=zh-Hans&tid=redKINETIS_SDK
快速建立一个KSDK工程
刚接触SDK
时觉得KSDK
软件包实在不好用,内容太复杂了,各种库啊层啊什么的搅合在一起,概念都整不清楚,更别说快速开始开发了。究其原因,还是因为它太“大”了,包括的功能、器件过于全面,而在大部分应用场合我们只需要专注于某一个器件或某一个层的软件开发,软件包就显得非常臃肿。
为了解决这个问题,最近发现一个小工具KSDK_Project_Generator
,能够快速生成一个基于KSDK
软件包的空白工程,非常方便 。KSDK_Project_Generator
实用于KSDK1.2
及将来要发布的1.3.0
版本,要是1.1.0
或更低的版本就不适用,因为两者工程目录发生了比较大的变化。下面介绍一下如何利用它来快速新建一个工程。
1.快速生成工程:
如上图所示,选择好相应选项后就能快速新建一个工程了。目标工程默认在KSDK
安装目录下:C:FreescaleKSDK_1.2.0examplesfrdmk64fuser_apps
路径下包括了IAR
、KEIL
、KDS
等多个IDE
的工程文件,打开IAR
工程(或其他IDE
工程文件),包括一个空的用户工程和一个platform
库工程。依次编译后就能直接下载运行。
2.使用高级功能新建一个工程
由于快速新建的工程还是位于KSDK
软件包的目录架构下,如果要进行工程管理或修改库内的某些文件时,仍然不太方便,于是可以采用Advanced
功能新建一个全新的工程。
建议勾选Generate standalone projects
功能,这样就能把对应的库文件也移出来新建一个独立的工程了。
下面再介绍下Library Configuration
功能。基于Platform
和基于HAL only
的工程区别还是比较大的。先简单回顾下KSDK
的架构图:
KSDK
提供了从硬件到用户软件之间的一系列软件层。而通常来说我们接触的最多的就是硬件抽象层和外设驱动层。从两者所处的位置可以看出它们之间的区别和联系。通过调用HAL
层函数可以很直观操作硬件寄存器,实现对芯片底层硬件的配置,避免了直接操作寄存器效率低下的缺点;而PD
层则是位于HAL
层上部,是基于HAL
、system
services
和部分外设驱动库所搭建的一个更高层次的驱动库,通过调用PD
库函数可以直接实现部分功能。
这样基于Platform
和基于HAL only
的工程就好理解了。HAL only
工程结构如下:
Platform
工程目录结构如下:
两种工程各有好处,我推荐如果对代码量要求不苛刻,尽量采用Platform
工程,因为在Platform
工程既可以使用HAL
库,也可以使用PD
库,当PD
库不满足应用要求时再参考PD
库使用HAL
去自己构建应用函数。而在HAL
工程下只进行了最初级的系统初始化过程,像时钟等部件都需要用户自己使用HAL
库,去进行芯片的初始化,这样工程量会比较大。当然在flash
空间不充裕,对代码量要求比较苛刻的情况下就只能使用HAL
工程进行开发了。基于FRDM-K64
的两者空工程生成bin
文件大小如下:
3.最后推荐几个开发常用文件:
Kinetis SDK v.1.2.0 API
Reference Manual(PD
或HAL
库函数都会有相应介绍,方便查询调用)
芯片Reference Manual(
开发时遇到寄存器配置或模块功能不清楚时查询本文档)
芯片Data Sheet(
描述芯片物理性能及参数)
相关链接
KSDK Project Generator tool:
http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/development-platforms-with-mbed/software-development-kit-for-kinetis-mcus:KINETIS-SDK?tab=Design_Tools_Tab
KSDK1.3.0:
http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/development-platforms-with-mbed/software-development-kit-for-kinetis-mcus:KINETIS-SDK