一文看懂嵌入式开发arm技术JTAG接口

发布者:CelestialLight最新更新时间:2020-08-31 来源: elecfans关键字:嵌入式开发  arm技术  JTAG接口 手机看文章 扫描二维码
随时随地手机看文章

通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一般支持JTAG的CPU内都包含了这两个模块。

一文看懂嵌入式开发arm技术JTAG接口

一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,象UART,TImers,GPIO等等的寄存器。


上面说的只是JTAG接口所具备的能力,要使用这些功能,还需要软件的配合,具体实现的功能则由具体的软件决定。


例如下载程序到RAM功能。了解SOC的都知道,要使用外接的RAM,需要参照SOC DataSheet的寄存器说明,设置RAM的基地址,总线宽度,访问速度等等。有的SOC则还需要Remap,才能正常工作。运行Firmware时,这些设置由Firmware的初始化程序完成。但如果使用JTAG接口,相关的寄存器可能还处在上电值,甚至时错误值,RAM不能正常工作,所以下载必然要失败。要正常使用,先要想办法设置RAM。在ADW中,可以在Console窗口通过Let 命令设置,在AXD中可以在Console窗口通过Set命令设置。


下面是一个设置AT91M40800的命令序列,关闭中断,设置CS0-CS3, 并进行Remap,适用于AXD(ADS带的Debug)

setmem 0xfffff124,0xFFFFFFFF,32 ---关闭所有中断

setmem 0xffe00000,0x0100253d,32 ---设置CS0

setmem 0xffe00004,0x02002021,32 ---设置CS1

setmem 0xffe00008,0x0300253d,32 ---设置CS2

setmem 0xffe0000C,0x0400253d,32 ---设置CS3

setmem 0xffe00020,1,32 ---Remap

如果要在ADW(SDT带的DEBUG)中使用,则要改为:

let 0xfffff124=0xFFFFFFFF ---关闭所有中断

let 0xffe00000=0x0100253d ---设置CS0

let 0xffe00004=0x02002021 ---设置CS1

let 0xffe00008=0x0300253d ---设置CS2

let 0xffe0000C=0x0400253d ---设置CS3

let 0xffe00020=1 ---Remap

为了方便使用,可以将上述命令保存为一个文件config.ini, 在Console窗口输入 ob config.ini 即可执行。


使用其他debug,大体类似,只是命令和命令的格式不同。


设置RAM时,设置的寄存器以及寄存器的值必须和要运行程序的设置一致。一般编译生成的目标文件是ELF格式,或类似的格式,包含有目标码运行地址,运行地址在Link时候确定。Debug下载程序时根据ELF文件中的地址信息下载程序到指定的地址。如果在把RAM的基地址设置为0x10000000, 而在编译的时候指定Firmware的开始地址在0x02000000, 下载的时候,目标码将被下载到0x02000000,显然下载会失败。


通过JTAG下载程序前应关闭所有中断,这一点和Firmware初始化时关闭中断的原因相同。在使用JTAG接口的时候,各中断的使能未知,尤其是FLASH里有可执行码的情况,可能会有一些中断被使能。使用JTAG下载完代码,要执行时,有可能因为未完成初始化就产生了中断,导致程序异常。所以,需要先关闭中断,一般通过设置SOC的中断控制寄存器完成。


使用JTAG写Flash。在理论上,通过JTAG可以访问CPU总线上的所有设备,所以应该可以写FLASH,但是FLASH写入方式和RAM大不相同,需要特殊的命令,而且不同的FLASH擦除,编程命令不同,而且块的大小,数量也不同,很难提供这一项功能。所以一般Debug不提供写Flash功能,或者仅支持少量几种Flash。


目前就我知道的,针对arm,只有FlashPGM这个软件提供写FLASH功能,但使用也非常麻烦。AXD,ADW都不提供写FLASH功能。我写Flash的方法时是,自己写一个简单的程序,专门用于写目标板的FLASH,利用JTAG接口,下载到目标板,再把要烧写的目标码装成BIN格式,也下到目标板(地址和烧FLASH的程序的地址不同),然后运行已经下载的烧FLASH的程序。使用这种方式,比起FlashPGM的写Flash,速度似乎要快一些。


关于简单JTAG电缆。

目前有各种各样简单JTAG电缆,其实只是一个电平转换电路,同时还起到保护作用。JTAG的逻辑则由运行在PC上的软件实现,所以在理论上,任何一个简单JTAG电缆,都可以支持各种应用软件,如Debug等。我就曾使用同一个JTAG电缆写Xilinx CPLD,AXD/ADW调试程序。关键再于软件的支持,大多数软件都不提供设定功能,因而只能支持某种JTAG电缆。


关于简单JTAG电缆的速度。

JTAG是串行接口,使用打印口的简单JTAG电缆,利用的是打印口的输出带锁存的特点,使用软件通过I/O产生JTAG时序。由JTAG标准决定,通过JTAG写/读一个字节要一系列的操作,根据我的分析,使用简单JTAG电缆,利用打印口,通过JTAG输出一个字节到目标板,平均需要43个打印口I/O, 在我机器上(P4 1.7G),每秒大约可进行660K次 I/O 操作,所以下载速度大约在660K/43, 约等于15K Byte/S. 对于其他机器,I/O速度大致相同,一般在600K ~ 800K.


关于如何提高JTAG下载速度。

很明显,使用简单JTAG电缆无法提高速度。要提高速度,大致有两种办法,

1。使用嵌入式系统提供JTAG接口,嵌入式系统和微机之间通过USB/Ethernet相连,这要求使用MCU。

2。使用CPLD/FPGA提供JTAG接口,CPLD/FPGA和微机之间使用EPP接口(一般微机打印口都支持EPP模式),EPP接口完成微机和CPLD/FPGA之间的数据传输,CPLD/FPGA完成JTAG时序。


这两种方法本人都实现过。第一个方法可以达到比较高的速度,实测超过了200KByte/S(注意:是Byte,不是Bit);但是相对来说,硬件复杂,制造相对复杂。第二种相对来说,下载速度要慢一些,最快时达到96KByte/S,但电路简单,制造方便,而且速度可以满足需要。第二种方案还有一个缺点,由于进行I/O操作时,CPU不会被释放,因此在下载程序时,微机CPU显得很繁忙。


总的来说,本人认为,对于个人爱好者来说,第二种方法更可取。

关键字:嵌入式开发  arm技术  JTAG接口 引用地址:一文看懂嵌入式开发arm技术JTAG接口

上一篇:ARM嵌入式系统硬件设计及应用实例详解
下一篇:交叉编译工具链的命名规则

推荐阅读最新更新时间:2024-11-05 01:13

单片机、ARM、DSP、FPGA的技术特点和区别
单片机作为最典型的嵌入式处理器,它的成功应用推动了嵌入式系统的发展。 单片机以体积小、功能强、可靠性好、性能价格比高等特点,已成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段。图2所示为单片机。 图1 单片机 图2 ARM处理器 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。 ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求
[单片机]
单片机、<font color='red'>ARM</font>、DSP、FPGA的<font color='red'>技术</font>特点和区别
Intel想逆袭:技术上超过ARM又怎样?这是商战!
    作为PC端的“老大哥”,Intel在去年终于下定决心,再次进军移动领域。然而,面对已被ARM阵营占领的移动市场,Intel还是有些“水土不服”。几年前,Intel帝国就已经吃过一回亏,并以出售移动处理器业务的方式收场;而这一次,面对逐渐萎靡的PC市场,帝国又开始向移动市场发起反击。从技术和功能上来说,Intel已反超ARM,那又怎样,商场不是技术指标战,整个产品模式能不能在移动市场上立稳脚跟?悬! 据传台积电和三星电子两家芯片代工商正在竞争苹果A7芯片的订单。机构投资者认为,Intel可能会取得10%的苹果A7芯片订单。 经过2012年一年的追赶,Intel在技术、功能和能耗上都已经追赶上了竞争对手ARM,但是,商场从来
[手机便携]
ARM及ZigBee技术实现智能家居控制器的设计
ZigBee是一种新兴的近距离、低复杂度、低功耗、低数据速率、低成本的无线网络技术,在众多领域有着广泛的应用前景。 智能家居是一个多功能的综合技术系统,它以家庭住宅为平台,利用先进的计算机技术、通信技术、网络技术、控制技术、信息技术,将家庭中的各种电器设备通过某种形式的网络有机地连接在一起,进行网络化的综合管理与调控,为人们提供一个舒适、安全、方便、环保和高效率的生活环境。 本文所介绍的智能家居控制器利用ZigBee技术将家庭中许多相对独立的家用电器构成一个统一的智能家居系统,从而方便对家居中的各种电器设备进行本地操作,同时也可通过互联网或GPRS系统对各种电器设备实现远程控制。 1 ZigBee技术简介 ZigBee技术
[单片机]
<font color='red'>ARM</font>及ZigBee<font color='red'>技术</font>实现智能家居控制器的设计
基于PXA270嵌入式开发板的GPS定位系统设计
将GPS与嵌入式技术融合在一起,形成一个嵌入式的地理平台,是当前 GPS 领域的一个重要趋势。本文是在PXA270嵌入式开发板和GPS模块上开发实现的。在Linux下的嵌入式开发环境中,利用C++设计完成定位。嵌入式系统利用软件设计主要完成GPS定位信号的处理、电子地图的移植、地球坐标的转换、定位的显示等功能。 1 系统概述 嵌入式系统是控制、监视或者辅助装置、机器和设备运行装置;是软件和硬件的综合体,可涵盖机械等附属装置;有着友好的人机界面,支持LCD及GPS模块;主要完成提取GPS定位信号的数据、坐标转换、电子地图的显示等功能。软件设计流程如图1所示。 2 嵌入式系统软件设计 2.1 GPS模块输出的信息的提取
[网络通信]
什么叫arm架构?ARM技术实现
什么叫arm架构 ARM架构过去称作进阶精简指令集机器(AdvancedRISCMachine,更早称作:AcornRISCMachine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。 由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。 在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设
[单片机]
什么叫<font color='red'>arm</font>架构?<font color='red'>ARM</font>的<font color='red'>技术</font>实现
基于ZigBee和ARM技术的森林火情监测系统方案
森林在国民经济中占有重要地位,然而,森林火灾会给森林带来严重危害。但是,人类在制服森林火灾上,却依然尚未取得突破性的进展,于是在火灾还在萌芽状态立即扑灭它就显得尤为重要。因此推广森林火情监测系统具有非常中的价值和意义。 森林火情监控系统利用预设在森里中的各种不同功能的传感器节点采集各类森里环境参数,传输到上位机,利用信息管理软件,进行数据存储、显示、分析处理等操作,对异常情况进行预测和报警。 目前,我国还有部分的森林火情监控还采用兴建瞭望塔、建立视频监控等方式。因为森林火灾经常发生在人烟罕至的原始森林中,因此上述方式存在着诸多不足。鉴于此,提出了一种基于ZigBee+短波无线通信的森林火情监控系统。ZigBee是一种近距离
[单片机]
基于ZigBee和<font color='red'>ARM</font><font color='red'>技术</font>的森林火情监测系统方案
关于一种基于ARM嵌入式技术的牙椅控制系统设计深度剖析
1 引言 目前,市场高端牙椅设备基本被国外公司独断,一般其价格昂贵而且技术不转让。随着人们对口腔健康的日益重视,开发适合国情的高端一体化口腔诊疗系统显得尤为必要。牙椅控制器是一体化口腔诊疗系统的核心,其设计水平反映了整个系统的自动化程度,也是判定牙椅档次的一个重要依据。 本文研究开发了基于ARM嵌入式技术的牙椅控制系统。在控制系统中应用嵌入式操作系统,利用多任务管理、任务间同步与通信等功能,可更进一步提高系统可靠性和实时性,增强智能控制和管理水平。 2 整体功能概述 系统整体框图如图1 所示。牙椅控制系统设计必须满足医疗需求并方便使用操作。高档牙椅在实际工作中除了要满足上下仰卧四个基本方向的运动,同时还必须能够完成茶杯给水
[单片机]
关于一种基于<font color='red'>ARM</font>嵌入式<font color='red'>技术</font>的牙椅控制系统设计深度剖析
嵌入式开发就业前景分析_嵌入式领域的职业发展方向
2017-2018年IT技术已经进入了高速发展的阶段,互联网开始逐渐步入物联网的科技时代,可以说嵌入式开发技术在物联网领域应用最为广泛,正是嵌入式开发行业十分火热,很多大学毕业生纷纷通过嵌入式培训走上了嵌入式开发相关的岗位,但是仍有很多人对嵌入式行业并不太了解,存在很多疑问,所以就会人问“学嵌入式有前途吗”,可以从事哪些工作?学完嵌入式可以做什么呢?这样的问题总会被问及。 学习嵌入式有前途吗?嵌入式的应用是比较广泛的,适合于各个领域。嵌入式主要应用于消费类电子行业,比如日常生活中常用的手机、电脑、数字电视、电子书等移动手持设备都属于消费类电子行业;汽车电子,比如GPS定位导航等汽车电子行业;军工行业,比如雷达、航空设备、野战军
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved