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

电子设计 2018-05-29 09:41 次阅读

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

一个含有JTAG Debug接口模块的CPU,只要时钟正常,就可以通过JTAG接口访问CPU的内部寄存器和挂在CPU总线上的设备,如FLASH,RAM,SOC(比如4510B,44Box,AT91M系列)内置模块的寄存器,象UARTTimers,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显得很繁忙。

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

收藏 人收藏
分享:

评论

相关推荐

单片机堆栈的小故事让你更容易理解堆栈的概念

因为单片机有CPU、存储器、IO等等,使他(人性化一点以配合下文)看起来就像一个比较小的计算机,所以....

的头像 玩转单片机 发表于 09-23 15:58 53次 阅读
单片机堆栈的小故事让你更容易理解堆栈的概念

华为畅享8怎么样

外观方面,华为畅享8采用5.99英寸屏幕,这同时也表明了华为在以后的道路,大部分机型的屏幕定位会是全....

的头像 牵手一起梦 发表于 09-23 08:27 238次 阅读
华为畅享8怎么样

ADM3252E输出异常怎么解决

各位大侠!, 最近我们有个客户发现ADM3252E在系统上电时会输出0x00或0xFF, 为了确实是CPU或则ADM3252E输出异常,...

发表于 09-21 14:52 50次 阅读
ADM3252E输出异常怎么解决

固化程序后扫描不到FPGA设备

固化程序之后,以内部固化程序启动时,要拔出JTAG。 避免启动时因识别JTAG而延迟固化程序的加载,出现"no programmable...

发表于 09-21 13:05 66次 阅读
固化程序后扫描不到FPGA设备

Qualcomm Symphony System Manager SDK使用举例

Qualcomm Symphony System Manager SDK使用举例         Symphony System Manager是...

发表于 09-21 10:33 50次 阅读
Qualcomm Symphony System Manager SDK使用举例

基于高速FPGA的PCB设计

随着现场可编程门阵列(FPGA)已发展成为真正的可编程系统级芯片,利用这些芯片设计印制电路板(PCB)的任务变得愈加复杂。要...

发表于 09-21 10:28 18次 阅读
基于高速FPGA的PCB设计

PSoC5LP用I2C发送4个字节可以用DMA吗?

我使用PSoC5LP进行实时应用 1)我想用I2C发送(只发送,不接收)4个字节,但是我想立即把它们发送到一个缓冲器中,然后切...

发表于 09-21 09:36 74次 阅读
PSoC5LP用I2C发送4个字节可以用DMA吗?

80C51单片机的中断与定时的详细资料介绍及使用方法免费下载

当中央处理器CPU正在处理某件事情的时候,外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处....

发表于 09-20 17:24 32次 阅读
80C51单片机的中断与定时的详细资料介绍及使用方法免费下载

80c51单片机控制器的详细和名称中英文对照

界上第一台电子计算机其实是ABC(Atanasoff-Berry Computer,阿塔纳索夫-贝瑞....

发表于 09-20 17:24 37次 阅读
80c51单片机控制器的详细和名称中英文对照

苹果推出A12 Bionic芯片,拥有六核CPU和八核的第二代神经引擎

在上周推出新款 iPhone 芯片的时候,苹果公司对 A12 Bionic 平台做了大量演示。可知其....

发表于 09-20 16:47 308次 阅读
苹果推出A12 Bionic芯片,拥有六核CPU和八核的第二代神经引擎

STM8S微控制器系列的各部件的详细资料免费下载

本参考手册为应用开发人员提供了关于如何使用STM8S微控制器的存储器和外设的完整信息。STM8S是一....

发表于 09-20 14:14 19次 阅读
STM8S微控制器系列的各部件的详细资料免费下载

再有5年,中国集成电路在全世界会有一席之地

“再有5年,中国集成电路基本上能把脚跟站稳了,2028年到2030年左右,中国集成电路在全世界会有一....

的头像 DIGITIMES 发表于 09-20 10:56 357次 阅读
再有5年,中国集成电路在全世界会有一席之地

使用at32uc3a0512和ft2232H制作自己的开发板怎么开始初始化设备

大家好,我是我修电工程的最后一年。目前我正在为我的毕业设计做一个项目。在这个项目中,我尝试设计一种开发板,它与USB到J...

发表于 09-20 09:37 24次 阅读
使用at32uc3a0512和ft2232H制作自己的开发板怎么开始初始化设备

PNA-X-FW A10.47.03&FW A10.49.03在段错误中设置IF BW

我只是发现在频率段内设置IF BW的错误。 当您以10 Hz手动键入类型时,系统有时会不接受并将其更改为7 Hz。 键入7 Hz时,...

发表于 09-19 16:51 26次 阅读
PNA-X-FW A10.47.03&FW A10.49.03在段错误中设置IF BW

ADV7181c做PAL视频采集项目调试遇到问题

各位工程师好 最近使用ADV7181c 做PAL视频采集项目,PAL的CVBS/YC/RGsB 输入到ADV7181c ,8bit 4:2:2 Y...

发表于 09-19 10:28 40次 阅读
ADV7181c做PAL视频采集项目调试遇到问题

谁才是微小型嵌入式系统的最佳选择?

只有对手才真正了解对手,或许是RISC-V的成长速度让ARM感受到了威胁,2018年6月底,ARM建....

的头像 电子技术应用ChinaAET 发表于 09-19 10:04 176次 阅读
谁才是微小型嵌入式系统的最佳选择?

英特尔10nm工艺制程转换出现问题,AMD是最大受益者

于是AMD采用Zen架构的全新PC处理器Ryzen系列在全球市场热销,去年在美国PC市场其取得了超过....

的头像 柏颖漫谈 发表于 09-19 08:46 279次 阅读
英特尔10nm工艺制程转换出现问题,AMD是最大受益者

怎么使用CYW43907编程自定义PCBA

有人能告诉我如何在Cube板上填充CYW43907程序吗?我们将很快发布Fab的董事会,并希望证实我们没有遗漏任何东西。 我们将J...

发表于 09-18 14:37 26次 阅读
怎么使用CYW43907编程自定义PCBA

未来中国芯片设计能否对标全球巨头企业?

芯片设计位于半导体产业的最上游,是半导体产业最核心的基础,拥有极高的技术壁垒,需要大量的人力、物力投....

的头像 半导体行业联盟 发表于 09-18 10:54 886次 阅读
未来中国芯片设计能否对标全球巨头企业?

请问代码Cla1ForceTask1andWait();是指F28377S中CLA与CPU二者并行运行吗?

如下: Cla1ForceTask1andWait(); 这句代码的含义是等CLA运行结束时CPU的代码跟着运行,还是二者并行运行...

发表于 09-18 09:43 235次 阅读
请问代码Cla1ForceTask1andWait();是指F28377S中CLA与CPU二者并行运行吗?

华为表示计划今年内就能够推出可折叠的手机

日前德国杂志die welt刊发了对华为消费者业务CEO余承东的采访消息,余承东表示计划今年内就能够....

的头像 科技美学 发表于 09-17 15:53 1307次 阅读
华为表示计划今年内就能够推出可折叠的手机

健伍TH-26A,TG-28A,TH-28A和TK208对讲机检修实例说明

对症快修:根据现象分析,该故障可能发生在发射及接收的电源控制部位。检修时,先在天线接口接上高频功率表....

发表于 09-17 08:00 29次 阅读
健伍TH-26A,TG-28A,TH-28A和TK208对讲机检修实例说明

ICOM各型号电台CPU复位方法详细资料免费下载

本文档的主要内容详细介绍的是ICOM各型号电台CPU复位方法详细资料免费下载。

发表于 09-17 08:00 29次 阅读
ICOM各型号电台CPU复位方法详细资料免费下载

i9-9900K跑分曝光 稳了

Intel将在10月初发布九代酷睿9000系列和配套的Z370主板,核心线程数量达成,第一次为Int....

发表于 09-16 10:51 92次 阅读
i9-9900K跑分曝光 稳了

再也不需要debug?Facebook开发的AI工具帮你搞定

为了解决高触发错误,SapFix 会创建修补程序,该修补程序可以完全或部分恢复原来提交的代码。对于更....

的头像 电子发烧友网工程师 发表于 09-16 10:42 353次 阅读
再也不需要debug?Facebook开发的AI工具帮你搞定

Intel14nm产能缺口接近50%

对于Intel来说,10nm工艺遥遥无期的情况下,14nm产能也出现了问题,这直接导致小伙伴们调低预....

发表于 09-16 09:56 77次 阅读
Intel14nm产能缺口接近50%

一文搞懂 CPU、GPU 和 TPU

张量处理单元(TPU)是一种定制化的 ASIC 芯片,它由谷歌从头设计,并专门用于机器学习工作负载。....

的头像 电子发烧友网工程师 发表于 09-15 10:46 657次 阅读
一文搞懂 CPU、GPU 和 TPU

浅析FPGA设计中常犯的错误

FPGA的用处比我们平时想象的用处更广泛,原因在于其中集成的模块种类更多,而不仅仅是原来的简单逻辑单....

的头像 电子发烧友网 发表于 09-15 09:37 250次 阅读
浅析FPGA设计中常犯的错误

什么是树脂塞孔?树脂塞孔的应用,工艺制作方法和品质问题改进方法介绍

树脂塞孔的工艺流程近年来在PCB产业里面的应用越来越广泛,尤其是在一些层数高,板子厚度较大的产品上面....

的头像 PCB行业融合新媒体 发表于 09-15 09:15 265次 阅读
什么是树脂塞孔?树脂塞孔的应用,工艺制作方法和品质问题改进方法介绍

介绍GPU与FPGA的几个方面和看法

除了芯片性能外,GPU相对于FPGA还有一个优势就是内存接口。GPU的内存接口(传统的GDDR,最近....

发表于 09-15 09:15 81次 阅读
介绍GPU与FPGA的几个方面和看法

阿里强力布局芯片领域 国际芯片巨头集体入驻的背后

近日,有网友曝光了多家国际芯片巨头的天猫官方旗舰店截图,截图显示包括赛普拉斯(Cypress)、瑞萨....

的头像 电子发烧友网工程师 发表于 09-15 08:56 451次 阅读
阿里强力布局芯片领域 国际芯片巨头集体入驻的背后

2018苹果秋季发布会如约而至,苹果股价当日跌1.24%

此次苹果新机发布会上首先将“Apple Watch 4”作为“前菜”端给观众。新Apple Watc....

的头像 物联网资本论 发表于 09-14 17:24 2680次 阅读
2018苹果秋季发布会如约而至,苹果股价当日跌1.24%

什么是单片机怎样学习?单片机基础知识及Proteus应用简介资料概述

本文档的怎样内容详细介绍的是单片机基础知识概述内容包括了:1.单片机概述2.单片机学习的预备知识3.....

发表于 09-14 10:53 71次 阅读
什么是单片机怎样学习?单片机基础知识及Proteus应用简介资料概述

FPGA教程之如何从零开始学习FPGA?从零开始走进FPGA世界

这本所谓的书,恐怕不一定能够带还没入门的 U 杀进 FPGA 开发的大门,当然也肯定不能达到进阶的目....

发表于 09-14 08:00 144次 阅读
FPGA教程之如何从零开始学习FPGA?从零开始走进FPGA世界

全新区块链架构HPB,跟产业深度结合,促进世界区块链生态共同繁荣

HPB是一种全新的区块链架构,旨在实现分布式应用的性能扩展。定位为易用的高性能区块链平台,跟产业深度....

发表于 09-13 14:56 63次 阅读
全新区块链架构HPB,跟产业深度结合,促进世界区块链生态共同繁荣

数据库为什么有可能喜欢Linux AIO(异步I/O)?

这样的AIO有一个极大的好处在于,IO不会阻塞住CPU的行为,有利于充分利用硬件的资源,有利于让CP....

的头像 MCA手机联盟 发表于 09-11 10:42 469次 阅读
数据库为什么有可能喜欢Linux AIO(异步I/O)?

多级并行调整策略

This webinar will answer your key questions: Where....

的头像 英特尔 Altera视频 发表于 09-11 06:22 118次 观看
多级并行调整策略

STM32单片机特性解析

其基于专为要求高性能、 低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一....

发表于 09-10 16:55 281次 阅读
STM32单片机特性解析

cpu超频注意事项有哪些 浅谈cpu超频设置

通常所说的超频简单来说就是人为提高CPU的外频或倍频,使之运行频率得到大幅提升,即CPU超频。

发表于 09-10 14:40 84次 阅读
cpu超频注意事项有哪些 浅谈cpu超频设置

怎么看CPU有没有超频 cpu超频的意义是什么

超频就是超过原来的频率 电脑超频,打个比方就是我们在跑步的时候,如以5米/S的速度跑,但过了一会儿,....

的头像 沈丹 发表于 09-10 11:29 360次 阅读
怎么看CPU有没有超频 cpu超频的意义是什么

什么是主频和睿频?cpu主频越高越好吗

CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。通常所说的某某CPU是多....

的头像 沈丹 发表于 09-10 11:17 611次 阅读
什么是主频和睿频?cpu主频越高越好吗

主频和睿频的区别 q9000主频怎么样

CPU的生产可以说是非常精密的,以至于生产厂家都无法控制每块CPU到底可以在什么样的频率下工作,厂家....

发表于 09-10 11:08 74次 阅读
主频和睿频的区别 q9000主频怎么样

Q9000四核CPU性能测试 浅谈Q9000性能提升

从现有的资料来看,Core 2 Extreme QX9650和QX9750处理器的功耗均为130W,....

发表于 09-10 10:55 114次 阅读
Q9000四核CPU性能测试 浅谈Q9000性能提升

Q9000在T61上的运行效果

 形成这些成绩的缘由有能够是由于我用的漆包线太细了的缘故,由于el-sahef有说过GTLREF和G....

发表于 09-10 10:44 60次 阅读
Q9000在T61上的运行效果

q9000怎么样 q9000和qx9300哪个更有优势

x9100是至尊版u,至尊版共性就是不锁倍频,如果你的机器可以超倍频,这个u就神了。他的价格比较贵,....

发表于 09-10 09:33 80次 阅读
q9000怎么样 q9000和qx9300哪个更有优势

t9900和q9100哪个好 浅谈t9900和q9100的不同

T9900 双核 3.06G 6M二级缓存 35w,Q9100 四核 2.26G 12M二级缓存 4....

发表于 09-10 09:19 211次 阅读
t9900和q9100哪个好 浅谈t9900和q9100的不同

笔记本选Q9000还是X9100? q9000和x9100区别对比

T6600这块CPU只是P7450的阉割版,而根据官方的要求,T6600(包括其它T6x00、奔腾双....

发表于 09-10 09:07 134次 阅读
笔记本选Q9000还是X9100? q9000和x9100区别对比

CPU T9500与Q9000的区别 浅谈CPU T9500性能参数

同等系列条件下看主频和2级缓存,主频差不多,2级缓存就是影响性能的关键因素。比如T6400和P735....

发表于 09-10 08:58 244次 阅读
CPU T9500与Q9000的区别 浅谈CPU T9500性能参数

q9000 cpu的参数、性能分析

酷睿2四核Q9000 优点:原生四核心设计,具有不错的游戏性能 缺点:发热量较大。

发表于 09-10 08:47 71次 阅读
q9000 cpu的参数、性能分析

2017英特尔®大学游戏展示

Beatstep Cowboys is a rhythm-based, real-time stra....

的头像 英特尔 Altera视频 发表于 09-10 05:35 125次 观看
2017英特尔®大学游戏展示

《光环大战2》进行优化在英特尔®集成图形的运行结果

Halo Wars 2 has been optimized to run great on Int....

的头像 英特尔 Altera视频 发表于 09-10 05:10 135次 观看
《光环大战2》进行优化在英特尔®集成图形的运行结果

如何在英特尔®SGX中密封数据

There are situations where your Intel® Software Gu....

的头像 英特尔 Altera视频 发表于 09-10 04:17 178次 观看
如何在英特尔®SGX中密封数据

推荐系统是什么?如何构建一个推荐系统?推荐系统与AI有什么关系?

推荐系统是信息过滤系统的一个子类,它根据用户的偏好和行为,来向用户呈现他(或她)可能感兴趣的物品。推....

的头像 Linux爱好者 发表于 09-09 11:16 456次 阅读
推荐系统是什么?如何构建一个推荐系统?推荐系统与AI有什么关系?

浅析STM32之GPIO结构

如果CPU写入的是逻辑1,则编号3的N-MOS管将处于关闭状态,此时IO端口的电平将由外部的上拉电阻....

发表于 09-09 10:16 188次 阅读
浅析STM32之GPIO结构

让CPU更接近数据 Serverless成为计算存储的关键

OpenIO开发开源软件把对象存储和计算结合起来,通过和计算存储硬件公司合作,把CPU放到存储中。计....

的头像 ssdfans 发表于 09-08 10:25 488次 阅读
让CPU更接近数据 Serverless成为计算存储的关键

大多数人购买CPU时会踏入的误区

我们在组装电脑时,CPU、主板和显卡往往是我们最关注的三个部件,这也被称为组装电脑的最重要的三个部件....

发表于 09-07 17:33 159次 阅读
大多数人购买CPU时会踏入的误区

一文了解CPU、GPU和TPU的区别

很多读者可能分不清楚 CPU、GPU 和 TPU 之间的区别,因此 Google Cloud 将在这....

的头像 EETOP 发表于 09-06 16:53 633次 阅读
一文了解CPU、GPU和TPU的区别

什么是单片机?51单片机教程之单片机简单介绍免费下载

一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序....

发表于 09-06 16:03 48次 阅读
什么是单片机?51单片机教程之单片机简单介绍免费下载

伏达半导体与中天微签署C-SKY CK902授权协议

伏达半导体有限公司与中天微系统有限公司签署C-SKY CK902授权协议,成为中天微支持RISC-V....

的头像 芯师爷 发表于 09-06 14:20 435次 阅读
伏达半导体与中天微签署C-SKY CK902授权协议

解析:为何TPU比CPU快80倍

 我们生活在一个技术推动整个文明基石的时代。但是,尽管拥有所有辉煌的发明和技术进步,今天世界比以往更....

的头像 人工智能 发表于 09-06 11:29 485次 阅读
解析:为何TPU比CPU快80倍