阿哲
发表于: 2019-3-26 16:46:35 | 显示全部楼层

正如“恩智浦i.MX RT1064-EVK开发板入门指南”一文中0所述,RT1064-EVK开发板上有一个基于LPC4322的新的调试接口。

LPC4322JET100-based-Debug-Interface.png

基于LPC4322JET100的调试接口


Freelink(又名OpenSDA、DAP-link或DAPlink)

在恩智浦的数据手册中将其命名为“Freelink Interface”,尽管开发板手册仍然使用“OpenSDA”或“DAP-link”(或DAPlink)命名。

Freelink-Interface.png

Freelink接口(来源:恩智浦i.MX RT1064原理图)


LPC4322JET100是一款带有ARM Cortex-M0协处理器的ARM Cortex-M4处理器,运行速度高达204 MHz,带512 KB闪存和104 KB SRAM。与使用K20DX128的原始OpenSDA(没有FPU的M4,以50 MHz运行)相比,这是一个功能更强大的处理器。


以下是最重要的调试电路组件和跳线的概述:

Debug-Circuit.jpg

MIMXRT1064-EVK上的调试电路


隔离跳线帽

要隔离板载电路并使用外部调试探头,必须移除跳线J47和J48。要完全断开调试电路,可以移除J49、J50和J44。 J45和J46用于调试接口和目标微控制器之间的UART连接。

Isolation-Jumpers.png

隔离跳线帽


复位

使用跳线帽J43,可以配置SW9直接将复位信号发送到目标MCU或调试电路:

Reset-Circuit.png

复位电路


DAPLink固件

默认情况下,板载调试电路显示为DAPLink CMSIS-DAP设备:

DAPLink-CMSIS-DAP.png

DAPLink CMSIS-DAP


该开发板附带以下“DAPLink”固件:

  1. # DAPLink Firmware - see https://mbed.com/daplink
  2. Unique ID: 02320000070a5e4100000000000000000000000097969905
  3. HIC ID: 97969905
  4. Auto Reset: 0
  5. Automation allowed: 0
  6. Overflow detection: 0
  7. Daplink Mode: Interface
  8. Interface Version: 0246
  9. Bootloader Version: 0244
  10. Git SHA: 475c6729c42c688ae33af3af4ea4dbbfe1c35351
  11. Local Mods: 1
  12. USB Interfaces: MSD, CDC, HID, WebUSB
  13. Bootloader CRC: 0xe493996b
  14. Interface CRC: 0x3eb53105
  15. Remount count: 0
复制代码

列出的USB MSD用于拖放编程:我可以将(.bin)文件复制到MSD设备以对MCU进行编程。对我来说功能没有实际用途:虽然这可以用作一种引导加载程序,但生产板上不会有OpenSDA电路。另外,使用调试器下载比使用那个慢速MSD接口要快得多,所以对我来说这个MSD加载器没有任何意义。


更为相关的是USB CDC接口,因为它提供了“UART转USB”连接。绝对是用作调试协议的USB HID接口(因此它不是HID键盘或鼠标,调试器使用HID协议)。


一个有趣的是WebUSB(https://en.wikipedia.org/wiki/WebUSB)。这似乎是一种通过USB安全地从网页连接到设备的方法。我找到了这个https://devanlai.github.io/webdfu/mbed-download/的示例网页,似乎用于使用带有mbed环境的电路板。听起来像是一个很好的,或者从基于Web的开发工具(无论如何对真正的开发没有意义)编程板的方法。目前Windows设备管理器中缺少这个驱动程序:

WebUSB.png

设备管理器中的WebUSB


OpenSDA固件文件

许多Freescale / NXP板上的OpenSDA的优点是我可以在调试电路中加载不同的固件:

●    默认CMSIS-DAP固件(DAP-Link)

●    P&E的固件(作为P&E Multilink)

●    SEGGER的固件(作为SEGGER J-Link)

每个固件都有自己的优势,我通常根据需要(性能、功能)切换固件。使用MCUXpresso IDE可以轻松使用任何不同的调试探针固件。


恩智浦在http://www.nxp.com/opensda上托管引导加载程序和固件文件。对于基于Kinetis K20DX128的其他DAPLink / OpenSDA,P&E(http://www.pemicro.com/opensda/)和SEGGER(https://www.segger.com/downloads ... rdSpecificFirmwares)提供固件文件,在调试电路上模拟P&E Multilink或SEGGER J-Link。


目前没有可用于DAPLink的新固件,但在将来可能会有,以下这些是加载新固件的步骤:

1.  开发板上电,按住SW09,然后用USB电缆连接到调试端口:

SW09.png

SW09

2.    开发板会在电脑端枚举为一个MAINTENANCE设备:

Maintenance-Device.png

MAINTENANCE设备


3.    将新固件文件复制到该设备。

4.    重启开发板的电源,现在应该已经加载了新的固件。


将DAPLink更改为LPC-Link2

DAPLink很好,但与LPC-Link2相比速度慢。但最重要的是,DAPLink不支持SWO(单线输出)和SWO跟踪。


好消息是,通过在J42上跳线,MCUXpresso IDE将软件加载LPC4322上的LPC-Link2固件,然后它将成为LPC-Link2:

◾    使用外部5V电源为电路板供电

◾    在J42上安装跳线帽

Jumper-on-J42-to-softload-LPC-Link2-Firmware.png

跳线到J42以软件加载LPC-Link2固件

有了这个,LPC4322运行LPC-Link2固件,我可以享受SWO和3-4倍的调试:-):

NXP-i.MX-RT1064-Debug-Circuit-as-LPC-Link2.png

恩智浦i.MX RT1064调试电路为LPC-Link2


总结

我认为基于LPC4322的新调试电路与“传统”K20 OpenSDA相比是一大进步,更适合更高性能的处理器。最大的好处是我可以加载LPC-Link2固件。 DAPLink(ARM mbed)固件很不错,但LPC-Link2固件功能更强大,非常适合与基于Eclipse的MCUXpresso IDE结合使用。

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 13 | 回复: 15



手机版|

GMT+8, 2024-3-29 22:22 , Processed in 0.120321 second(s), 8 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表