NXP

Kinetis SDK学习笔记1——快速新建一个KSDK工程

2019-07-12 11:18发布

注意:所用的库要放在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.快速生成工程:

blob.png 如上图所示,选择好相应选项后就能快速新建一个工程了。目标工程默认在KSDK安装目录下:C:FreescaleKSDK_1.2.0examplesfrdmk64fuser_apps 路径下包括了IARKEILKDS等多个IDE的工程文件,打开IAR工程(或其他IDE工程文件),包括一个空的用户工程和一个platform库工程。依次编译后就能直接下载运行。 blob.png

2.使用高级功能新建一个工程

由于快速新建的工程还是位于KSDK软件包的目录架构下,如果要进行工程管理或修改库内的某些文件时,仍然不太方便,于是可以采用Advanced功能新建一个全新的工程。 blob.png 建议勾选Generate standalone projects功能,这样就能把对应的库文件也移出来新建一个独立的工程了。 下面再介绍下Library Configuration功能。基于Platform和基于HAL only的工程区别还是比较大的。先简单回顾下KSDK的架构图: blob.png KSDK提供了从硬件到用户软件之间的一系列软件层。而通常来说我们接触的最多的就是硬件抽象层和外设驱动层。从两者所处的位置可以看出它们之间的区别和联系。通过调用HAL层函数可以很直观操作硬件寄存器,实现对芯片底层硬件的配置,避免了直接操作寄存器效率低下的缺点;而PD层则是位于HAL层上部,是基于HALsystem services和部分外设驱动库所搭建的一个更高层次的驱动库,通过调用PD库函数可以直接实现部分功能。 这样基于Platform和基于HAL only的工程就好理解了。HAL only工程结构如下: blob.png Platform工程目录结构如下: blob.png 两种工程各有好处,我推荐如果对代码量要求不苛刻,尽量采用Platform工程,因为在Platform工程既可以使用HAL库,也可以使用PD库,当PD库不满足应用要求时再参考PD库使用HAL去自己构建应用函数。而在HAL工程下只进行了最初级的系统初始化过程,像时钟等部件都需要用户自己使用HAL库,去进行芯片的初始化,这样工程量会比较大。当然在flash空间不充裕,对代码量要求比较苛刻的情况下就只能使用HAL工程进行开发了。基于FRDM-K64的两者空工程生成bin文件大小如下: blob.png blob.png

3.最后推荐几个开发常用文件:

Kinetis SDK v.1.2.0 API Reference Manual(PDHAL库函数都会有相应介绍,方便查询调用) 芯片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