一个含有JTAG Debug接口模块的CPU

电子设计 2018-06-12 09:38 次阅读

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

一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,象UART,Timers,GPIO等等的寄存器。上面说的只是JTAG接口所具备的能力,要使用这些功能,还需要软件的配合,具体实现的功能则由具体的软件决定。例如下载程序到RAM功能。了解SOC的都知道,要使用外接的RAM,需要参照SOCDataSheet的寄存器说明,设置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 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 Cortex-M0+的MCU打造完美嵌入式世界!

如何用32位ARM处理器打造Different, Smarter, Better的嵌入式世界?业界率....

的头像 Freescale视频 发表于 06-21 17:25 29次 观看
飞思卡尔教你如何用基于ARM Cortex-M0+的MCU打造完美嵌入式世界!

世界的引领者:飞思卡尔半导体

飞思卡尔半导体(NYSE:FSL)是嵌入式处理解决方案的全球领导者,提供业界领先的产品,不断提升汽车....

的头像 Freescale视频 发表于 06-21 11:30 47次 观看
世界的引领者:飞思卡尔半导体

飞思卡尔让生活更智能更安全

科技迅速发展,它将世界变得更加美好,就在不久以前,大多数运算都是通过个人电脑来完成的,而现在,运算在....

的头像 Freescale视频 发表于 06-21 10:10 50次 观看
飞思卡尔让生活更智能更安全

关于基于DM368的嵌入式数据记录仪的设计与实现

弹载数据记录仪的主要作用是对导弹飞行中的各种数据信息进行采集与记录,通过对数据记录仪的信息进行回读和....

的头像 电子设计 发表于 06-21 09:40 61次 阅读
关于基于DM368的嵌入式数据记录仪的设计与实现

请问am335x的JTAG调试的下载器选用TI有配套的么?

发表于 06-21 04:41 11次 阅读
请问am335x的JTAG调试的下载器选用TI有配套的么?

JTAG的作用和原理分析

一般的协议是求着CPU读写字库的程序,但JTAG可以读写CPU的程序,命令让CPU啥活都干,擒贼先擒....

的头像 单片机精讲吴鉴鹰 发表于 06-20 16:27 258次 阅读
JTAG的作用和原理分析

基于mbedTLS实现的嵌入式固件知识产权保护方案

嵌入式应用的领域越来越广泛,功能需求也越来越复杂,有些嵌入式产品要求在产品出厂后,使用过程中保留有固....

的头像 润欣科技Fortune 发表于 06-20 10:56 347次 阅读
基于mbedTLS实现的嵌入式固件知识产权保护方案

JTAG 链调试程序工具的作用及应用

JTAG 链调试程序工具

的头像 英特尔 Altera视频 发表于 06-20 01:00 89次 观看
JTAG 链调试程序工具的作用及应用

飞思卡尔嵌入式处理打造创新未来

飞思卡尔是嵌入式处理解决方案领域的领导者,主要业务涉及汽车电子、消费电子、工业电子以及网络设备等市场....

的头像 Freescale视频 发表于 06-19 14:32 196次 观看
飞思卡尔嵌入式处理打造创新未来

如何通过HiFive1套件实现快速原型开发

嵌入式系统开发人员一直在想方设法进一步缩短开发时间,特别是针对概念验证和快速原型开发。虽然开发套件已....

的头像 电子设计 发表于 06-19 09:09 754次 阅读
如何通过HiFive1套件实现快速原型开发

LabVIEW ARM嵌入式开发模块的详细介绍和使用手册中文资料概述

LabVIEW ARM嵌入式开发模块是一个完整的图形化开发环境,由NI联合Keil公司开发而成,使用....

发表于 06-19 08:00 21次 阅读
LabVIEW ARM嵌入式开发模块的详细介绍和使用手册中文资料概述

计算机三级考试的嵌入式知识点完全整理赶紧来下载复习吧

RAM 分为动态 DRAM 和静态 SRAM 两种。DRAM 电路简单、集成度高、功耗小、成本低,但....

发表于 06-19 08:00 26次 阅读
计算机三级考试的嵌入式知识点完全整理赶紧来下载复习吧

C语言测试的经典嵌入式面试题详细中文概述

C 语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在....

发表于 06-19 08:00 70次 阅读
C语言测试的经典嵌入式面试题详细中文概述

6657的JTAG连接,其中TI-60Header的A1是不是直接接地就可以了? 还有6657的JTAG口的电压是1.8V还是3.3V?

发表于 06-19 02:18 10次 阅读
6657的JTAG连接,其中TI-60Header的A1是不是直接接地就可以了? 还有6657的JTAG口的电压是1.8V还是3.3V?

机器学习中的特征选择的5点详细资料概述

特征选择是一个重要的“数据预处理” (data preprocessing) 过程,在现实机器学习任....

的头像 人工智能爱好者社区 发表于 06-18 17:24 183次 阅读
机器学习中的特征选择的5点详细资料概述

关于简单JTAG电缆,如何提高JTAG下载速度

由JTAG标准决定,通过JTAG写/读一个字节要一系列的操作,根据我的分析,使用简单JTAG电缆,利....

的头像 电子发烧友网 发表于 06-15 09:06 939次 阅读
关于简单JTAG电缆,如何提高JTAG下载速度

嵌入式相关应用开发中kernel module 挂载失败是什么原因啊?

发表于 06-15 06:46 308次 阅读
嵌入式相关应用开发中kernel module 挂载失败是什么原因啊?

基于STM32F407的flash内存结构分析

Main memory部分各个Sector相加最后正合适等于1024Kbyte,这也是与文档开头....

发表于 06-14 10:11 63次 阅读
基于STM32F407的flash内存结构分析

XLW-BLE003U蓝牙模块的使用手册详细概述免费下载

XLW-BLE003U蓝牙模块是一款嵌入式的无线通信模块,支持蓝牙4.0BLE协议,具有低功耗、小尺....

发表于 06-14 08:00 36次 阅读
XLW-BLE003U蓝牙模块的使用手册详细概述免费下载

了解 LabVIEW 的优势及测试、控制以及嵌入式应用

内容包括:LabVIEW的优势,如何使用LabVIEW测试、控制以及嵌入式应用

的头像 NI视频 发表于 06-14 01:21 223次 观看
了解 LabVIEW 的优势及测试、控制以及嵌入式应用

Cortext-M3体系结构与接口编程(3)

ARM最新处理器Cortext-M3体系结构与接口编程

的头像 ARM视频 发表于 06-14 00:32 239次 观看
Cortext-M3体系结构与接口编程(3)

Cortext-M3体系结构与接口编程(1)

ARM最新处理器Cortext-M3体系结构与接口编程

的头像 ARM视频 发表于 06-14 00:04 227次 观看
Cortext-M3体系结构与接口编程(1)

Cortext-M3体系结构与接口编程(2)

ARM最新处理器Cortext-M3体系结构与接口编程

的头像 ARM视频 发表于 06-14 00:01 230次 观看
Cortext-M3体系结构与接口编程(2)

西安某上市公司招聘嵌入式软件开发工程师

发表于 06-13 13:23 272次 阅读
西安某上市公司招聘嵌入式软件开发工程师

一场关于嵌入式技术及学习方法的演讲 (3)

TI 公司自身嵌入式工程师 Loyal Bao 做了题为“嵌入式技术及学习方法”的演讲。  ....

的头像 TI视频 发表于 06-13 13:02 153次 观看
一场关于嵌入式技术及学习方法的演讲 (3)

一场关于ARM——数字世界的体系结构的演讲

演讲题目:ARM - The Architecture for The Digital World;....

的头像 ARM视频 发表于 06-13 06:32 203次 观看
一场关于ARM——数字世界的体系结构的演讲

一场关于嵌入式技术及学习方法的演讲 (1)

TI 公司自身嵌入式工程师 Loyal Bao 做了题为“嵌入式技术及学习方法”的演讲。

的头像 TI视频 发表于 06-13 05:52 135次 观看
一场关于嵌入式技术及学习方法的演讲 (1)

一场关于嵌入式技术及学习方法的演讲 (2)

TI 公司自身嵌入式工程师 Loyal Bao 做了题为“嵌入式技术及学习方法”的演讲。

的头像 TI视频 发表于 06-13 05:52 159次 观看
一场关于嵌入式技术及学习方法的演讲 (2)

如何在SDK系统中添加新的目标配置

赛灵思SDK允许您使用远程主机中的赛灵思硬件服务器来调试远程目标设备.....

的头像 FPGA开发圈 发表于 06-12 09:11 614次 阅读
如何在SDK系统中添加新的目标配置

32位高性能嵌入式处理器TMS470

高性能 32位嵌入式处理器TMS470 家族

的头像 TI视频 发表于 06-12 01:33 208次 观看
32位高性能嵌入式处理器TMS470

一个嵌入式音频项目总结

1. 可以使用DirectXsound接口做.将输出缓冲区音频叠加到输入缓冲区;2.可以调用ASIO....

的头像 嵌入式ARM 发表于 06-11 10:07 1087次 阅读
一个嵌入式音频项目总结

嵌入式系统联谊会:物联网与嵌入式行业重点关注的方向会是什么?

人工智能(AI)棋王Alpha Go战胜人类棋王之后,AI 技术便为大众所熟知,计算机技术上的突破和....

发表于 06-05 17:46 628次 阅读
嵌入式系统联谊会:物联网与嵌入式行业重点关注的方向会是什么?

MPLAB REAL ICE 在线仿真器JTAG适配器的中文使用说明书

MPLAB REAL ICE JTAG适配器(AC244007)可方便地在MPLAB REAL IC....

发表于 06-05 17:29 60次 阅读
MPLAB REAL ICE 在线仿真器JTAG适配器的中文使用说明书

基于嵌入式数据库的海量存储技术解析

通常, 我们采用数据库来实现对数据的存储、检索等功能。像MySQL这类基于C/S结构的关系型数据库....

发表于 06-05 11:00 75次 阅读
基于嵌入式数据库的海量存储技术解析

Videostrong RK3399板卡 OV13850 MIPI 接口资料说明

发表于 06-05 09:47 311次 阅读
Videostrong RK3399板卡 OV13850 MIPI 接口资料说明

PCIe总线中的链路初始化与训练

前面的文章中介绍过,PCIe收发的都是差分信号,有的时候Link两端的设备的对应信号的极性可能是相反....

的头像 电子技术应用ChinaAET 发表于 06-05 09:06 309次 阅读
PCIe总线中的链路初始化与训练

嵌入式多任务程序设计的详细中文资料概述

从现代意义上的计算机诞生至今,无论规模如何,计算机的五大基本组成部分就未曾改变过:控制器( Cont....

发表于 06-05 08:00 47次 阅读
嵌入式多任务程序设计的详细中文资料概述

嵌入式linux开发详细资料

本文主要介绍了嵌入式linux开发详细资料。

发表于 06-05 08:00 40次 阅读
嵌入式linux开发详细资料

CCS V5.5 无法通过JTAG连接英蓓特的BeagleBone Black,请问是什么原因导致无法调试的呢?

发表于 06-04 04:14 27次 阅读
CCS V5.5 无法通过JTAG连接英蓓特的BeagleBone Black,请问是什么原因导致无法调试的呢?

优化嵌入式系统的工作负载,专用硬件来处理真正的人工智能算法

人工智能仍然是一个新兴且快速发展的领域。神经网络的应用场景快速增加,例如目标识别、语音和声音分析、5....

的头像 电子发烧友网 发表于 06-03 10:09 683次 阅读
优化嵌入式系统的工作负载,专用硬件来处理真正的人工智能算法

对目前嵌入式产业现状、趋势及机遇进行了深入的交流

目前,研华嵌入式主板已经广泛应用于医疗、航天军工、轨道铁路、交通物流、工业制造和金融设备等众多领域,....

的头像 OFweek工控 发表于 05-31 15:39 13104次 阅读
对目前嵌入式产业现状、趋势及机遇进行了深入的交流

CCS与JTAG仿真器连接的15个问题汇总和解决方案详细概述

本文的主要内容介绍的是CCS与JTAG仿真器连接的15个问题汇总和解决方案详细概述

发表于 05-31 11:07 38次 阅读
CCS与JTAG仿真器连接的15个问题汇总和解决方案详细概述

嵌入式行业该怎样去面试?

发表于 05-31 10:02 417次 阅读
嵌入式行业该怎样去面试?

直正懂得volatile完全的重要性

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的....

的头像 嵌入式ARM 发表于 05-30 14:28 514次 阅读
直正懂得volatile完全的重要性

为什么选择Linux操作系统?制约标准Linux操作系统实时性的因素

Xenomai正是充分利用了Adeos技术,它的首要目标是帮助人们尽量平缓地移植那些依赖传统RTOS....

的头像 嵌入式ARM 发表于 05-30 14:24 1071次 阅读
为什么选择Linux操作系统?制约标准Linux操作系统实时性的因素

FCU1401嵌入式控制单元

发表于 05-30 11:34 391次 阅读
FCU1401嵌入式控制单元

一种非常实用的系统掉电检测和保护电路

可靠性是每一个产品的灵魂,如果一个产品可靠性不好,那它就是一个失败的产品,因为客户不会使用存在风险的....

的头像 周立功单片机 发表于 05-30 09:34 2155次 阅读
一种非常实用的系统掉电检测和保护电路

DSP C6657配置问题,1.25G的DSP先是按1G配的没有问题,改成1.25G程序会跑飞或者卡在某个外设初始化里出不来,什么原因呢?

发表于 05-29 23:01 316次 阅读
DSP C6657配置问题,1.25G的DSP先是按1G配的没有问题,改成1.25G程序会跑飞或者卡在某个外设初始化里出不来,什么原因呢?

一文告诉你嵌入式 STT MRAM 磁隧道结阵列的加工是靠什么来完成的?

半导体产业正在迎来下一代存储器技术的新纪元,几大主要变化趋势正在成形。这其中包括磁性随机存储器 (M....

发表于 05-29 15:42 185次 阅读
一文告诉你嵌入式 STT MRAM 磁隧道结阵列的加工是靠什么来完成的?

从行业到技术,一位嵌入式er带你清晰总览嵌入式行业职业规划

找一个好工作,谈一份好薪水相信这也是大部分人的心愿,那么嵌入式行业该如何规划呢?我们今天来谈谈。

发表于 05-29 15:27 235次 阅读
从行业到技术,一位嵌入式er带你清晰总览嵌入式行业职业规划

含有JTAG Debug接口模块的CPU提高下载速度

通常所说的JTAG大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于Debug;一....

的头像 电子设计 发表于 05-29 09:41 1168次 阅读
含有JTAG Debug接口模块的CPU提高下载速度

基于嵌入式车载导航电子地图的设计和实现

车辆远程诊断仪的主要功能是导航。导航功能的重点是行车路线设计、自动车辆定位、综合信息服务、路径引导服....

的头像 电子设计 发表于 05-29 03:35 1841次 阅读
基于嵌入式车载导航电子地图的设计和实现

一分钟带你看懂:工控机嵌入式操作系统Linux

嵌入式系统是以应用为中心,以计算机技术为基础、软硬件均可裁剪、适应应用系统对功能、可靠性、成本、体积....

发表于 05-28 15:30 397次 阅读
一分钟带你看懂:工控机嵌入式操作系统Linux

三分钟带你掌握嵌入式WebServer技术及其实现

嵌入式技术迅速发展,已经被广泛地应用于各行各业。将嵌入式技术和数控技术结合起来产生了很多理论和应用成....

发表于 05-28 14:40 205次 阅读
三分钟带你掌握嵌入式WebServer技术及其实现

如何提高嵌入式Bootloader程序的安全性

上海润欣科技正在开发一个用于智能门锁等领域的指纹模块项目,用到的主控芯片是基于ARM Cortex-....

的头像 润欣科技Fortune 发表于 05-28 14:37 839次 阅读
如何提高嵌入式Bootloader程序的安全性

浅谈一种基于嵌入式PC的PIII计算机系统设计与实现

目前嵌入式计算机系统应用呈现多样化、小型化、多层次的趋势,在工业现场和军事用途中扮演着越来越重要的角....

发表于 05-28 14:33 124次 阅读
浅谈一种基于嵌入式PC的PIII计算机系统设计与实现

[ST新闻] 瞄准先进工业感测应用,意法半导体推出新型高精度MEMS传感器,并为新产品提供不低于10年供货承诺

发表于 05-28 10:23 440次 阅读
[ST新闻] 瞄准先进工业感测应用,意法半导体推出新型高精度MEMS传感器,并为新产品提供不低于10年供货承诺

面向嵌入式工程师的MPLAB® XC32用户指南

面向嵌入式工程师的MPLAB® XC32用户指南

发表于 05-25 17:29 46次 阅读
面向嵌入式工程师的MPLAB® XC32用户指南