打印
[Kinetis]

自制OSBDM-JM60调试HCS12、DSC、PowerPC及Kinetis

[复制链接]
2240|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fhguo1990|  楼主 | 2015-4-21 20:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

继上篇《自制OSBDM-JM60 Bootloader烧写及固件更新》之后,这次继续爆发猛料,回应在上篇的承诺,继续把自制的OSBDM的开源资料分享出来。作为姊妹篇,本篇的主要内容就是详细介绍了OSBDM调试具体芯片的使用步骤同时也适时的分享期间自己总结的一些经验(本来想着挺简单的,但是我在实际测试的过程中还是遇到了不少麻烦的,有些已经完美解决,但是有些还是没有完全解决),内容也是比较多,但是保证全是实料,呵呵~(附件为本文所需固件)

    其实本篇内容我也是刚刚编写完毕,并已经发布一个完整版本v1.1交给师弟们做测试了,所以这里晒出来的肯定有不足和失误之处,希望广大博友批评指正,毕竟还是群众的眼光是雪亮雪亮的,呵呵。同时部分内容参考了飞思卡尔社区的Bluehacher老师的开源项目,这里表示感谢,还有就是老话,本篇内容首发于ChinaAET,转载请注明出处及原作者信息jicheng0622,您的支持是我的动力,谢谢,哈哈,如果觉着此篇**对你有所帮助欢迎投票,感谢!下面进入正题:

图1 OSBDM v1.0仿真调试器

功能介绍

(1) 本BDM仿真调试器通过USB 5.0V 500mA供电,可实现在线下载,调试和仿真,观察全部寄存器和全局变量的数值;

(2)开发环境,支持Classic Codewarrior和最新的Eclipse Codewarrior,另外也支持第三方的IDE开发环境,例如IAR For ARM、Keil MDK等;

(3) 使用环境,Windows XP(Win7没有测试验证),USB2.0;

(4) 可选给目标板供电,通过跳线P3选择VTRG(目标板供电电源)是5v还是3.3v,两者都不选则需要目标板自供电;

(5) 支持虚拟串口,如P4接口;

(6)支持的芯片:

     Freescale HCS12/HCS12(X)/HCS08(已测试MC9S12DG128、MC9S08JM60)

     Freescale Coldfire V1,V2,V3,V4(已测试MCF52259)

     Freescale DSC全系列(已测试MC56F8366)

     Freescale PowerPC架构的Qorivva系列(已测试MPC5604B)

     Freescale Cortex-M4核的Kinetis系列(已测试K10、K60)

OSBDM-JM60仿真调试器的接口及指示灯说明

(1)P1ICP接口,此接口用来烧写板载JM60芯片的BDM接口,由四根接口线

组成,分别为Rst、BKGD、5v和GND;

(2)P2Boot模式选择,即Bootloader模式的使能,断电的情况下用跳线帽短接

此接口,然后再上电,则JM60进入Bootloader模式,可以更新固件等操作;

(3)P3:目标板供电电源选择,VTRG为目标板供电电源,可以通过跳线帽选择

为目标板供电3.3v或者5v,也可以不选,则目标板需要自供电;

(4)P4:虚拟串口,此OSBDM版本在实现BDM调试的功能基础上也实现了USB

转串口的功能,用来与目标板串行通信;

(5)P5DSC/Qorivva JTAG调试接口,支持飞思卡尔DSC全系列及飞思卡尔PowerPC架构的Qorivva系列,目前已经在CW8.3环境下测试通过DSC系列的MC56F8366,在CW2.7环境下测试通过Qorivva系列的MPC5604B;

(6)P6Kinetis JTAG调试接口,此接口为标准的ARM 10pin JTAG接口,目前已经在CW10.2和IAR6.4环境下测试通过K10和K60系列;

(7)P7Coldfire v2,v3,v4 JTAG调试接口,此接口为coldfire标准10pin JTAG接口,目前已经在CW7.2测试通过;

(8)状态指示灯:TPWR和USB_ACT。当调试器通过USB连接到PC机上时,USB_ACT灯会处于常“亮”状态,指示调试器正常工作。如果目标板没有连接到调试器,TPWR是处于“灭”的状态,当目标板连到调试器上,并且目标板上电,这时调试器检测到目标板上电,TPWR会“亮”,当然如果我们短接P3任意一个,则TPWR也会“亮”,指示目标板供电电源打开。

OSBDM-JM60调试仿真说明

1、 OSBDM-JM60调试器对HCS12的使用说明

对HCS12的仿真测试是我们在MC9S12DG128B的片子上做的,使用的开发环境为Codewarrior 5.1,该开发环境请到飞思卡尔官方网站上去下载(注意一定去官方下载最新版本的5.1,因为5.1旧版本和5.0及以下版本不支持该OSDBM)。下面我们就以MC9S12DG128在CW5.1环境下的调试为例说说OSBDM-JM60的使用步骤(假设此时已经插入OSBDM并将P8接口与9S12板子上的BDM接口连接好,注意9S12的供电电压为5v,可以短接P35v给目标板供电):

1) 首先需要给OSBDM更新HCS12系列的固件,该固件为本文档所在目下的OSBDM-JM60 Firmwares\s12文件夹下的osbdm-jm60_s12_build27_rev0.s19文件,具体更新方法见《OSBDM固件更新说明.doc》;

2)启动CodeWarrior V5.1,新建一个工程或者打开一个已有的Demo例程,在左面的工程管理框下,选择调试方式为下图红圈标识的“P&E USB BDM Multilink”方式(注意,必须选择此方式,本OSBDM-JM6版本不支持TBDML调试方式),如下图:

3)点击绿色调试按钮,进入下载界面,会弹出“下载警告”窗口,不用管它,勾选框选中(下次就不弹出了),然后点击“OK”即可;

4)下载完毕,进入调试界面如下图,然后就与TBDML调试方法一致了,尽情享受OSBDM-JM60带给你的调试乐趣吧,呵呵。

2、 OSBDM-JM60调试器对DSC的使用说明

对DSC的仿真测试是我们在MC56F8366的片子上做的,使用的开发环境为Codewarrior 8.3,该开发环境请到飞思卡尔官方网站上去下载。下面我们就以MC56F8366在CW8.3环境下的调试为例说说OSBDM-JM60的使用步骤(假设此时已经插入OSBDM并将P5接口与DSC板子的JTAG接口连接好,注意DSC的供电电压为3.3v,短接P33.3v跳线可以给目标板供电):

1)首先需要给OSBDM更新DSC系列的固件,该固件为本文档所在目下的OSBDM-JM60 Firmwares\dsc文件夹下的osbdm-jm60_dsc.abs.s19文件,具体更新方法见《OSBDM固件更新说明.doc》;

2)将本文档所在目录下的路径为Codewarrior GDI\Classic-CW里面的osbdm-jm60_gdi_dsc.dll文件拷贝到CodeWarrior V8.3安装目录下(例如:D:\Program Files\Freescale\CodeWarrior for DSC56800E v8.3),如下图所示

3)启动CodeWarrior V8.3,新建一个工程或者打开一个已有的Demo例程,如下图所示

在工程界面的左上方(红色椭圆)列表中选择“INTERNAL_Memory模式”,这样的设置可以进入到下面讲的调试界面进行程序调试了。

4)选择菜单栏下的Edit->Preferences,打开如下窗口

点击“Remote Connec…”然后选中“56800E Local FSL OSBDM…”,再单击“Change”,弹出窗口

点击“Browse”,在打开的窗口下找到第一步拷贝到CW8.3安装目录下的osbdm-jm60_gdi_dsc.dll文件,选择该文件,点击“打开”,然后“OK”就可以了。

5)单击下图所示红圈的图标

弹出如下窗口,选中“RomateDebugging“,在Connection项的列表中选择“56800E Local FSL OSBDM Connection”,单击“OK”即可。

6)到此步为止,需要设置的就已经设置完毕,点击调试绿色的按钮,开始下载程序,出现下载进度窗口,之后就进入到调试窗口,可以进行全速运行、单步调试等操作了。

不过需要注意OSBDM调试的速度很慢,需要耐性等待哦,呵呵。当然这时程序已经下载到片子里面了,点击“停止调试”按钮,退出调试窗口,然后掉电,拔掉BDM连接线,重新给DSC板子上电即可运行最新的程序了。


相关帖子

沙发
fhguo1990|  楼主 | 2015-4-21 20:36 | 只看该作者

3、 OSBDM-JM60调试器对Qorivva的使用说明

对Qorivva系列的仿真测试是我们在MPC5604B_M27V的片子上做的,使用的开发环境为Codewarrior 2.10,该开发环境请到飞思卡尔官方网站上去下载。下面我们就以MPC5604B在CW2.10环境下的调试为例说说OSBDM-JM60的使用步骤(假设此时已经插入OSBDM并将P5接口与MPC5604板子上的JTAG接口连接好,注意Qorivva系列的供电电压为5v,可以短接P35v给目标板供电):

1)首先需要给OSBDM更新Qorivva系列的固件,该固件为本文档所在目录的OSBDM-JM60 Firmwares\eppc文件夹下的osbdmens_eppc.3007文件(千万别下错),具体更新方法见《OSBDM固件更新说明.doc》;

2)然后打开Codewarrior 2.10 IDE,新建或者打开已有的MPC5604BM27V的工程,选择“internal FLASH”调试方式;

4),然后点击绿色调试按钮,开始调试,第一次会弹出如下图所示的PEMICRO连接窗口,可以看到已检测到第一个红色圈内的”Embedded OSBDM Device”,然后点击“Connect”;

5)之后系统就会自动连接目标板,然后启动Erase和Program进度,耐心等待下载完毕即可;

至此OSBDM-JM60调试仿真Qorivva系列的过程结束,之后关闭上图调试窗口,重新给目标板上电,程序即可运行。

4、 OSBDM-JM60调试器对Kinetis的使用说明

对Kientis家族的仿真测试是我们在MK60N512的片子上做的,使用的开发环境为IAR 6.3及以上,该开发环境请到IAR官网上去下载(IAR6.3的**过程可以参考我的博客http://blog.chinaaet.com/detail/25933.html)。下面我们就以MK60N512在IAR 6.3环境下的调试为例说说OSBDM-JM60的使用步骤(假设此时已经插入OSBDM并连接到K60的板子上,注意K60系列的供电电压为3.3v,可以短接P33.3v给目标板供电):

1)首先需要给OSBDM更新Kinetis系列的固件,该固件为本文档所在目录的OSBDM-JM60 Firmwares\Kinetis文件夹下的osbdm-jm60_kinetis.abs.s19文件,具体更新方法见《OSBDM固件更新说明.doc》;

2)新建或者打开已有的K60工程,右键工程名进入Option选项设置,如下图;

3)在Option里面,进入Debugger选项卡,在Setup窗口设置调试方式为PEmicro,如下图;

4)再进入到Download选项,勾选上“Verify download”和“Use flash loader”,如下图

5)然后点击左面选项卡“PE micro”选项,进入到Setup窗口,选择PE micro调试工具中的“OSJTAG”工具,如下图,然后点击“OK”确认即可;

6)如上设置完毕之后,编译工程通过,单击绿色调试按钮,即可进入到下载调试窗口,然后就可进行相关调试工作。


使用特权

评论回复
板凳
fhguo1990|  楼主 | 2015-4-21 20:37 | 只看该作者

附件为本文档所需的固件,其他的东西就不传了

http://files.chinaaet.com/files/blog/2013/01/22/OSBDM-JM60 Firmwares.rar


使用特权

评论回复
地板
我思故我在12345| | 2015-4-21 20:37 | 只看该作者
真好,正是需要的东西,太强大了……

使用特权

评论回复
5
我思故我在12345| | 2015-4-21 20:38 | 只看该作者
研究下win7下怎么用吧,我让win7系统搞的头大

使用特权

评论回复
6
598330983| | 2015-4-21 20:41 | 只看该作者
真给力啊,如果觉着此篇**对你有所帮助欢迎投票,我投票。

使用特权

评论回复
7
我是MT| | 2015-4-21 20:41 | 只看该作者
想问楼主一个问题:关于kinetis系列的芯片,能否设置永久关闭JTAG接口。我现在打算芯片第一次用JTAG下载boot loader,然后彻底关闭JTAG,以后更新程序都通过串口或者usb等下载。楼主能否给个思路?

使用特权

评论回复
8
fhguo1990|  楼主 | 2015-4-21 20:42 | 只看该作者
我是MT 发表于 2015-4-21 20:41
想问楼主一个问题:关于kinetis系列的芯片,能否设置永久关闭JTAG接口。我现在打算芯片第一次用JTAG下载boo ...

能说清楚你关闭的意图呢,是省管脚资源还是节省功耗之类的,你不用就是了~

使用特权

评论回复
9
我是MT| | 2015-4-21 20:42 | 只看该作者
fhguo1990 发表于 2015-4-21 20:42
能说清楚你关闭的意图呢,是省管脚资源还是节省功耗之类的,你不用就是了~ ...

管脚少复用可以的,节省功耗默认不开时钟就可以了,我想的是以后禁止别人用jtag。现在jtag在管脚复用的default位,我哦想以后都单做io口来用,即使调试器连接了jtag也没用。

使用特权

评论回复
10
fhguo1990|  楼主 | 2015-4-21 20:43 | 只看该作者
我是MT 发表于 2015-4-21 20:42
管脚少复用可以的,节省功耗默认不开时钟就可以了,我想的是以后禁止别人用jtag。现在jtag在管脚复用的de ...

哦,了解了,这的确是个问题,貌似MCU上电复位是首先检查JTAG接口有无信号的,如果有就直接进入JTAG模式了,这个是硬件上就决定了,不好办啊,目前没啥主意,你有注意了记得留言跟我说下

使用特权

评论回复
11
我是MT| | 2015-4-21 20:43 | 只看该作者
fhguo1990 发表于 2015-4-21 20:43
哦,了解了,这的确是个问题,貌似MCU上电复位是首先检查JTAG接口有无信号的,如果有就直接进入JTAG模式 ...

据说可以把管脚复用成GPIO,复用的初始化程序放在一次编程的FLASH片段,这样就没法更改了。这是技术支持说的,具体怎么实现我还没试过。
如果不是一次编程FLASH模块,可能别人把时钟频率变低后,可能可以在设置寄存器为GPIO模式前就被强制进入JTAG模式了,因为管脚默认是JTAG功能。就像你说的这样。
现在米有开发板了,比较悲催。

使用特权

评论回复
12
598330983| | 2015-4-21 21:02 | 只看该作者
本BDM仿真调试器通过USB 5.0V 500mA供电,可实现在线下载,调试和仿真,观察全部寄存器和全局变量的数值

使用特权

评论回复
13
coslight| | 2015-4-22 08:43 | 只看该作者
确实不错的资料,顶楼主

使用特权

评论回复
14
FSL_TICS_ZJJ| | 2015-4-27 13:35 | 只看该作者
非常感谢你关于kinetis的经验分享!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

254

帖子

2

粉丝