lyl2022 发表于 2014-9-4 08:39:34

【转帖】目前可用的飞思卡尔Kinetis底层固件库资源分析

Kinetis系列微控制器是飞思卡尔公司于2010年下半年推出的基于ARM Cortex-M4内核的微控制器,是业内首款Cortex-M4内核芯片,不过遗憾的是FSL并没有像ST那样提供完善的开发固件包,因此一批第三方固件库就被搬上了舞台,为广大Kinetis开发者带来了福利。下面就将自己接触Kinetis一星期来整理的固件库资料做个总结:
PS1:以下四个固件库均是基于v1.1版本MKx0DZ10.h头文件的寄存器操作封装,此版本是FSL官方自建的头文件,与CMSIS格式标准有一定差别,开发中需注意。


1. FSL官方例程包【KINETIS512_SC】
KINETIS512_SC例程包主要是为FSL推出的塔式系统开发板服务的,其文件列表如下:
   <build>文件夹给出了Code Warrior和IAR下Linker的配置文件;
   <src>文件夹中<common>是FSL提供的通用库,常用的有queue、printf实现等
                         <cpu>是芯片启动相关文件,如cpu头文件、启动文件、系统初始化文件、中断向量表文件等
                         <drivers>是cpu底层驱动文件,也就是核心的固件库
                                 ----<adc16>,片内ADC驱动
                                 ----<enet>    ,片内以太网驱动
                                 ----<lptmr>   ,片内低功耗定时器驱动
                                 ----<mcg>    ,片内时钟管理驱动
                                 ----<pmc>    ,片内电源管理驱动
                                 ----<rtc>      ,片内实时时钟驱动
                                 ----<uart>    ,片内串口驱动
                                 ----<wdog>,片内看门狗驱动

总评:KINETIS512_SC包提供了Kinetis开发的基础外设初级驱动固件包,可满足入门学习。
                        

2. 苏州大学飞思卡尔嵌入式中心K60构件库【SD-FSL-K60-HwComponents】
    苏州大学飞思卡尔嵌入式中心作为飞思卡尔合作伙伴,承担了一部分飞思卡尔芯片推广工作,该中心推出了很多关于FSL芯片的教程、开发板,还研发出了FSL芯片的烧写器(已成功推向市场),当然也包括FSL芯片底层驱动开发。该中心推出的Kinetis开发的资源如下
   <嵌入式系统原理与实践--ARM Cortex-M4 Kinetis微控制器>教程,K60芯片教程,与SD-FSL-K60-HwComponents例程配套讲解;
   <SD-FSL-K60-HwComponents>文件夹是苏大提供的底层固件库
                                 ----<ADC>   ,片内ADC模数转换驱动
                                 ----<CAN>   ,片内控制器局域网驱动
                                 ----<CMP>   ,片内比较器模块驱动
                                 ----<DAC>   ,片内DAC数模转换驱动
                                 ----<ENTH>   ,片内以太网驱动
                                 ----<Flash>    ,片内Flash存储模块驱动
                                 ----<GPIO>    ,片内用户I/O口驱动
                                 ----<I2C>      ,片内I2C通信接口驱动
                                 ----<LPTMR> ,片内低功耗定时器驱动
                                 ----<PDB>   ,片内可编程延时模块驱动
                                 ----<PIT>      ,片内周期中断定时器驱动
                                 ----<RTC>   ,片内实时时钟驱动
                                 ----<SDHC>   ,片内SD存储卡驱动
                                 ----<SPI>      ,片内SPI通信接口驱动
                                 ----<CMT>   ,片内载波调制发射器驱动
                                 ----<FTM>   ,片内Flex定时器驱动
                                 ----<TSI>      ,片内触摸感应驱动
                                 ----<UART>   ,片内串口驱动
                                 ----<USB>   ,片内USB 2.0通信接口驱动
                                 ----<Wdog>,片内看门狗驱动
总评:SD-FSL-K60-HwComponents是基于KINETIS512_SC包的二次开发,其丰富了片内外设的初级驱动,可用作进阶学习。
链接:http://sumcu.suda.edu.cn/BingoV1 ... ardId=2&catId=#


3. 野火嵌入式工作室K60固件库【fire_Kinetis】
    野火嵌入式工作室推出的STM32系列开发板和独家教程,相信坛子里的人不会陌生,本人STM32启蒙老师就是野火,现在野火也在做Kinetis系列开发板和教程,同时也开源了板子源代码和教程,具体资源可去本坛<野火M3>分区里下载
   <三天入门Cortex-M4--Kinetis系列>教程,野火K60开发板配套教程,比较详细地介绍了野火K60固件库;
   <fire_Kinetis>文件夹是野火提供的底层固件库
         <build>文件夹给出了Code Warrior和IAR下Linker的配置文件;
         <src>文件夹中<common>是FSL提供的通用库,常用的有queue、printf实现等
                           <cpu>是经野火改写后芯片启动相关文件
                           <drivers>是野火修改和添加后的固件库
                                 ----<adc>      ,片内ADC模数转换驱动(野火改写与注释)
                                 ----<lptmr>   ,片内低功耗定时器驱动(野火改写与注释)
                                 ----<mcg>    ,片内时钟管理驱动(野火改写与注释)
                                 ----<pmc>    ,片内电源管理驱动(野火改写与注释)
                                 ----<rtc>      ,片内实时时钟驱动(野火改写与注释)
                                 ----<uart>    ,片内串口驱动(野火改写与注释)
                                 ----<wdog>,片内看门狗驱动(野火改写与注释)

                                 ----<dac>      ,片内DAC数模转换驱动(野火添加)
                                 ----<dma>   ,片内直接内存存取驱动(野火添加)
                                 ----<exti>      ,片内外部中断驱动(野火添加)
                                 ----<Flash>    ,片内Flash存储模块驱动(野火添加)
                                 ----<FTM>   ,片内Flex定时器驱动(野火添加)
                                 ----<gpio>   ,片内用户I/O口驱动(野火添加)
                                 ----<i2c>       ,片内I2C通信接口驱动(野火添加)
                                 ----<PIT>      ,片内周期中断定时器驱动(野火添加)
                                 ----<sdhc>    ,片内SD存储卡驱动(野火添加)
                                 ----<spi>       ,片内SPI通信接口驱动(野火添加)

                                 ----<AT24C02> 、<camera>、<delay>、<lcd>、<LED>、<NRF24L0>、<w25x16>,野火板上驱动
总评:fire_Kinetis也是基于KINETIS512_SC包的二次开发,其参考了其他固件库建立思想,也整合了其他固件库,是不可多得的学习资料。
链接:http://www.amobbs.com/thread-5461508-1-1.html


4. 拉普兰德K60固件库【LPLD_OSKinetis】
    拉普兰德电子公司致力于飞思卡尔微控制器产品的开发,先后推出一系列专门适用于智能车竞赛的微控制器开发板、传感器等产品。目前该公司携手飞思卡尔社区为第八届智能车大赛推出了K60核心板以及固件库
   <Cortex-M4自学笔记-基于Kinetis K60>教程,比较详细地介绍了LPLD K60固件库;
   <函数手册>教程,给出了LPLD K60固件库所有函数列表;
   <LPLD_OSKinetis>文件夹是LPLD提供的底层固件库
   <lib>文件夹中<common>是FSL提供的通用库,常用的有queue、printf实现等
   <cpu>是芯片启动相关文件,如cpu头文件、启动文件、系统初始化文件、中断向量表文件等
   <drivers>是FSL官方基础固件库
   <LPLD>是LPLD添加后的固件库
                                 ----<HAL_ADC>          ,片内ADC模数转换驱动
                                 ----<HAL_CAN>          ,片内控制器局域网驱动
                                 ----<HAL_DAC>          ,片内DAC数模转换驱动
                                 ----<HAL_ENET>      ,片内以太网驱动
                                 ----<HAL_FLASH>       ,片内Flash存储模块驱动
                                 ----<HAL_GPIO>         ,片内用户I/O口驱动
                                 ----<HAL_I2C>            ,片内I2C通信接口驱动
                                 ----<HAL_LPTMR>       ,片内低功耗定时器驱动
                                 ----<HAL_PDB>         ,片内可编程延时模块驱动
                                 ----<HAL_SPI>            ,片内SPI通信接口驱动
                                 ----<HAL_FTM>         ,片内Flex定时器驱动
                                 ----<HAL_UART>         ,片内串口驱动
                                 ----<HAL_eDMA>         ,片内直接内存存取驱动
                                 ----<HAL_USB_Device> ,片内USB 2.0通信接口驱动
总评:LPLD_OSKinetis也是基于KINETIS512_SC包的二次开发,给出了比较详细和规范的固件库,是很好的开源资料。
链接:http://www.lpld.cn/

5. 超核电子Kinetis例程包【CHK】
    超核电子是淘宝上比较早做Kinetis开发板的,其店主是中国石油大学的杨熙(网名Yandld),其给出的Kinetis例程是基于Keil MDK平台,且例程风格类似正点原子。现在已经更新,有了Keil,IAR和CW的平台版本。
   <Kinetis编程入门指南>开发板配套教程
   <HARDWARE>文件夹给出了硬件相关驱动
                                 ----<exti>    ,片内外部中断驱动
                                 ----<ftm>    ,片内Flex定时器驱动
                                 ----<pit>   ,片内周期中断定时器驱动
                                 ----<spi>   ,片内SPI通信接口驱动
                                 ----<tsi>      ,片内触摸感应驱动
   <SYSTEM>文件夹中系统基础驱动
                                 ----<sys>   ,片内时钟管理驱动
                                 ----<gpio>    ,片内用户I/O口驱动
                                 ----<uart>    ,片内串口驱动
                                 ----<wdog>,片内看门狗驱动
总评:CHK固件包是Yandld原创库,是符合CMSIS标准的头文件封装的固件包,可满足入门学习。
链接:http://www.tinychip.net
PS1:该库是基于v1.2版本MKx0DZ10.h头文件的寄存器操作封装,此版本是FSL按照CMSIS格式标准改写。



个人觉得很有用的东东!忘了在哪找的了!如有侵犯版权请告知修改

湛泸骏驰 发表于 2014-9-4 08:47:09

楼主应当还要加上官方的库。{:2_25:}。。这样才比较全。

烤焦的面包 发表于 2014-9-4 08:53:21

我觉得拉普兰德的还不错

sdlibin007 发表于 2014-9-4 08:56:29

感觉还是比较喜欢野火的和苏大的!!

fengyunyu 发表于 2014-9-4 09:01:08

帖子内容不错。但貌似已经发过了。http://www.amobbs.com/thread-5524442-1-1.html

lyl2022 发表于 2014-9-4 09:03:13

fengyunyu 发表于 2014-9-4 09:01
帖子内容不错。但貌似已经发过了。http://www.amobbs.com/thread-5524442-1-1.html

但是还有好多人没看到啊

湛泸骏驰 发表于 2014-9-4 09:03:32

烤焦的面包 发表于 2014-9-4 08:53
我觉得拉普兰德的还不错

之前也是用的LPLD。。自己不会移植,特别是芯片不带z之后...时钟部分自己不会写。。。找时间看看苏大的,研究研究怎么写在说吧。。

lyl2022 发表于 2014-9-4 09:20:10

湛泸骏驰 发表于 2014-9-4 08:47
楼主应当还要加上官方的库。。。这样才比较全。

我找的时候没官方库,现在不知道有木有

湛泸骏驰 发表于 2014-9-4 09:25:47

lyl2022 发表于 2014-9-4 09:20
我找的时候没官方库,现在不知道有木有

官方出来了,只有一部分。。

rootxie 发表于 2014-9-4 09:27:27

内容不错,感谢分享

mcucow 发表于 2014-9-4 09:34:27

感谢分享
FSL没有完善的库吗, 缺哪部分的?

lyl2022 发表于 2014-9-4 09:39:36

湛泸骏驰 发表于 2014-9-4 09:25
官方出来了,只有一部分。。

有点话能分享下?趁着关注度高让更多的人看到
页: [1]
查看完整版本: 【转帖】目前可用的飞思卡尔Kinetis底层固件库资源分析