本帖最后由 yyang 于 2013-1-18 14:30 编辑
前一段时间发现了freescale的freedom开发平台,我个人是很喜欢freescale的东西的,freescale官方的硬件开发平台一贯是很贵的,比如TWR系列在国内加个基本是1K以上。而FRDM-KL25Z才卖12.95美金,国内百来块钱就能买到了!板子的制作也是非常的精美,于是乎垂涎欲滴哈,KL25Z是cortex-M0+ core的,freescale在CW10.3中加入了MQXLite,也就是轻量级的MQX RTOS便更有吸引力了!!就在freescale的官网搜集了一下资料,网是:www.freescale.com/FRDM-KL25Z
首先安装编译换进把,CW-MCU10.3Z支持KL25Z,要下载CW-MCU10和PE_DRIVER_SUITE安装到自己的电脑上。 首先可以看看《FRDM-KL25Z User's Manual》对FRDM-KL25Z有个大致的认知。 然后看看《Quick Start Guide for FRDM-KL25Z》这篇文档,文档介绍的挺详细的,介绍了FRDM-KL25Z一些资源和OpenSDA的一些概念OpenSDA是一个开源标准的open-standardserial and debug adapter技术,也就是说集成了debug和serial,所以开发FRDM-KL25Z只需要一根miniUSB线就行了!!关于OpenSDA的一些具体的细节和下载一些新的固件可以参见:www.pemicro.com/opensda。在上面的连个网站基本上看可以下载到自己所需的资料啦!在公司偷了一天懒,浏览了一下这些资料! 过来几天定的板子到了,兴奋啊上图吧:
二话不说,拿出早就准备好的USB线,上电:
注意到,图片上我上和USB线最近的那颗绿色的LED亮了,这是应为我装好了CW13.0以及相关的驱动。钥匙没有装好驱动的电脑上这个LED应该不会亮的! 装好驱动之后在电脑的设备管理器中可以看见:
上电之后板子运行出厂的程序,RGB LED闪烁,翻转板子RGB LED颜色改变。触摸电容感应板RGB LED闪烁频率改变,激动哈! 在freescale的官网可以下载到部分FRDM-KL25Z的源码!开始就用CW10.3+官方的例子来调试吧。解压官方源码实在Kinetis L Sample Code这个文件夹下面,我们就用MQX_Lite_i2c_demo这个例子! Kinetis L SampleCode\kl25_sc\klxx-sc-pex\projects\MQX_Lite_i2c_demo\cw CW10.3是基于eclipse的,使用方式基本个eclipse相似在File菜单项选择Import,选择Import后在对话框中General下拉选择ExistingProject into Workspace然后选择工程所在的目录就能导入一个工程啦!导入工程编译通过之后,点debug 会发现出错了! 这时候想到了OpenSDA的Bootloader原因。OpenSDA的具体介绍参见《OpenSDA User's Guide》文档! FRDM-KL25Z出厂默认的是MSD Bootloader(mass storagedevice Bootloader),在文档中有这样一句话OpenSDA software includes a flash-resident USB MSD Bootloader and acollection of OpenSDA Applications。我们使用CW10.3 debug的时候应该用P&EDebug Application,手册上的描述为:The P&E Debug Application is an OpenSDA Application thatprovides debugging and a virtual serial port all in one application.在http://www.pemicro.com/中可以下载到新的OpenSDA的Firmware,如下图:
我们应该用上图标红的那个SDA文件,怎么更新OpenSDA的Firmware呢?如下: 按住板子的reset键,然后讲USB线接到电脑上,此时绿色的LED会闪烁,同时KL25Z被模拟成了一个U盘形式的,在计算机中可以查看到:
直接将EBUG-APP_Pemicro_v102.SDA这个文件拖拽到BOOTLOADER中就行了
很方便把!然后重新将我们的板子接到电脑上吧!在CW10.3中debug吧: 这时在右下角可以看见进度条啦!! 界面出来了,不报错了: 可以开始我们的体验之旅了!
值得一提的是CW10.3中的Processor Expert的功能是很强大的,我们可以配置生成我们所需要的代码,CW10.3今天就不做介绍啦,关于CW10.3+FRDM-KL25Z可以参见《Writing your first MQXLite Application.pdf》这个手册写得很详细,不过还是有点不足,要一边看一边思考!
随后我利用CW10.3+FRDM-KL25Z测试了一个MQXLite RTOS的例子,其中有三个task。分别是read_task(),write_task(),Task3_task()还有一个ISR.在read_task是自启动的task,然后有它创建两外连个task以及加载一个ISR.write_task中让字母做+1操作,在read_task中将write_task加过后的字母打印出来,两者之间通过轻量级的信号量同步,也就是一个简单的生产者消费者的例子。通常情况下Task3_task是阻塞的,他一直等待ISR的信号量。板子上我外接了一个按键,用来产生一个外部中断,当按键按下,中断发生,系统跳转到ISR的函数中,在ISR中传递一个信号量给Task3_task(),当Task3_task()收到ISR的信号量变成active状态,打印一个语句!
哈哈 上图,由于没有找到镀金的排针,暂时用飞线接的按键:
这是程序的运行结果,通过串口打印出来的!!
SecureCRT的设置为:波特率115200,数据位:8,无校验位,停止位:1
将工程代码传上来,另外上传一些文档资料以及OpenSDA的Firmware:
My_MQX_Lite.zip
(4.78 MB, 下载次数: 808)
|