NXP

浅谈飞思卡尔最新调试方式OpenSDA

2019-07-12 11:53发布

转自:http://blog.chinaaet.com/jihceng0622/p/31632 飞思卡尔最新推出的调试方式OpenSDA,我早有耳闻,估计有些时髦的博友现在都已经在尝鲜了吧,呵呵。它是作为前段时间飞思卡尔打的火热的Kinetis L系列开发平台Freedom的板载调试器一块儿推出来的,前几天还在e络盟看到这个小板子貌似仍然卖的很火来,哈哈。关于OpenSDA我最开始曾进入了一个误区,误把它当作与JTAG、SWD类似的一种新的调试接口,等最近开始深入了解研究之后才恍然,所以今儿就索性为此写篇浅谈,简单说说OpenSDA,至于具体的实际操作调试使用,改天我会再另开一篇,给大家详细介绍一下OpenSDA的使用经验,对此有兴趣的不妨期待一下,呵呵。     OpenSDA,即Open-standard Serial and Debug adapter,是飞思卡尔新近推出的创新的一种嵌入式调试工具,注意它是一种调试工具而非调试接口,不过与其他类似OSBDM、Mutilink之类的仿真器不同的是,它换了一种创新的思路,即把传统的仿真器连接PC机方式改成了更友好的方式,即以USB存储设备的方式呈现给开发者。这样OpenSDA插上电脑后就成为一个U盘,下载程序就像是往U盘里复制,当然文件类型只支持S19和bin格式,当然也可以通过更换固件(OpenSDA Application)与IDE集成,仿真调试目标芯片。下面为了更深入了解OpenSDA,先看看它的架构软硬件架构: QQ截图20130110223935     从硬件上看,OpenSDA的硬件组件很简单,采用了自带USB控制器的MK20DX128VFM5,作为USB device与PC主机通信,通过K20的SPI接口软件实现JTAG/SWD协议调试仿真Target MCU,所以到头来它仍然还是采用JTAG或者SWD接口,而不是额外增加了一种调试接口,同时类似于OSBDM,OpenSDA也支持虚拟串口通信(增加了USB CDC类的 Application)。由于自己这段时间在测试OSBDM,所以正好拿这两者做了下对比,调试速度上OpenSDA是快上不少的,操作界面上OpenSDA也相对友好许多,不过由于OpenSDA毕竟是新推出来的,目前具体都支持哪些飞思卡尔的片子我还没有看到相关信息,而从BOM硬件成本上来看,OpenSDA就简单的多了,基本K20+1*74LVC125即可搞定了,而OSBDM如果按照我自己DIY的那个版本的话需要JM60+2*74LVC125+1*74LVC04+1*74LVC1T45,K20市场价目前为¥30左右,而JM60为20¥左右,所以算下来其实价格差不多,只不过OSBDM支持飞思卡尔全系列MCU,当然这个其实没有可比性,哈哈,因为目前我只看到了在Freedom的板子上加了OpenSDA,估计等到支持其他系列的时候硬件成本和板子的复杂性也该上去了,所以此次对比纯属娱乐娱乐,嘿嘿~     从软件上看,OpenSDA包括两部分,一个是以USB存储设备枚举形式的Bootloader,一个是一套实现具体功能的Applications(注意是-s复数形式,呵呵)。Bootloader模式,以fat16文件系统格式的U盘形式存在(Windows下卷名为BOOTLOADER),里面包含了一些必要文件,以提供信息,实现Application的导入后者更新那就更简单了,类似于我们平常的拷贝文件,把相应功能的Application文件(S19、bin类型)拖到BOOTLOADER下的U盘根目录下即可,下图为OpenSDA软件构架,注意左边的Applications同时只能有一种实现: QQ截图20130111101639     左图所示有六个Applications,这里我就挑我们平时最常用的两个Application固件简单说说(什么应用最常用呢,呵呵,当然一个是下载,一个是调试了),一个是MSD Programmer,一个是P&E Open Debug,而且这两个应用固件可以从P&E官方下载到http://www.pemicro.com/opensda/index.cfm (1)MSD Flash Programmer     利用Bootloader更新该应用的话(MSD Flash Programmer),OpenSDA会类似于Bootloader一样,另外再虚拟枚举一个USB存储设备(FAT16文件系统,对KL的Freedom平台来说,虚拟的卷名为FRDM-KL25Z),其实就是相当于把目标芯片内部的Flash虚拟成U盘了(个人觉着这个想法真的很NB,实现起来真的不难,难的是想出这个Idea),而对目标芯片的flash编程就可以利用简单的把S19或者bin文件拖到该U盘下实现了,灰常简单方便啊有木有,这个应用最大的好处是淘汰了上位机编程软件,这点来看我真是有点敬佩飞思卡尔的工程师了,极大的方便了开发者。 (2)P&E Debug Application     这个是P&E开发的调试应用固件,上面的Programmer只是简单的烧写flash,而如果我们想要配合IDE集成开发环境来仿真调试的话,那就得用到这个固件了,另外该固件也附加了USB CDC类的实现,方便实现虚拟串口功能。目前该固件支持的IDE版本为Codewarrior 10.3及以上,IAR for ARM 6.40.3及以上,Keil MDK 4.54(需要下载P&E补丁)及以上,当然最新的P&E推出的一些软件肯定也是支持OpenSDA的了,哈哈,很强大啊有木有~     呵呵,本篇本来打算是“浅谈”,结果还是没有收住,啰嗦了一堆。我看目前网上关于OpenSDA的中文资料比较少,所以这次就当是普及下知识面了,个人觉着OpenSDA是以后的一个发展方向,所以现在多了解了解会有好处的,下次我会详细说说OpenSDA的使用方法,敬请期待。好了,不多说了,下次再聊,未完待续,欢迎投票,谢谢~