lishutong 发表于 2012-4-18 22:48:02

LPC4300的硬件调试接口

本帖最后由 lishutong 于 2012-4-18 23:04 编辑

  LPC4300是NXP新推出的双ARM核芯片,包含Cortex-M4核和Cortex-M0核。相关的介绍可以见我之前写的这篇文章:第一次玩双核MCU-LPC4300。这种多核的器件在一些Cortex-A系列处理器上也有,但在这种低端的控制器场合,LPC4300则是最早出现的一个。在这篇文章中我主要介绍下该器件的硬件调试接口。  虽然该芯片内部集成两个内核,但外部调试引脚却是共用一组。在使用TKScope仿真器调试时,可选择使用JTAG/SWD模式调试。特别要注意的是:将DBGEN引脚上位至VCC,以使能器件的调试模式。  如果使用JTAG模式调试,则相应的调试信号连接如下。http://lishutong.me/wp-content/uploads/2012/04/image_thumb.png    如果使用SWD模式调试,则相应的调试信号连接如下。http://lishutong.me/wp-content/uploads/2012/04/image_thumb1.png     关于JTAG/SWD接口各信号的详细说明及连接,可以参考我之前写的这篇文章《ARM调试接口标准20Pin引脚》。  在保证调试信号连接正确后,即可以进行调试。值得注意的是,如果选择JTAG接口模式调试,则既可以调试Cortex-M4内核,也可调试Cortex-M0内核。而如果选择的是SWD接口,则仅能调试Cortex-M4内核。所以,实际应用中如果想能两个核都能调试,建议使用JTAG接口。  官方给出的手册中,给出了在JTAG模式下和SWD模式下的IDCODE。我们可以根据调试器所读得的IDCODE,判定当前要仿真的内核。http://lishutong.me/wp-content/uploads/2012/04/image_thumb2.png  目前,国内市场上的仿真器仅TKScope完善支持仿真LPC4300,不仅支持调试Cortex-M4内核,同时也支持调试Cortex-M0内核。我们的仿真器为了方便用户使用,将LPC4300器件型号分成了两种LPC43xx_Cortex_M0和LPC4300_Cortex_M4,并且尽可能的做了很多细化的工作以尽可能的方便用户使用。http://lishutong.me/wp-content/uploads/2012/04/TKScope_LPC4300_M0_thumb.jpg  而如果选用J-Link/U-Link,由于其目前支持有限,仅能支持调试Cortex-M4内核。如下图中在Keil环境中调试所示,虽然能检测到两个IDCODE,并且似乎允许用户从其中选择其中某个。但实际进入调试状态后,却发现无论选择的是Cortex-M0还是Cortex-M4,最终的调试目标依然是Cortex-M4核。http://lishutong.me/wp-content/uploads/2012/04/Jlink_LPC4300_thumb.jpg* JLink Info: TotalIRLen = 8, IRPrint = 0x0011
* JLink Info: Found Cortex-M4 r0p1, Little endian.
* JLink Info: TPIU fitted.
* JLink Info: ETM fitted.
* JLink Info:   FPUnit: 6 code (BP) slots and 2 literal slots
ROMTableAddr = 0xE00FF003
* JLink Info: TotalIRLen = 8, IRPrint = 0x0011
* JLink Info: Found Cortex-M4 r0p1, Little endian.
* JLink Info: TPIU fitted.
* JLink Info: ETM fitted.
* JLink Info:   FPUnit: 6 code (BP) slots and 2 literal slots
* JLink Info: Found Cortex-M4 r0p1, Little endian.
* JLink Info: TPIU fitted.
* JLink Info: ETM fitted.
* JLink Info:   FPUnit: 6 code (BP) slots and 2 literal slots
Target info:
------------
Device: Cortex-M0
VTarget = 2.775V
State of Pins: TCK: 1, TDI: 0, TDO: 0, TMS: 0, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints:          4
JTAG speed: 2000 kH
  如上图所示,虽然我们选择了Cortex-M0内核;但是在进入调试状态后,通过观察Cortex-M的CPUID寄存器,发现当前的内核是Cortex-M4!http://lishutong.me/wp-content/uploads/2012/04/JLINK_LPC4300_M4_thumb.jpg  而如果使用TKScope仿真器调试,则可以识别到正确的核。 http://lishutong.me/wp-content/uploads/2012/04/TKScope_LPC4300_M0_thumb1.jpg   目前,我们公司的技术支持已经做了相应的LPC4300开发板,预计很快就会向广大的工程师推出。敬请期待吧!


   原文请见:LPC4300的硬件调试接口 - http://lishutong.me/1401.html

djbgreen 发表于 2013-1-30 16:02:00

不错!值得学习,我也在用LPC4300的开发板了。Jlink和Ulink都支持

dmxfeng 发表于 2013-1-31 09:44:20

TKScope仿真器! 悲剧这价格不适合屌丝。周老板抱怨价格低没钱赚。可屌丝说这个太贵。LPC4300系列第一道门槛就把多数人挡在门外。看来这个只适合高富帅

jsszdfdn 发表于 2013-5-22 09:52:35

如果芯片厂商能提供廉价的开发方案,那会题升芯片在市场的占有率。

szszjdb 发表于 2013-10-14 00:09:44

请问李工,“如果选用J-Link/U-Link,由于其目前支持有限,仅能支持调试Cortex-M4内核。如下图中在Keil环境中调试所示,虽然能检测到两个IDCODE,并且似乎允许用户从其中选择其中某个。但实际进入调试状态后,却发现无论选择的是Cortex-M0还是Cortex-M4,最终的调试目标依然是Cortex-M4核。”
对于使用目前的KEIL4.6以上,以及经过升级的JLINK,是否依然不能调试LPC4357的M0的程序?

急,盼复!多谢!

szszjdb 发表于 2013-10-14 21:42:23

请问李工,您上文提到“如果选用J-Link/U-Link,由于其目前支持有限,仅能支持调试Cortex-M4内核。如下图中在Keil环境中调试所示,虽然能检测到两个IDCODE,并且似乎允许用户从其中选择其中某个。但实际进入调试状态后,却发现无论选择的是Cortex-M0还是Cortex-M4,最终的调试目标依然是Cortex-M4核。”
对于使用目前的KEIL4.6以上,以及经过升级的JLINK,是否依然不能调试LPC4357的M0的程序?难道M0没有别的办法调试吗?

急,盼复!多谢!
页: [1]
查看完整版本: LPC4300的硬件调试接口