完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 suyong_yq 于 2015-1-6 00:37 编辑 suyong_yq@126.com 2014-01 最近参加了Andy Chen在ElecFans的社区中组织的学习KL25的活动。自己之前对KL25单片机有了解,做了一些功课,整理了之前的代码创建了这个固件库,分享给大家参考,一起学习,写的不好请别拍砖哈。现在这个固件库还在开发当中,目前支持: 对FRDM-KL25的板子进行了移植,可以直接在FRDM-KL25的板子上跑样例程序的。以后还会继续添加模块,学到了就加新的。固件库的名字还没想好,等完善了再正式命名,暂时就叫作“LiteFwLib_KL25”吧,后面简称“LiteFwLib”(如果还能引用这个词的话)。 这里先写一个简单的说明,先让大家用起来看看。 关于目录在这个文档里就略过了,本来也没几个,大家自己戳戳看就知道了。 我使用了“二段编译”的结构设计的LiteFwLib,也就是先得打开目录“fsl_frdm_kl25librarybuild”下的工程,编译生成lib库文件“fsl_frdm_kl25.lib”(这个文件位于目录“fsl_frdm_kl25libraryoutput”下,样例工程已经自动包含好啦),然后才能编译目录“fsl_frdm_kl25example”下的样例工程生成最终的可执行文件下载到单片机。 这样做的好处是:通用的驱动程序在一次编译后可以多次使用,节约了不少应用开发的时间。实际上,只有写驱动的时候才会编译固件库,写应用程序(比如main函数和中断服务程序)的时候只要关注程序的执行逻辑就可以了,也不会再去调驱动代码了。 在“fsl_frdm_kl25example”目录下写了几个最简单的使用固件库代码的样例程序,有的程序需要用杜邦线连接一下的,还有程序的运行情况的截图和说明文档,都还没来得及写。不过代码是以最精简的方式写的,一看就懂,可以直接编译下载到FRDM-KL25板子里看现象的。 例子程序包括:
中间空下编号的例子程序,不是作者不舍得放出来,是因为比较懒得写,就还没整理出来。比如说编号排在第7的,应该是DAC的程序,这个DAC驱动的功能非常简单,一看就会,但是单单用FRDM板子不好做实验。Bingo,我突然想到可以让DAC输出电压信号,然后让ADC采样回来显示到串口终端上,哇,我太厉害了(自恋5秒钟。。。),下一个版本要加上去。 好吧,LiteFwLib代码包中的主要内容都介绍了,现在要提一下程序的执行结构。就以第一个uart_hello举例吧。 上电之后启动到main()的过程暂时先不用管,咱们学习的时候主要关注main()函数里的东西,不过在进入main()函数之前已经把系统内核的时钟设定好了,为推荐使用的最高频率48MHz。 进入main()函数之后,首先调用init_board()函数,这个东东是初始化板子的,里面有三个主要步骤: 1. 调用SIM模块的驱动程序,把芯片上的各个模块在芯片内部连接起来,最主要的当然要数时钟啦,要把时钟信号从时钟发生器输送到各个功能模块中。 2. 访问PORT模块,将要使用模块的引脚配置好复用功能。这个是跟电路板相关的,我已经为FRDM-KL25板子移植好了现成的函数,列在“bsp_config.h”文件中,BSP函数打头的函数随便用啊,保证引脚不冲突的。如果自己要移植到其它的板子,也主要是在“bsp_config.c”文件中改,盯着这一个文件,引脚分配时也不同意看走眼出现冲突的情况。 3. 调用最常用模块的驱动,配置要系统级别的功能。比如说这里用到的UART串口,可是要支持标准输入输出的printf和scanf的,老重要了,所以就先在这里完成功能配置。后面用到的arm_systick也属于类似的情况,可以作为通用的定时器的,还有就是NVIC模块,这厮是在ARM Cortex-M内核里管理中断的,也可以调用CMSIS标准接口在这里设定好。其它功能模块的初始化就跟应用联系比较密切了,所以就放在main.c文件里吧。 经过init_board()再回到main函数后,大家想咋搞就咋搞,我就不多说了,代码一看就明白。输出欢迎信息,显示程序的编译时间,进入无穷无尽有无休止的循环当中万劫不复。。。(我表示已经快在while循环中转晕了) 今天的介绍就到这里啦,我困得块要睁不开眼睛了。要注意的是,开发包中example目录下的样例工程默认使用Jlink进行下载和调试,而FRDM-KL25的板子上自带的是OpenSDA的调试器,是不是还得专门搞个Jlink呢?呵呵,不用的,这里先卖个关子,请听下回分解(现在实在是困得不行了)。但是用OpenSDA原生的固件也是可以下载调试程序的,只要在Keil工程的Object->Options for target “<工程名,例如uart_hell>”对话框中,在“Debug”标签页下选择使用OpenSDA的调试组件即可。 最后附上我为frdm-kl25写的最新尝鲜版固件库开发包,有bug的话提出来我尽快fix掉,请别拍砖哈。
SY_20140106_fsl_frdm_kl25.zip
(1.12 MB, 下载次数: 708
)
评分 |
|
相关推荐
|
|
|
|
|
|
支持楼主啊,资源拿回去看看 |
|
|
|
|
|
谢谢分享,
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
1914个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36381 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4412 浏览 0 评论
6075 浏览 1 评论
6787 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4229 浏览 0 评论
632浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
628浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
624浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
704浏览 2评论
810浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 09:54 , Processed in 1.194556 second(s), Total 64, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号