OpenSDA调试器技术资料与设计图纸

Blazar首页    OpenSDA调试器技术资料与设计图纸

【OpenSDA调试器】

OpenSDA是一款开源的ARM串行调试器,它主要用在NXP官方的开发板上,提供一个板载的调试和编程接口(例如Kinetis的各种官方开发板上都是它),但也可制作为单独的调试器使用。

OpenSDA是独立的开源项目,但Blazar基于OpenSDA的开源电路,设计Layout了自己的调试器(仅局部优化了一些设计),在固件和驱动等层面则完全兼容原始OpenSDA,用于为Blazar提供廉价的调试方案。

【OpenSDA的构架】

OpenSDA的方便之处在于,它是一个开放的Bootloader+Application结构,可以下载不同的应用固件,被配置为不同的调试器来使用,包括J-Link、CMSIS-DAP、P&E、USBDM等。

OpenSDA构架

如图所示,OpenSDA自身的开源项目( CMSIS-DAP )包括了电路原理图、一个Bootloader(蓝色),在其基础上,加载不同的应用固件(Application),就可以当不同的经典编程器啦。

当然,在ARM、NXP等芯片供应商的努力下,可以选择的经典编程器也不止一种,有的开源、有的不开源但免费,参见下表,选自己喜欢的吧。。。(在下载链接里,可以从各个调试器官方主页下载到bin格式的固件,还可以下载到对应的调试器驱动和开发工具补丁)

Bootloader

调试APP

支持的开发工具

备注

固件和驱动下载地址

KEIL

IAR

CW

KDS

OpenSDAv2

OpenSDA-CMSIS-DAP

X

开放源码

https://github.com/mbedmicro/CMSIS-DAP

Jlink

无源码,非商用

https://www.segger.com/opensda.html

P&E

无源码,非商用?

http://www.pemicro.com/opensda/

USBDM

X

X

开放源码

http://usbdm.sourceforge.net/

【如何更新OpenSDA的固件】

OpenSDA的Bootloader是需要用编程器烧写进去的(显然,这是个鸡和蛋的问题:-)。

而一般已有Bootloader的OpenSDA编程器,更新应用固件是很容易的。比如,从J-Link刷成P&E,或者反之。

按住OpenSDA编程器的Reset按键,插入USB线。此时OpenSDA会擦掉自己的应用固件,进入Bootloader,表现为在Windows里会认出一个U盘。

将下载的编程器应用固件,比如J-Link的"OpenSDA_V2_1.bin"拷贝/拖动到这个U盘里,它就会自动烧写更新,完成后小灯快速闪烁。

重新插拔USB,可以看到已经被识别为新下载的编程器设备了(比如J-Link)。

【OpenSDA调试器设计资料】

OpenSDA是独立的开源项目,但Blazar基于OpenSDA的开源电路,设计Layout了自己的调试器(仅局部优化了一些设计),在固件和驱动等层面则完全兼容原始OpenSDA,用于为Blazar提供廉价的调试方案。

设计图纸下载链接:

   · 原理图(PDF)

   · 原理图与PCB版图(Altium)

※ Blazar里的OpenSDA调试器由清华大学薛涛老师和他的学生们完成,使用和修改,免费使用请遵循Blazar的Lincense

 

 

【OpenSDA的版本】

稍微Tricky的问题是,OpenSDA有若干个版本,如下表:

版本 引导加载程序 默认调试接口 闪存编程 虚拟串行端口 提供源代码
OpenSDAv1 P&E Micro P&E Micro .sda/.s19/.srec 无,专有
OpenSDAv2 Arm/mbed CMSIS-DAP .bin 有,开源
OpenSDAv2.1 Arm/mbed CMSIS-DAP .bin 有,开源
OpenSDAv2.2 mbed DAPLink DAPLink .bin, .hex 有,开源

其中,OpenSDAv1是不开源的,所以忽略。

OpenSDAv2是开源的第一版,Bootloader加载程序从0x5000开始,但随后发现留给调试器固件的空间较小。

OpenSDAv2.1,Bootloader加载程序改进为从0x8000开始。

所以的所以,Bootloader的v2和v2.1,调试器固件是不通用的。比如,比如J-Link固件,从https://www.segger.com/downloads/jlink#JLinkOpenSDAGenericFirmwares 下载,就能看到v2和v2.1不同的对应文件。

※ 历史上,Blazar-β板,里面的出厂bootloader是OpenSDAv2。而自制新的OpenSDA调试器,建议使用OpenSDAv2.1固件。

 

【其它有用的参考链接】

NXP官方OpenSDA页面(英文)

NXP官方OpenSDA页面(中文)

NXP技术文档OpenSDA页面

 

 

浏览量:0

Blazar !

Blazar:针对ARM Cortex M内核嵌入式系统教学和科技活动的
开源硬件(Open Hardware)与大规模在线开放课程(MOOC)。

Fun creates enthusiasm and energy :)

 

 

·