虽然这次的开发板上有keil例程,可是一直想着用KDS,毕竟是官方的而且free的IDE。另外KDS是因为自带了PEx,图形化的代码自动生成,是我向往的。前面有TICS说当前的1.1.1有bug,官方也不支持xp,可是咱还是来学学吧,东西能做到哪一步算哪一步,积累点经验给大家参考。 这个DWF是今年6月在美国做的,大概包括了几个部分,主要是KSDK、bootloader、新K2系列介绍,英文的,看了下写点自己的心得
首先看看KDS的开发计划,今年国庆发布2.0,可能那个时候就会稳定一点了 主体是KSDK(Kinetis SDK) 在上图中,厂商开发的SDK主要的位置在下数上,3-4层,有HAL、systemservice、OSA、Peripheraldriver(PD),stacksand middle wares。
HAL+systemservice:处于SDK的最底层、可以算是底层驱动,system service有部分也要依赖HAL。System主要包括时钟管理,中断管理、定时器管理和功耗管理。HAL就是外设驱动了。不过要注意,HAL是不处理ISR,如果仅使用HAL做的话,还必须自己来处理ISR的入口。不过加上system service应该就够了吧?文中也给出了一些例子,和我们常见的编程方式比较像 位于SDK中层的是Peripheraldrivers (PD) - high level drivers, 这个高层的驱动,没有特别介绍,但看起来应该是为了方便不同硬件平台移植用的。Init函数可以在运行时来改变配置。从代码特色角度来看,全部是结构体的方式作为参数来传递和返回,初一见,还是有点不大适应的。 OSA: 这一层是用来和RTOS来打交道的,如果不上os,关系不大。
Stacks and middle ware:PD无法涵盖的模块驱动(比如说USB)、第三方驱动(LWIP,FatFs。。。)以及RTOS的源代码(MQX、FreeRTOS等) 另外还有一部分是Boardconfiguration:处理pin muxing,板子相关以及集成在板上的硬件驱动 上两张SDk的文件结构图,感觉写的还是比较清晰的。
第二部分:Bootloader 这个我也是第一次接触。Bootlaoder主要功能有和主机的串行通信,代码更新,代码保护等。 可以是ROM、RAM or flash based,这里的ROM和flash有啥区别呢? ROM是专用rom,独立区域,未来会更多的提供,在flash中会提供一个存储参数的区域(FOPT或者BCA),看下图就很明白了 启动是或者可以由用户代码调用,这是干啥呢?用bootload实现某些通信功能?这样都不用写驱动代码了?
Flash based 就是写在flash的最顶端,程序应该先执行bootloader,然后link到用户代码区 RAM based 供工厂编程用,驻留在flash中,上电自行copy到ram中,然后整个flash可用。这个bootloader应该是一次性的。 Command processor?? 所有命令都是封包的,有framing,command and data 提供CL(所有命令)和GUI,基本命令界面
最后介绍了一些未来的K2系列单片机,不过大家注意,这个可不是我们现在手头这个K20系列的单片机,他指的是第二代Kinetis单片机。从路线图我们可以看到现在的顶级货K系列未来会被X系列取代,最高主频400MHz,这是什么节奏啊!!!第二代Kinetis包括以下东西 以K2x系列为例,比较了新的MK22FN512VLL12和旧的MK20FX512VLL12,运行功耗可以降低42%,待机功耗降低50%,还是很厉害的。
附件里面是ppt
DWF-KDS-KSDK - Presentation.zip
(3.83 MB)
|