大白菜园 https://bbs.21ic.com/?787411 [收藏] [复制] [RSS]

日志

TKScope多核调试LPC4300系列操作指南

已有 805 次阅读2012-9-23 02:55 |个人分类:仿真器|系统分类:ARM| LPC4300, Cortex-M4, TKScope


多核时代已经来临,您准备好了吗?

TKScope为您提供全面的调试支持

1. 多核调试带来的挑战

今天您可能还未尝试过多核开发,但很快您就会涉足这一领域。近年来,电子技术、半导体技术已经取得突飞猛进的发展,多核架构也已逐渐从高端服务器走向个人PC,并且在嵌入式领域崭露头角。由于多核系统能达到单核系统同等性能,并且前者主频更低、高集成化、占用较小空间特点使得其能够提供更多的功能。越来越多的半导体厂商开始设计多核芯片,开发人员也已经尝试在其产品中应用多核系统。

2010年11月1日,恩智浦半导体(NXP)宣布推出LPC4300系列微控制器,该系列产品是全球首次采用ARM Cortex-M4和Cortex-M0双核架构的非对称数字信号控制器。

对于LPC4300系列这种片上多核系统,开发人员不得不面对多核系统所特有的“资源分配与抢占”、“并行运行”、“多核同时调试”的问题。这些问题都使得问题的查找变得复杂和不易重现。此时开发人员无法再采用传统的手段进行单一内核的调试,而是希望能够同时调试各个内核,独立地控制每个内核的运行状态,观察各内核的运行状态。

传统仿真器已经很难给用户提供完整的调试支持。并且由于LPC4300系列芯片仅提供一组外部调试接口,无法同时使用多台仿真器分别调试各内核,使得同时进行多核调试成为不可能。而TKScope则已经率先突破此种障碍,用户可同时将多个IDE连接到一台仿真器分别调试LPC4300系列的Cortex-M4和Cortex-M0内核

image

图1.1  仿真器连接示意图

1.1 LPC4300系列双核调试难点

LPC4300系列数字信号控制器(DSC)是NXP发布的业界首个带有Cortex-M0协处理器的双核非对称架构DSC。该系列采用独特的非对称双核架构,内置双ARM核:Cortex-M4内核用于实时处理,Cortex-M0内核用于实时控制,两个内核均可在204MHz下运行。由于门数极少的Cortex-M0内核能分担大量的控制与I/O处理任务,减少Cortex-M4处理器的带宽占用,从而使Cortex-M4可以全力以赴地处理数字信号控制应用中的数字计算。LPC4300系列将成为各类应用的理想之选,包括嵌入式音频、高端马达控制、工业自动化、POS机、医疗器械及汽车配件等。

在芯片内部,Cortex-M4和Cortex-M0共享片上Flash、RAM和外设资源。外部引脚仅提供了一组JTAG/SWD调试接口为两个内核共享,即仅允许外接一台仿真器。传统的仿真器仅仅能支持一次调试一个内核,无法同时调试另一内核

1.2 传统仿真器对LPC4300系列的支持

在使用传统仿真器调试LPC4300系列时,每次只能打开一个IDE环境并连接到仿真器。例如要单独仿真Cortex-M0内核,需要在仿真器的JTAG扫描链配置中根据Cortex-M0核的IDCODE选择M0核,然后保存进行调试。该项配置在某传统仿真器的配置如图1.2所示。

image

图1.2  某传统仿真器仿真LPC4300系列的Cortex-M0核

而如果要仿真Cortex-M4内核,必须退出调试、重新配置JTAG扫描链,根据Cortex-M4核的IDCODE选择M4核,再次进入调试状态。该项配置在某传统仿真器的配置如图1.3所示。

image

图1.3  某传统仿真器仿真LPC4300系列的Cortex-M4核

可以看到,使用传统仿真器进行调试最大的问题是:无法同时调试Cortex-M4和Cortex-M0内核。而实际系统运行时必定是两个内核同时运行,如果运行中出现问题,采用此种调试模式是非常难以复现和查出问题。

1.3 TKScope对LPC4300系列的支持

既然LPC4300系列外部只提供了一组JTAG/SWD调试接口,如果要实现双内核的同时调试,必须采用支持至两个IDE同时连接至一台仿真器,并且支持分别选择JTAG链上多个器件中某个内核进行仿真。TKScope支持这种双核系统调试,不仅支持单独调试LPC4300系列的Cortex-M4和Cortex-M0;也支持在两个IDE环境中同时连接同一台仿真器分别调试Cortex-M4和Cortex-M0,使得用户具有相对于使用传统仿真器时更好的调试手段

另外,TKScope广泛支持主流IDE环境,使得用户可以在诸如TKStudio、Keil、IAR、Eclipse、RVDS等环境中进行LPC4300系列双核系统的开发

image image

图1.4  在Keil和TKStudio下同时调试Cortex-M4和Cortex-M0

2. TKScope仿真LPC4300系列操作指南

本小节详细介绍如何使用一台TKScope系列的AK100Pro仿真器调试LPC4350的Cortex-M4和Cortex-M0内核。注意,为方便起见,下文按小节分别介绍如何调试Cortex-M4和Cortex-M0内核。TKScope用户完全可以打开两个IDE,同时进行各内核的调试

2.1 仿真Cortex-M4内核

2.1.1 硬件选择

打开【硬件选择】,如图2.1所示。在右上角的器件过滤窗口中输入LPC4350,系统会自动找到芯片,选择LPC4350_Cortex_M4下相应的仿真器型号AK100Pro即可。

image

图2.1  TKScope硬件选择

2.1.2 附加设置

在【附加设置】中,选择使用JTAG接口进行仿真,如图2.2所示。

image

图2.2  附加设置

2.1.3 TAP设置

点击仿真器设置界面的【TAP设置】,仿真器会自动检测出芯片的内核及其IDCODE,如图2.3所示。TKScope仿真器读出两个内核,Cortex-M4和Cortex-M0,选择Cortex-M4内核。

image

图2.3  TAP设置

2.1.4 程序烧写

由于LPC4350_Cortex_M4内核没有片内Flash,要将程序烧写到SST39VF1601上,需要手动添加SST39VF1601的编程算法。

打开【程序烧写】界面,如图2.4所示。点击【添加算法】按钮,添加算法文件:TKScope安装目录\configuration\SST\SST39VF160x_16BIT_x1.FLM。

image

图2.4  程序烧写1

添加SST39VF160x_16BIT_x1.FLM算法文件后,要修改编程算法的起始地址,不同目标板上的NorFlash起始地址不完全相同。本文使用的开发板上SST39VF1601器件挂接在EMC的Bank0处,即器件的起始地址为0x1C000000。相应的配置如图2.5所示。

image

图2.5  程序烧写2

2.1.5 初始化宏配置

在添加完算法文件事,需要添加外部初始化宏文件,该文件初始化打开EMC总线,为Flash烧写创造必要的环境。点击   按钮,打开【初始化宏】配置界面,添加文件:..\TKScope安装目录\configuration\NXP\LPC4300_ExtFlash_0.ini。

image

图2.6  Cortex-M4初始化宏配置1

由于当前是在片外Flash中调试,而实际的硬件电路可能未配置LPC4300系列的Cortex-M4内核从片外Flash启动。所以需要设置进入调试状态后的复位矢量,以告知仿真器主动调整正确的PC值和SP值;同时需要设置内核的VTOR寄存器(地址:0xE000ED08),以重映射中断向量表。具体中断向量表的位置取值取决于实际的工程配置,当前工程配置的地址为0x1C000000起始处。配置如图2.7所示。

image

图2.7  Cortex-M4初始化宏配置2

2.1.6 硬件自检

最后执行【硬件自检】,检查仿真器与硬件电路是否正常连接。如果确信硬件连接正常,则此步可跳过。TKScope仿真器在硬件自检的时候,会根据用户选择的芯片的RAM区域进行检查;当目标板上有外扩RAM时,TKScope也可以检查该RAM是否正常工作。

image

图2.8  硬件自检

2.1.7 仿真调试

在完成前面的配置后,即可在IDE环境下仿真和调试。在Keil环境下的仿真效果界面如图2.9所示。

image

图2.9  Cortex-M4内核调试效果

2.2 仿真Cortex-M0内核

2.2.1 硬件选择

打开【硬件选择】,如图2.10所示。在右上角的器件过滤窗口中输入LPC4350,左边系统会自动找到该芯片型号,选择LPC4350_Cortex_M0下相应的仿真器型号AK100Pro。

image

图2.10  硬件选择

2.2.2 附加设置

在【附加设置】中,选择使用JTAG接口进行仿真,如图2.11所示。

image

图2.11  附加设置

2.2.3 TAP设置

点击仿真器设置界面的【TAP设置】,仿真器会自动检测出芯片的内核及其IDCODE,如图2.3所示。TKScope仿真器读出两个内核,Cortex-M4和Cortex-M0,选择Cortex-M0内核。

image

图2.12  TAP设置

2.2.4  初始化宏配置

由于是在RAM中调试,因而可跳过【程序烧写】配置而直接进入【初始化宏】配置。在初始化宏配置中需进行复位矢量的配置,以告知仿真器主动调整正确的PC值和SP值;同时需要设置内核的VTOR寄存器(地址:0xE000ED08),以重映射中断向量表。配置如图2.13所示。具体中断向量表的位置取值取决于实际的工程配置,当前工程配置的地址为0x10080000起始处。

image

图2.13  Cortex-M0初始化宏配置

2.2.5 硬件自检

最后执行【硬件自检】,检查仿真器与硬件电路是否正常连接。如果确信硬件连接正常,则此步可跳过。TKScope仿真器在硬件自检的时候,会根据用户选择的芯片的RAM区域进行检查;当目标板上有外扩RAM时,TKScope也可以检查该RAM是否正常工作。

image

图2.14  硬件自检

2.2.6 仿真调试

在完成前面的配置后,即可在IDE环境下仿真和调试。在TKStudio环境下的仿真效果界面如图2.15所示。

image

图2.15  Cortex-M0内核调试效果

3. 总结

多核系统的引入给调试带来了不小的挑战,开发人员已经很难再使用传统的仿真器辅助调试,必须慎重地考虑并选择合适的工具。即便是现在您还未调试LPC4300这种多核系统,也需要从长远的角度出发选择合适的工具,以避免后期额外购买此类工具的成本。作为专业的仿真器品牌,TKScope不仅及时地支持新内核、新芯片种类;而且也一如既往的关注用户需求,为多核调试提供着全面的支持。TKScope仿真器后续会不断地创新和发展,保持与嵌入式处理器同步发展和进步,敬请关注。

 

关于TKScope对Cortex-M4内核的具体支持,请见这篇文章TKScope仿真器新增对Cortex-M4内核的支持

原文请见:TKScope多核调试LPC4300系列操作指南


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)