jicheng0622

【技术分享】【原创猛料】自制OSBDM-JM60 Bootloader烧写及固件更新详解

0
阅读(8917) 评论(15)

    前几日看到AET的留言,探讨关于开展OSBDM DIY活动,虽然我也有意带着大家一块儿动手过过DIY的瘾,不过考虑种种还是让我打消了此计划,毕竟自己马上面临毕业论文的烦心事,估计到时候很难抽出足够的时间来支持此活动,所以想想还是算了。不过为了弥补这个遗憾,这里就把刚刚给学校实验室写好的OSBDM-JM60的相关使用说明分享出来,该教程主要分为两部分,一个是OSBDM Bootloader的烧写及固件更新说明,另一个则是OSBDM调试HCS12/08、DSC、PowerPC、Codefire及Kinetis的详细步骤,每篇内容都不少。所以受篇幅所限,本篇就先单拿出其中一个给大家尝尝鲜(真是新鲜出炉,自己刚写完没多久,哈哈),希望能给那些打算自制OSBDM或者已经做好了OSBDM的博友们一点帮助,博客附件为本篇内容所需的相关文件,可以下载。好了,内容较多就不啰嗦了,“上菜了”,呵呵,当然觉着本篇内容对你有所帮助投个票我也不介意哦,哈哈~(还是老话,本篇博客首发于ChinaAET,转载请署名原作者jicheng0622信息及本篇内容出处,谢谢)

    OSBDM-JM60使用的是飞思卡尔HCS08系列8位MCU—MC9S08JM60单片机,JM60能够使用Bootloader通过USB对自身的flash memory进行ICP(In-Circuit Pogramming ,在线编程),Bootloader就是相当于一个“flash编程器”,只不过这个“编程器”是在芯片本身内部,目前这种Bootloader方式在很多产品上都广泛采用,对一些设备进行远程维护升级都可以采用此种方式。对OSBDM来说,仿真调试不同系列的片子需要更新不同的固件,不过Bootloader只需要最开始下载一次即可(需要另外的BDM调试器对板载JM60单独下载),之后的固件更新就可以通过OSBDM的USB接口直接与PC机进行,当然PC机需要安装P&E公司的P&E firmware updater上位机软件。下面分两个步骤分别介绍Bootloader的烧写和通过上位机对固件的更新:

一、 Bootloader的烧写

JM60版的OSBDM在使用之前都需要额外的用支持HCS08系列的BDM仿真器对其进行ICP编程一次,把Bootloader代码烧进去,只需要在最开始烧进去一次即可。但是,其实最新版的OSBDM资料中,官方并没有单独给出Bootloader烧写文件,而是直接在每个系列的固件之中加上了Bootloader代码部分,所以我们只需要在最开始随便烧写某个系列的固件到新的JM60片子里即可,这样JM60的Boot区里就被烧进去了Bootloader,所以之后的固件更新就可以直接通过OSBDM的USB接口进行了。

clip_image002

1

如图1所示为OSBDM 1.0版本的实物图(由于1.0版本在HCS12系列上有硬件错误,所以图上U6芯片没有焊接,不能调试HCS12/08系列,不过1.1版本没有这个问题了)。我们第一次烧写固件就需要用到上图所示的ICP接口,至于BDM烧写工具我们采用一种比较笨但是比较传统的方法,即用 “老的”OSBDM给新的OSBDM上的JM60烧写固件(可能有点绕,仔细理解这句话,“老的”就是已经下载好HCS08固件的已经可以用的OSBDM,呵呵),具体步骤如下:

(1)按照图1所示的ICP接口定义,对应的把“老的”BDM的接口与待烧写的OSBDM上的ICP接口用线连接好,只需要引出Reset、BKGND、VCC和GND四根线即可;

(2)先后给“老的”BDM和待烧写的OSBDM上电(如果“老的”BDM支持给目标板供电的话,那待烧写OSBDM可以不上电),然后打开附件中“JM60-ProgTools”文件夹,找到hiwave.exe文件并双击打开,如下图2;

clip_image003

图2

(3)点击菜单栏HCS08 FSL Open Source BDM->load(如果load为灰色不可用,可以先点reset之后就可以了),弹出图3窗口,选择s19文件固件,我们这里以Kinetis固件为例(选择哪一个都可以,里面包含了bootloader,所以之后就可以自己更新了),选择路径OSBDM-JM60_Firmwares\kinetis下的kinetis固件osbdm-jm60_kinetis.abs,窗口下面的“Run after successful load”可以选上,然后点击“打开”即可把固件下载到新的OSBDM板子上的JM60里面去了。

clip_image004

至此,JM60的固件附带Bootloader烧写完毕,掉电,拔掉之前的BDM连接线,然后把新的刚烧写成功的OSBDM插到电脑上,我们可以看到板子上的USB_ACT小灯亮起(如果P3跳线VTRG没有选择5v或者3.3v则Tartget_PWR不亮),电脑响起USB设备插入的声音,安装OSBDM驱动(驱动安装请参考另一篇OSBDM使用手册教程),然后因为我们第一次下的是Kinetis固件,所以可以直接用它来调试Kinetis了。

二、 固件的更新

(1) P&E firmware_updater的安装:

固件更新首先需要安装上位机软件,我们这里选用P&E的firmware updater软件(网上有使用JM60 GUI的,不过我下下来试用了下,连接不上,不知道什么原因,有兴趣的同学可以试试看),软件安装文件为附件中的firmware_updater_install.exe,双击安装,一路默认,按照提示安装完毕。

(2) OSBDM bootloader驱动的安装:

OSBDM在Bootloader模式下需要另外安装驱动,我们短接上图1所示的Boot模式跳线,然后将OSBDM插到电脑上,严格按照该顺序,这时OSBDM进入Bootloader模式(注意上电时不插Boot跳线则跳入正常用户模式,另外在Bootloader模式下,板子上的两个小灯均不会亮),右下角弹出检测到OSBDM Bootloader Port设备,然后弹出安装驱动窗口1,选择“从列表或指定位置安装”,点击“下一步”,在弹出窗口2出选择路径,为本文档所在目录下的JM60_Bootloader_Drivers文件夹即可,然后再次点击“下一步”,直到安装成功,至此OSBDM的Bootloader模式下的驱动也已经安装完毕。

clip_image001

clip_image002

clip_image003[5]

clip_image004[5]

clip_image005

(3) 运行Firmware updater

拔掉P3 Boot模式跳线,再次上电,此时OSBDM进入正常用户模式。然后打开第一步已经安装好的P&E Firmware Updater Utility软件,如下图:

clip_image007

在下拉列表中选择OSBDM/OSJTAG选项,然后等待软件检测挂载到电脑的OSBDM设备,如下图,检测到一个含有Kinetis固件的OSBDM(我们第一次下载Bootloader时就是下的此固件,可以看到被该软件准确识别到):

clip_image009

这里我们选择自定义的固件,点击“select”按钮,进入到附件中OSBDM-JM60_Firmwares文件夹,可以看到里面包含了飞思卡尔全系列的固件,前面也提到了,OSBDM只能同时刷一种类型的固件,所以可以根据我们自己的需要选择,这里我们选择s08系列的固件,进入到s08文件夹,选择osbdm-jm60_s08.abs.s19文件,然后点击“Update Firmware”按钮,开始更新固件,此时弹出窗口,要求需要进入到Bootloader模式下:

clip_image011

这时先不要点击“OK”,先按照提示拔掉USB线,短接P3 Boot模式的跳线,然后再插上USB线,最后点击“OK”确认,就可以看到JM60在自行刷固件:

clip_image013

等待更新固件完毕,最后会再次弹出窗口,要求进入到正常用户模式下,此时仍然老套路,先不要点击“OK”,拔掉USB线,再拔掉P3 Boot模式的跳线,然后再上电,点击“OK”确认,即可弹出更新固件成功的界面,如下图,可以看到已经刷好了s08的固件。

clip_image015

    未完待续~

    附件有点太大了,实在是传不上去,可以到我的Sourceforge账户的网盘中下载,http://sourceforge.net/projects/osbdmjm60/files/OSBDM%20Bootloader_______.rar/download

  1. 多谢!!!千言万语表达不了我的感谢之情,来烟台玩的话,请你吃地道的海鲜大餐。我的QQ840978574,电话15165715328

  2. ***此内容已被管理员屏蔽***

  3. 正需要,收了……
  4. 好东西啊,顶一个……
  5. 赞~

  6. @runley
    呃...
  7. 我擦 正是需要哒。。。
  8. @goldmorning
    好的啊,呵呵
  9. 论文写完了也带着我DIY吧。
  10. @garfield

    嗯,我也发现了,新版本的也是,调DSC的时候实在是太慢了,都不忍心看啊,呵呵,只能把它当成下载器了~

    PS:新版本问题挺多的,不同版本之间的固件不兼容

  11. @jicheng0622
    我用过一个老版本的,调s08,s12,coldfire都挺好,就是调dsc太慢
  12. @garfield
    嗯,是的,这点挺麻烦的,不过好处是比USBDM支持的系列全,支持DSC全系列和Qorivva系列~
  13. 这个是不是要根据目标cpu更换固件?我记得没有全系列的固件
  14. @木易
    呵呵,好的~
  15. 那就论文写完了,带我们一起DIY