嵌入式开发arm技术JTAG接口解读_第1页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式开发arm技术jtag接口解读通常所说的大致分两类,一类用于测试芯片的电气特性,检测芯片是否有问题;一类用于debug;普通支持的cpu内都包含了这两个模块。 一个含有 debug接口模块的cpu,只要时钟正常,就可以通过jtag接口拜访cpu的内部寄存器和挂在cpu上的设备,如flash,ram,soc(比如4510b,44box,at91m系列)内置模块的寄存器,象uart,timers,gpio等等的寄存器。上面说的只是jtag接口所具备的能力,要用法这些功能,还需要软件的协作,详细实现的功能则由详细的软件打算。例如下载程序到ram功能。了解soc的都知道,要用法外接的ram,需要

2、参照socdatasheet的寄存器解释,设置ram的基地址,总线宽度,拜访速度等等。有的soc则还需要remap,才干正常工作。运行firmware时,这些设置由firmware的初始化程序完成。但假如用法jtag接口,相关的寄存器可能还处在上电值,甚至时错误值,ram不能正常工作,所以下载必定要失败。要正常用法,先要想方法设置ram。在adw中,可以在console窗口通过let 指令设置,在axd中可以在console窗口通过set指令设置。 下面是一个设置at91m40800的指令序列,关闭中断,设置cs0-cs3, 并举行remap,适用于axd(ads带的debug) setmem

3、 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=0x0100253

4、d -设置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格式,或类似的格式,包含有目标码运行地址,运行地

5、址在link时候确定。debug下载程序时按照elf文件中的地址信息下载程序到指定的地址。假如在把ram的基地址设置为0x10000000, 而在编译的时候指定firmware的开头地址在0x02000000, 下载的时候,目标码将被下载到0x02000000,明显下载会失败。 通过jtag下载程序前应关闭全部中断,这一点和firmware初始化时关闭中断的缘由相同。在用法jtag接口的时候,各中断的使能未知,尤其是flash里有可执行码的状况,可能会有一些中断被使能。用法jtag下载完代码,要执行时,有可能由于未完成初始化就产生了中断,导致程序异样。所以,需要先关闭中断,普通通过设置soc的

6、中断控制寄存器完成。用法jtag写flash。在理论上,通过jtag可以拜访cpu总线上的全部设备,所以应当可以写flash,但是flash写入方式和ram大不相同,需要特别的指令,而且不同的flash擦除,编程指令不同,而且块的大小,数量也不同,很难提供这一项功能。所以普通debug不提供写flash功能,或者仅支持少量几种flash。目前就我知道的,针对arm,惟独flashpgm这个软件提供写flash功能,但用法也十分棘手。axd,adw都不提供写flash功能。我写flash的办法时是,自己写一个容易的程序,特地用于写目标板的flash,利用jtag接口,下载到目标板,再把要烧写的目

7、标码装成bin格式,也下到目标板(地址和烧flash的程序的地址不同),然后运行已经下载的烧flash的程序。用法这种方式,比起flashpgm的写flash,速度似乎要快一些。 关于容易jtag电缆。 目前有各式各样容易jtag电缆,其实只是一个电平转换,同时还起到庇护作用。jtag的规律则由运行在pc上的软件实现,所以在理论上,任何一个容易jtag电缆,都可以支持各种应用软件,如debug等。我就曾用法同一个jtag电缆写 ,axd/adw调试程序。关键再于软件的支持,大多数软件都不提供设定功能,因而只能支持某种jtag电缆。 关于容易jtag电缆的速度。jtag是串行接口,用法打印口的容

8、易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接口,系统和微机之间通过/ethernet相连,这要求用法。 2。用法cpld/提供jtag接口,cpld/fpga和微机之间用法epp接口(普通微机打印口都支持epp模式),epp接口完成微机和cpld/fpga之间的数据传输,cpld/fpga完成jtag时序。 这两种办法本人都实现过。第一个办法可以达到比较高的速度,实测超过了200kbyte/s(注重:是byte,不是bit);但是相对来说,硬件复杂,创造相对复杂。其次种相对来说,下载速度要慢一些,最快时达到96kbyte/s,但电路

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论