【原创】离线烧写工具Cyclone Max使用方法及单次按键烧写两个image文件
1赞前段时间一直忙的不可开交,最近终于得闲抽空开开荤写几篇了(有种“大圣归来”的赶脚,哈哈)。不过虽然这段时间没怎么写出来,但是我的资料库里还是积累了不少东西,脑子里也一直缠绕很多写作的思路。到现在我是真心觉着坚持写作(尤其是这种技术型的文章)真是件不容易的事情,种种牵绊和时不时的思维枯竭,甚至偶尔还有心理排斥(拖延症在作怪),但是一篇篇的写下来的的确确能感受到开源分享给自己带来的内心充实和成就感,记录积累的习惯给自己带来的职业素质一步步的提高,自己由此从中获益甚多,世上没有免费的午餐,开花结果的收获终究来自于勤勤恳恳的付出(咳咳,有点心灵鸡汤的味道,还是少看多作吧)。多说一句,AET这次的博客改版的确有点不太习惯,个人感觉文章界面可以做的更好些(现在每篇文章的文本区太窄了字体大小也不能修改,整体感观不是舒服,不排除我有强迫症啊,呵呵),原版本的搜索引擎(现在俺找俺以前的文章都得借助百度搜了,这点有些不太方便)和最近一个月的文章排行(一般来说一个月内点击量排行前几十篇才是真正有料的)等比较有特色的功能可以加上,希望这点建议如果AET的编辑看到了能够采纳,当然个人出发点还是希望AET能够做的越来越好,让俺们这种“闲人”一直有家的赶脚,哈哈!
好了,多说无益,进入正题。对飞思卡尔比较熟的博友可能会比较熟,Cyclone Max是在量产飞思卡尔MCU时常用的同时支持在线或者离线编程的烧写工具,如下靓图,其官方链接为http://www.pemicro.com/products/product_viewDetails.cfm?product_id=145&menu_id=details,有兴趣的可以移步去瞅瞅,进入其主页赤裸裸的899美刀还是会亮瞎一部分人眼睛的,咳咳,价格是略贵,不过其功能却异常强大,鄙人不甚荣幸手里有一台,一直奉为宝贝,随着使用的深入,也是觉着这个工具还是蛮强大的,本篇文章就是写上一写最近一次使用的小技巧分享给大家学习一下了(如果翻译成英文,俺得找P&E公司要点报酬啊,哈哈),至于Cyclone Max具体的使用方法,我这里就不提了,如果手里有这个工具的博友可以在其软件包中的user guide里找到相关介绍,不过在使用之前的确有些需要注意的小tips,具体请参考我一位同事的文章http://blog.csdn.net/wangwenxue1989/article/details/41551649:
我们知道在产品的大批量生产线上,在给主控制器下载程序时用户都需要给生产工人做好下载工装(工装对一线工人来讲应该是越傻瓜式的越好,这样的话工人出错概率越低,生产效率则越高),一般情况下,使用离线下载器的话本身就是比较简单的,工人只需要按一次下载按键即可把存放在离线下载器上的image文件下载到MCU中,然后继续下一个,以此形成生产流水线的一个环节。
不过有些复杂应用场景,会有这样的需要,即我需要先下载一段测试程序到MCU上运行起来一段时间测量一些参数校准标定每个板子的差异使每个板子的运行参数尽量统一,然后把标定参数存放到内部或者外部的EEPROM里,之后紧接着下载真正的用户代码读取EEPROM里的参数作为以后运行的标准。这样的使用场景对生成工人来讲则是一个不小的挑战,我们需要尽量的简化工人在其中的参与程度以此减小出错概率,即最优化的情况下仍然只提供一次按键信号实现两个image文件间隔一定时间相继烧到MCU(其中一个是测试程序先运行,另一个是真正的用户代码待测试程序运行完后覆盖该代码完整烧到MCU中)。
这种复杂的量产场景,一般的做法是需要两个离线烧写器通过恰当的时序配合实现这种自动化(提到时序配合了,那最简单的做法就是在工装里加个MCU做时序控制,协调两个离线烧写器做先后的烧写配合),但是那是一般烧写器,对俺这宝贝CycloneMax来说一个就够了(哈哈,我骄傲…),通过CycloneMax官方提供的上位机配置软件恰当的添加脚本配置即可以实现这种一次按键将两个image文件以制定的间隔时间相继烧写到同一个MCU中(晕啊,有点绕口啊,琢磨透了真不容易,需要慢慢理解),具体做法如下:
1. 从P&E官网的Cyclone Max主页(上面已提到)的"FAQ, Mannuals & Downloads”页面下载Cyclone Max的软件包“Cyclone Max File Installation”,具体链接如下:
http://www.pemicro.com/downloads/download_file.cfm?download_id=290
2. 安装完之后,打开“所有程序->PEMicro->P&E Cyclone Max Programmer->Cyclone Max Image Creation Utility”,该工具即为Cyclone Max的配置工具,任何想要下载到CycloneMax里的Image文件都需要在该软件里先配置然后下载到CycloneMax里,以后就可以抛开PC机直接使用CycloneMax作为离线烧写器了,具体怎么配置待我继续往下讲(想起本山大叔那句“sorry 还没完捏”,呵呵),打开该工具后选择好相应的目标芯片型号即显示如下(这里我已飞思卡尔5v ARM Cortx-M0+ Kinetis E系列为例):
3. 如上选择好型号之后,开始一步一步的添加编程命令,第一步即双击“Programming Sequence”中的“Choose Algorithm”选择相应型号的编程算法,找到cyclonemax的安装路径下的KE02的编程算法(我的路径为D:\pemicro\cyclone_max\supportFiles_ARM\Freescale\KEx),选择相应Flash大小的arp文件(我这里选择freescale_ke02z32m4_pflash_eeprom.arp文件),然后添加我们要烧写的image文件(S19或者bin,hex格式),接下来一步步添加相应的擦写指令,具体选择如下:
4. 实际上一般情况下的只烧写一个image文件的应用场景到第3步就可以了,我们只需要点击右下角的“store Image to Cyclone”按钮即可把配置好的脚本下载到CycloneMax里,以后拿着CycloneMax就可以脱离PC机的束缚完成离线下载了(每次下载只需点击CycloneMax上的Start按键即可完成一次烧写流程)。但是为了应付我上文提到的那种复杂应用场景就需要额外在上图的编程时序列表中继续添加另一个image文件的烧写指令了,具体指令列表如下图所示(注意由于一个框里放不下所有指令,我截了两个图,实际上连续的),从中我们可以看到里面添加了两次烧写算法和两个不同的Image文件,他们中间我添加了一个delay指令即DE 5000延时5000ms即5s,这样的话这个配置文件下载到Cyclonemax里之后只要每次点击Start按键即可先烧写Image1文件然后复位运行5s之后继续烧写Image2文件最后复位运行,怎么样,相当强大吧,这样即可实现两个image文件一次触发以制定间隔时间连续烧写,非常灵活。注意:Cyclonemax实际上默认是限制在Go Run指令之后不允许添加其他指令的,但是我们可以绕开这个限制,即在第一个Reset之后直接添加DE 5000指令然后继续添加第二个image烧写指令,在最后添加两个GO Run指令并把其中一个上移到第一个Reset之后就可以了,看来终究机器是死的人的思想才是活的,呵呵。
呼,终于写完了。本来想着写简单点的,结果坑挖的有点大把自己给绕进去了,索性一下子把CycloneMax的完整使用方法也写了,毕竟以后都避免不了要到产品的量产阶段,虽然现在市场上飞思卡尔的烧写工具也比较多,但是这个Cyclonemax血脉比较正统且功能异常强大,如果可能的话还是建议使用CycloneMax了。完了,不能再说了,再说就有给Cyclonemax做广告的嫌疑了,哈哈,今天就到这了,未完待续~