从零入手Kinetis系统开发(1-11)

上传人:灯火****19 文档编号:125166873 上传时间:2020-03-15 格式:DOC 页数:68 大小:7.59MB
返回 下载 相关 举报
从零入手Kinetis系统开发(1-11)_第1页
第1页 / 共68页
从零入手Kinetis系统开发(1-11)_第2页
第2页 / 共68页
从零入手Kinetis系统开发(1-11)_第3页
第3页 / 共68页
从零入手Kinetis系统开发(1-11)_第4页
第4页 / 共68页
从零入手Kinetis系统开发(1-11)_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《从零入手Kinetis系统开发(1-11)》由会员分享,可在线阅读,更多相关《从零入手Kinetis系统开发(1-11)(68页珍藏版)》请在金锄头文库上搜索。

1、整理内容转自http:/ 所以从Kinetis一出来就引起了我很大的兴趣,从去年9月份发布以来,估计大家就都在翘首以盼FSL能尽快出开发套件和相关资料,呵呵。提到这,就不得不对飞思卡尔抢占的市场先机赞一个,毕竟M4的核还是飞思卡尔领先发布了,虽然紧接着NXP和意法都推出了相关产品,不过在当今这个激烈的市场机制下,尤其是电子产品,谁先抢占先机谁就占据了优势,这个我们从如今智能手机领域竞争的激烈程度上就可略窥一斑,虽然不灰常了解FSL为什么ColdFire,PowerPC做的好好的,转向ARM(估计是在如今ARM家族正如日中天的大环境下,显然飞思卡尔也不想落下它,偏的太远,呵呵),不过飞思卡尔片子

2、的可靠性还是公认比较好的了,就是小小的期望一下,FSL以后客户定向能稍稍微偏向下我们小群体(片子太贵了啊,汗),尤其是我们这些个穷学生,呵呵。 以上纯是自己一点个人观点,有点偏主观色彩,大家心急的可以直接略过,不心急的咱以后再探讨,呵呵,那下面咱直接进入主题。既然标题是从零入手,就得像垒积木那样一步步的来,因为我也是从零开始的,也希望同大家一块儿交流自己学习期间的一点心得和经验,给过去、现在或者将来徘徊在Kinetis大门外犹豫的广大电子爱好者一点启发,起码别像我当初那样愁眉苦脸四处碰壁找不到入门的途径,毕竟Kinetis太新了以至于现在资料都很少(咳咳,主要都是英文的,看着太累了,哎),大多

3、数人都在边摸索边前进着,当然肯定有大牛已经远远走在前列了,这个只能仰视了,呵呵,我们还是一步步慢点来踏实些。下面我以我自己的开发经历给大家敲响Kinetis的大门(有点大了,咳咳)。 第一系列就首先带大家准备一下开发系统的搭建,巧妇难为无米之炊,那我们就从硬件和软件两个方面准备一下: 硬件方面,因为我手里有块K60的最小系统板(要玩就玩数大的是吧,60够大的了,呵呵,开玩笑的,这个根据自己实际情况来,其实大部分操作还是一样的),以后的开发不出意外的话就先以它为例,下面给大家看下俺的板子, 片子用的还是工程测试的片子(PK60,哎,期待看到MK60呢一直,呵呵),不过不影响使用,还是比较稳定的。

4、上图: 还有就是调试工具了,我看了飞思卡尔的官方的tower系统,上面是自带JM60的JTAG的了,还是挺好的,不过我最后还是选择了J-Link,广大ARM爱好者的最爱了,功能强大而且又便宜,我觉得还是挺适合我们一些低消费群体的了,现在已经出到V8版本的了,而且还支持在线固件升级,还是很靠谱的,虽然现在J-Link被我们广大国内厂家抄的较为泛滥,PCB我就发现过好几个版本的,拆过几个发现都不一样来,汗,呵呵,不过用着还是挺好的,而且估计也正是因为这点才造成价格真是低啊,真好,嘿嘿。至于最后为什么选择了J-Link,下面软件马上揭晓。 软件方面,目前有三种支持的开发环境,即CodeWarrior

5、,IAR FOR ARM和Keil For ARM,CW10.1版本和IAR 6.1版本以上开始支持Cortex-M4内核,至于Keil我没测试,在这里就不敢乱说了,毕竟群众的眼睛太雪亮了,呵呵。至于下载问题,可以直接到官方网站上去下载,CW10.1下special版的,IAR下Evaluation版的,毕竟免费,不用白不用,遇到各种代码限制的话,大家都懂的,知道怎么做了吧,呵呵。由于以前一直在用CW开发环境,觉着真的很强大,尤其是在线仿真跟踪功能,真的很好用,文本编辑也很人性化,总之很好,不过我最后还是选择了IAR,一是想换种口味,找找新鲜,对比下两者区别,毕竟IAR的编译效率还是有良好的口

6、碑的,还有一个原因是正好我在玩430,所以索性趁此机会熟悉下,现在发现还是不错的。还有就是上面提到的问题,为什么最后选择了J-Link,一个是性价比高,还有一个主要原因是我发现Tower自带的JTAG在IAR环境下竟然不支持在线跟踪,自动刷新,每次查看内存读寄存器还要点暂停,这个对于我们这些懒惯的人来说有点无法容忍了,呵呵,哎,最后只能挣扎着用J-Link了,目前运行正常,没发现大问题。 现在”米“,”锅“都有了,生米不能吃,等到咱能吃了,估计也该大圆满了,呵呵,以后希望跟大家一块儿烹饪咱们这锅饭,它叫”Kinetis“,呵呵,这是第一篇,话多有点罗嗦,以后争取言简意赅,咳咳。未完待续【原创】

7、从零入手Kinetis系统开发(二) 经过了上一篇的一阵啰嗦的准备,呵呵,该有的硬件和软件开发环境已经选择好了,下面该是我们大展身手的时候了。废话不多说了,首先想先以自己的理解分析介绍下飞思卡尔官方提供的k60最小系统的硬件电路和IAR例程的编程结构,这个很重要,先学学人家的在创新自己的(汗,不知不觉走上了中国制造思想的这条路,先模仿再超越,至于能不能超越?未知,呵呵)。 说的这里我还想提一下,我在这里想分享的不仅仅是自己的开发过程和以后可能的一些代码(当然这部分很重要,想得到一些高手们的一些意见和交流),而是更重要的想分享给徘徊在初学者阶段的人学习一款新片子的完整流程也就是学习方法,授人以“

8、渔”才是王道,呵呵,虽然这个流程我时至今日还在摸索完善,但是期望能给他们一些启发,因为身为一个搞电子的学生,都是从那一步走过来的,我深知其中的艰辛和渴望有人指点的迫切。至于这个流程,呵呵,随着本系列的深入,我相信会体会出来的 言归正传,首先介绍下FSL塔式结构的K60最小系统板子上的资源,上图: 从图上我们可以看到,它几乎把K60的资源全部引出来了,原理图在附件: 1、电源部分,USB供电,经过LDO转成3.3v,这里重点提一下,其实可以不用LDO而是采用K60自带的USB电压调节器,5v输入电压调节器输入端(VREGIN),输出(VOUT33)3.3v以供芯片工作,我上篇的板子就是这样用的,

9、飞思卡尔显然也考虑到了,所以加了跳线选择; 2、时钟部分,50MHz有源晶振,32768Hz实时时钟(RTC)。其中主时钟输入如果用到以太网模块的话需要引出,因为以太网的PHY和K60需要同相,很重要;至于RTC,供电VBAT则可以使用外部电源3.3v也可接纽扣电池,掉电保存; 3、加速度传感器MMA7660,官方有个DEMO例程有个小应用用到它,还是挺好玩的,可以做些姿态感知; 4、ADC,外接一个电位器,貌似这都快成为一个最小系统的(括弧:测试用的)的标配了,呵呵,用来测试AD模块的,官方例程有介绍; 5、TSI,个人觉着FSL很好的一个资源,集成了电容触摸功能,在当下电容触摸红红火火的时

10、候,这个飞思卡尔没有落下,挺好,呵呵; 6、LED灯,这个也是标配了(想起了跑马灯,流水灯,呵呵,真怀念,哈哈),测试GPIO用; 7、SD卡驱动,人家是正经的SD模式驱动,可不像俺以前搞的SPI模式(速度不是很快,还不稳,哎); 8、infrared port,红外调制模块。 9 。(待加) 下面以飞思卡尔官方提供的在IAR环境下的GPIO例程为例,分析下编程结构,注意是分析飞思卡尔的编程结构,而不是逐行讲程序,因为我觉着熟悉一个开发环境工具,首先就要熟悉它的工程构架和风格,然后编辑编译连接代码,功能设置,下载调试等等,最后这才敢说叫掌握一种开发环境,这才敢以后毕业写在简历上呢,呵呵。再上图

11、: 如上图,官方的例程一般都是K60和K40平台的两种,这里我们通过选择左侧工程窗口的选项卡选择K60平台,然后选择FLASH_512K_PFLASH配置模式,这是随便选择的,呵呵,其实这个配置模式还是很重要的,这个会在下次重点介绍下,下面分别介绍下每个工作组。1、common工作组 这个工作组的文件比较杂,这里挑几个重要的以后会用到的说一下。首先startup两个文件,可以直接就猜到,这个启动代码有关的文件,其实这个文件只包括了RAM区的初始化即把向量表和一些数据放到RAM区,所以是不全的,以后我会单独写一篇有关启动代码部分的,而且最后把启动部分都归到一个文件里;然后就是printf.c文件

12、,用在终端交互上;最后就是common.h文件了,也是最重要的头文件了,你会发现几乎每个模块都加载了这个头文件,而且你也会发现你翻遍了这几个工作组文件都没找的K60的头文件,应为它们都在这个文件里加载了,这个需要引起足够的重视。至于其他的文件以后用到再分析。2、cpu文件组 这个文件组涉及到了M4核文件arm_cm4,启动文件crt0.s、start.c、sysinit.c和向量表文件vectors.c。这几个文件都很重要,其中M4核文件包括了一些有关NVIC即中断模块的应用函数,例如使能和禁止IRQ中断,设置中断优先级等,至于启动部分都会统一在后面系列介绍,至于vectors文件则是缺省的向

13、量表文件,这个以后用到中断设置的时候会用到,很重要。3、drivers文件组 这是驱动部分文件组,这个例程只写了三个部分的驱动,即多时钟产生器(MCG),异步串行通信(UART),看门狗(wdog)。这个文件组主要就是放置K60资源的驱动代码,这里只有三个,因为例程里只用到了这三个模块,可以直接调用其内部子函数。4、IAR文件组 这个文件组为IAR环境的配置模式文件组,每个icf文件代表一种配置模式,其内部对K60内存映射做了相应的的分配,从每个文件名就可以看出其含义,具体区别和分析,将在下系列做详细的介绍。5、platforms文件组 这个是平台文件组,内部包括了跟相应平台相关的硬件配置定义

14、。像这个例程,就包括了UART通信端口和波特率的定义和系统全局时钟的定义。6、project文件组 这个才是我们最喜欢的真正“main”文件组了,呵呵,把gpio_k60.c当成main.c就是了。我们在工程开发相关的文件可以放到这个文件组里,这个例程是实现K60的GPIO功能,所以添加了gpio_k60.c文件。另外isr.h文件则是编写中断服务程序需要用到的头文件了,里面定义了所需中断的中断向量和中断服务程序的声明。7、output文件组 这个文件组包括了整个工程编译链接后生成的文件,其中.map文件描述了K60最后的内存分配情况,在里面可以查看工程耗费的ROM容量和RAM容量还有一些变量

15、函数等等的地址,还是挺有用的;out文件则是最后生成的文件,调试下载所需的文件。 这篇主要对K60 Tower系统官方的的硬件和软件进行了简单的介绍,有了这个基础才能建立自己风格的硬件和软件环境。人家的毕竟是人家的,用着不舒服,只有自己消化吸收了用自己容易理解的风格建立一套有自己特色的开发系统才是正道,呵呵,拭目以待,下回分解 附件为tower硬件原理图和较新的官方IAR关于K60的例程。【原创】从零入手Kinetis系统开发(三)之建立自己风格的IAR编程结构本来按计划在这篇博客第三系列,我是想跟大家一块儿分析和整理下K60的启动代码部分的。可是后来想来想去,觉着既然上一篇写了飞思卡尔的官方例程的编程结构,那么这次就一鼓作气索性先把自己的工程风格建立起来,而且这样建立好了工程之后再分析其启动代码也不显得突兀,容易接受和理解,呵呵(咳咳,有点当老师的赶脚了)。所以这篇如果具体来说,应该叫做“从零建立属于自己风格的基于IAR的K60工程”。 既然说是自己风格,可能就有些偏主观色彩了,呵呵,希望高手大侠们不要拍砖,主要是拿出来希望可以给入门级的同志们一点借鉴和经验,当然也希

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号