嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf_第1页
嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf_第2页
嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf_第3页
嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf_第4页
嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

嵌入式芯片ARM7开发套件的研究优秀毕业论文 参考文献 可复制黏贴.pdf.pdf 免费下载

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

文档简介

y1 0 2 1 8 3 9 饭旦大学 硕士学位论文 专业学位 嵌入式芯片a r m 7 开发套件的研究 学校代码 学号 院系 所 信息科学与工程学院 专业 电子与通信工程 姓名 金尔雅 指导教师 俞承芳教授 完成日期 2 0 0 6 年9 月9 日 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果 论文中 除了特别加以标注和致谢的地方外 不包含其他入或其它机构已经发表或撰写 过的研究成果 其他同志对本研究的启发和所做的贡献均已在论文中作了明确 的声明并表示了谢意 作者签名 衅喃地纽尸 论文使用授权声明 本入完全了解复旦大学有关保留 使用学位论文的规定 即 学校有权保 留送交论文的复印件 允许论文被查阅和借阅i 学校可以公布论文的全部或部 分内容 可以采用影印 缩印或其它复制手段保存论文 保密的论文在解密后 遵守此规定 作者签名 嵌入式芯什a r m 7 开发套件的研究 摘要 本文研究了基于s t 公司的微控制器实现一个全功能的a r m 7 t d m i 芯片嵌 入式系统的丌发套件 本文主要研究了调试器和开发板的设计和实现 调试器的研究包括了j 1 a g 接口 u s b 接口和调试器的开发环境接口三个方面 即用微控制器内部的协处 理器模拟实现j t a g 通信 用微控制器的u s b 接口实现与p c 机的通信 使用 了微软认证的大容量存储设备 m a s ss t o r a g ed e v i c e 的u s b 驱动使微控制器与 p c 通信 构造 个上位机开发驱动和一个兼容a r m 公司的r d i 协议和i a r 公 司的c s p y 协议的第三方调试器驱动 实现各个调试操作并与开发环境无缝连 接 此调试器利用a r m 7 t d m i 指令系统构架和芯片内部e m b e d d c d i c e r t 调试 模块和t a p 控制器实现对a r m 7 t d m i 芯片的调试 在a i t m 7 t d m i 芯片内部 的r a m 中运行烧写f l a s h 的代码 实现对a r m 芯片f l a s h 的编程 本文还 设计一块具有u s b 接口 r s 2 3 2 接口 a d 转换模块 按键 l e d 灯和7 段l e d 显示等外设的开发板 本文详述了以上内容的实现方式和原理 并探讨了如何提高调试器的运行效 率 根据本文设计的方案 可以实现一个高效和全功能的调试器和一个通用的带 调试器的丌发套件 调试器可以与a r m 公司和i a r 公司的开发环境无缝结合 完成所有的调试操作和f l a s h 代码的烧写 开发套件除了可以完成软件的调试 和f l a s h 的烧录外 还提供了一个硬件平台 帮助a i t m 芯片的接触者和使用 者熟悉 了解a r m 芯片的内部系统构架和集成的外设 也帮助电子产品的设计 者 特别是工控领域的设计者 熟悉和掌握工控行业的领先a r m 7 t d m i 内核产 品s t r 7 1 x 系列 并开发产品 关键词 a r m 7 t d m i j t a g 调试 s t r 7 1 x 丌发板 中图分类号 t n 7 嵌入式芯片a r m 7 开发套件的研究 a b s t r a c t t h i sp a p e rr c s e a r c h e sh o wt ou s et h eg e n e m lm i c r o c o n t r 0 1 l e rt oi m p l e m e n tt h e f u l l f u n c t i o n a ld e v e l o p m e mk i tf o r t h ea r m 7 t d m ic o r e t h i sd o c m e n t a t i o nd e s c r i b e sh o wt oi m p l e m e mi t t h er e s e a r c ho f t h cd e b u g g e r i n c l u d e st h ej t a gi n t e r f k e u s bi n t e r f a c ea n dt h ei n t e r f a c ew i t ht h ed e v e l o p m e n t e n v i r o n m e n t i tm e a n su s i n gt h ec o p r o c e s s o ro f t h em i c r o c o n t m l l e rt oi m p l e m e n tt h e j t a gc o m m u n i c a t i o nw i t ha r m 7 t d m i u s i n gt h em i c r o c o m r o l l e rt oi m p l e m e n t 血e u s bi n t e r f a c ea 1 1 dc o m m u l l i c a c ew i t hp ct h m u 曲t l l em a s ss t o r a g ed r i v e rw h i c hi s a u m e n t i c a t e db ym i c r o s o rw i n d o w ss y s t c m a n db u i l d i n gt l ed l lc o m p 砒i b l e v i m t h er d ia n dc s p yp r o t o c o lw h i c h 行o ma r ma 1 1 di a r c o m p a n yt om a k et h e d e b u g g e rc o u l e db eu s e di na r ma n di a r se m b e d d e dw o i k b e n c h t h ed e b u g g e r u s e st h ei n s t r u c t i o no fa r m 7 t d m i e m b e d d e d i c e r tm o d u l ea n dt a pc o n t r o l l e r o f 血ec o r et oi m p l e m e n tt h ed e b u g0 p e r a t i o n n i n n i n gt h ec o d eo f t h ef l a s h l o a di nt h e i n t e m a lr a mt oi m d i e m e mt h ef 1 a s hl o a d e r i na d d i t i o n t h i sd o c u m e n t a t i o na l s o d e s c r i b e sh o wt od e s i g nad e v e l o p m e n tb o a r do f a r m 7 t d m lw i t ht h ed e b u g g e r e m b e d d e d a n dt h ep e r i p h e r i e si n c l u d e da r eu s bi n t e r f h c e r s 2 3 2i n t e r f l 屺e a d m o d u l e k e ym o d u l ea 1 1 dt h ed i s p l a ym o d u l e t h i sd o c u m e n t a t i o ne x p l a i n sa l lo f t h et l l e o r i e sa 1 1 dt 1 1 em e m o d st oi m p l e m e n tt h e d e b u g g e ra n dt h ed e v e l o p m e mb o a r d a i l dd i s c u s s e sh o w t oe n h a n c et h ce m c i e n c yo f t h ed e b u g g e r a c c o r d i n gt ot h es o l u t i o nd e s c m e di nt h i sp 印e r w ec a nd e v e l o pa ne m c i e n c i a l a n df u l l f u n c t i o n a ld e b u g g e ra n dad e v e l o p m e n tk i to fa r m 7 t d m i t h ed e b u g g e r c o u l du s e di n 也ew o r k b e n c ho f t h ei a ra i l da r m i m p l e m e n t i n ga l lm eo p e r a t i o no f t h ed e b u gi n c l u d i n gt h en a s hl o a d e d w h i l et h ed e v e l o pe v e np r o v i d sah a r d w a r e p l a t f b n ni na d d i t i o n h e l p s l 血es t a n e r sa 1 1 dt h eu s e r so f a r mk 1 1 0 wa n dr e a l i z et h e c o r ea n dt h ep e r i p h e r a l so ft h ec h i po fa r m 7 t d m ic o r e a n da l s oh e l p st h ee n g i n e e r s e s p e c i a l l yt h eo n ed e s i g n i n gt h ei n d u s t r i a lp r o d u c tr e a l i z ea n dm a s t e rt h e1 e a d e r s h i p p r o d u c ti nt h ei n d u s t r i a lf i e l d s t r 7 1x a n du s ei tt oi m p l e m e mt h ep n d j e c t 5 嵌入式芯片a r m 7 开发套件的研究 k e y w o r d s a r m 7 t d m i j t a g s t r 7lxd e v e l o p m e n tb o a r d c l a s s i f i c a t i o nc o d e t n 7 6 嵌入式 出 a r m 7 开发套件的研究 1 1 论文背景 第一章前言 近年来 随着电子产品越来越多的融入到人们的f i 常生活中 对电子产品性 能和智能化的要求也越来越高 目前来看 占据主流地位的电子产品控制器仍然 是8 位的处理器 但3 2 位的处理器由于其相对于8 位处理器在性能上飞越性的 提升和在运行操作系统上的优势 却是未来的潮流趋势 在2 0 0 3 年 3 2 位处理 器的市场规模是2 5 亿美元 而其后的几年年增长率都在2 5 左右 鉴于3 2 位 处理器应用的迅速发展 越来越多的公司开始推出3 2 位的处理器 同时越来越 多的公司丌始使用3 2 位处理器也就不难理解了 3 2 位处理器市场上的成功者无疑是a r m 公司 a r m 公司自1 9 9 0 年成立 以来 l o 多年间推出了许多3 2 位r i s c 结构的微处理器内核 当前比较流行的 内核有a r m 7 t d m i s t r o n g a r m a r m 7 2 0 t a r m 9 t d m i a r m 9 2 2 t a r m 9 4 0 t 及a r m l o t d m i 等 其特点是功耗低 性能高 成本低 安全性高和代码密度 高 1 1 1 m b 指令 事实上a r m 的3 2 位处理器核几乎成了通用3 2 位处理器核 的标准 其中a r m 7 t d m i 作为一款低端的3 2 位 s c 处理器内核 无论是在 国外还是在国内 在通用处理器市场中的使用最为广泛 在国内 近年来众多的半导体芯片厂家开始引进a r m 芯片 国内的电子产 品生产厂商也开始接触和使用a r m a r m 芯片既在内部提供了高效的指令处 理能力 又在外部集成了越来越多的外设 必将成为嵌入式系统设计的主流 可 以预想 随着a r m 芯片在国内进一步的推广和成本的进一步下降 将有更多的 电子产品厂商丌始使用a r m 因此对于电子工程师们来说 学习和使用a r m 是当务之急 然而要在中国接触 学习和使用a r m 芯片 一大瓶颈是a r m 的丌发套件 一般来说 开发套件包括调试器 开发板和设计环境3 部分 本文的重点在调试 器和丌发板的研究 设计和实现 就调试器而言 目前在国际上通用的调试器是a r m 公司的r e a l v i w e 系列 i a r 公司的j l i n k 系列等 这些调试器经历了时阿的考验 无论是在功能还是在 性能稳定方面都有着非常高的优势 但是对于中国的使用者 特别是一些对价格 敏感的项目设计者来说 a r m 调试调试器几千上力元的价格限制了a r m 技术 嵌入式芯片a r m 7 开发套件的研究 的推广 而中国的调试器起步较晚 相对于国外的产品来说 虽然价格可以下降 到千元左右 但在功能设计和稳定性等方面都有所欠缺 至今为止 也没有一款 能在国内通用的调试器产品 因此设计一款调试效率高的调试器对于 a r m 7 t d m i 技术的推广是十分有意义的 就丌发板而占 主要是设计一款具有u s b 接口 r s 2 3 2 接口 a d 转换 模块 按键 l e d 灯和7 段l e d 显示等外围设备的开发板 并将a r m 的所 以的i o 口全部引出 提供开发板的进一步的扩展功能 使用户可以通过使用这 个开发板 熟悉a r m 7 t d m i 芯片内核架构和运行流程 了解s t r 7 1 1 芯片的启 动方式选择 掌握s t r 7 1 1 通用外设的设哥和使用 中断控制流程 进而掌握嵌 入式系统的设计方法 1 2研究目的 如上所述 本文的重点在调试器和开发板的研究 设计和实现 目前国内a r m 芯片的调试调试器常见的是使用串口转j t a g 或者并口转 j t a g 模块实现的 此种调试器实现简单 所以较为常见 但是缺点是明显的 一是速度有限 在调试1 0 0 k 字节以上的a r m 代码时 下载代码的时涮非常长 另一个缺点是这种调试器无法提供芯片电源 需要目标板有额外的供电 有时目 标板引出的供电稍微有些偏差就有可能无法启动调试器的f p g a 模块 同时 市场上也有少数的u s b 接口的调试器 一方面 u s b 全速通道能提 供1 2 m b p s 的速率 另一方面u s b 接口能提供5 v 最高5 0 0 m a 的供电 因此 使用u s b 接口无疑是一个理想的方案 但是u s b 的协议非常复杂 p c 端的驱 动 特别是一个能高效的利用u s b 带宽的驱动不容易实现 因此市场上的u s b 接口调试器大多采用自编的驱动软件 传输速率往往受到驱动程序的限制 不能 完全的发挥u s b 的优越性 而且价格都比较高 另外 国内市场上的调试器和国外的相比 在功能上都不是很全面 有些不 能实现烧录f l a s h 功能 只能在r a m 中调试代码 有些不能实现软件断点 只 能实现2 个硬件断点等等 针对上述问题 本文将调试器的研究重点放在j t a g 接口 u s b 接口和调 试器的丌发环境接口三个方面 目前在通用领域 特别是在工业控制领域比较有代表性的a r m 7 t d m i 内核 嵌入式芯t 叶a r m 7 开发套件的研究 芯片是s t 公司的基于a r m 7 t d m i 内核的s t r 7 1 x s t r 7 3 x 和s t r 7 5 x 系列 芯片 s t 公司的a r m 7 t d m i 系列芯片在内部集成大容量的r a m 和f l a s h 不需要外扩存储设备 即降低了成本又提供了安全性 不同的系列提供了不同的 外设 包括最新流行的e m i c a n s m a r tc a r d h d l c b s p i 等接口 s t r 7 3 x 系列提供了5 v 的i o 口 s t r 7 5 x 系列更在内部集成了马达控制模块 s t 公司 的这一系列a r m 7 t d m i 芯片无疑是工控业界的领先者 因此本文使用s t 公司的通用单片机s t 7 2 6 5 1 设计了针对a r m 7 t d m i 芯 片的调试器 用单片机s t 7 2 6 5 1 的i o 口实现了j t a g 接口的设计 用s t 7 2 6 5 l 的u s b 接口 借用微软认证的大容量存储设备 m a s ss t o r a g ed e v i c e 驱动 极 高的利用了u s b 传输带宽 提高了调试器的效率 具有能比拟国外通用调试器 的性能 调试器的丌发环境接口 则提供一个支持a r m 的r d i 和i a r 的c s p y 协议的第三方调试器的驱动 能使用所有支持这些协议的开发环境和c 编译器 此调试器还能实现包括烧写程序代码到片内f l a s h 软件断点等附加功能 开发套件的丌发板部分扩展了a r m 芯片常见的一些外设 比如u s b 接口 r s 2 3 2 接口 a d 转换模块 按键 l e d 灯和7 段l e d 显示等 并将i o 口全部引出 提供开发板的进一步的扩展功能 1 3论文结构 本篇论文的结构如下 第一章介绍本文的背景和目的 第二章为a r 7 t d m i 芯片调试原理 在介绍了a r m 7 d m i 核 a r m 7 t d m i 芯片内部的 e m b e d d e d i c e r t 调试模块 以及t a p 控制器模块的基础上论述使用这些模块 调试a r m 7 t d m i 芯片的原理 第三章为基于s t 7 2 6 5 l 的a 砌 7 t d m i 芯片调试 器方案 在介绍s t 公司的通用单片机s t 7 2 6 5 1 的基础上 从调试器j t a g 接口 调试器与p c 机通信的u s b 接口以及调试软件接口三个方面 论述了用s t 7 2 6 5 l 实现a r m 7 调试器的方案 第四章为基于s t r 7 1 x 芯片的开发板设计 介绍了 s t 公司的通用a r m 7 t d m i 芯片s t r 7 1 x 系列 以及用该芯片设计的提供了u s b 接口 r s 2 3 2 接口 a d 转换模块 按键 l e d 灯和7 段l e d 显示等外设 的丌发板 第五章为总结和展望 对全文的设计进行了总结 并提出了此项技术 进一步发展的方向 嵌入式芯片a r m 7 开发套件的研究 第二章a r 7 t d m i 芯片调试原理 2 1a r m 7 t d m i 核概述 a r m 7 t d m i 是a r m 公司推出的一款3 2 位r i s c 架构的微处理器核 是目 前使用最为广泛的一款a r m 内核 由于使用了精简指令集 为高效实时的处理 提供了方便 与其他a r m 内核一样 在a r m 7 t d m i 内部也实现了多级流水线机制 与 传统的微处理器中单级流水线相比 多级流水线机制允许处理器同时处理多条指 令 并能连续处理指令的执行和存储器的读写 极大的提高了指令的处理效率 a r m 7 t d m i 内部实现的是三级流水线 分别为取指 译码 执行 l 取指译码执行 l坠塑i堡塑垫堡l 取指 i 译码执行 这就意味着在理想条件下 当第一条指令在执行时 第二条指令已经在译 码中 而第三条也 f 在从存储器中取出来 处理器的空闲时间得到了充分的利用 不过需要值得注意的是 当i j p c 指针指向的是 f 在取指的指令的地址而非 f 在 执行的指令的地址 a r m 7 t d m i 内核使用冯诺依曼结构 指令和数据共享3 2 b j t 的数据总线 并且只有l o a d s t o r e 和s v a p 指令才涉及存储器操作 数据可分别以8 b i t 字节 1 6 b i t 半字 3 2 b i t 字 长度来读写 但字必须4 字节对齐 半字必须2 字节对齐 a r m 7 t d m i 内核支持2 种指令模式 分别为3 2 位的a r m 指令和1 6 位的 t h u m b 指令 a r m 7 t d m i 的指令和数据长度都是固定的 与1 6 位的t h u m b 指令相比 3 2 位的a r m 指令在处理3 2 位的数据上更有优势 并且能更有效率的寻址更大 的存储器空问 而1 6 位的t h u m b 则在代码的压缩率上更有优势 a r m 7 t d m i 内核的框架如图2 1 所示 嵌入式芯 a r m 7 开发奁件的研究 r 坼e o 们1 e x t e r n 0 t c ht m sn t r 8tt 删t 图2 1a r m 7 t d m i 内核框架图 a r m 7 t d m i 内核 c p uc o r e 分为处理器模式模块 总线控制模块 存储 接口模块 存储器管理接口模块 协处理器接口模块 中断模块 时钟模块 配 置模块和电源模块 由于对c p u 内核的调试涉及到存储接口模块和存储器管理 接口模块 因此 如图2 1 所示 这两个模块的信号a 3 1 0 d 3 1 o n r w 等一直处于内部调试模块e m b e d d e d i c e r t 的监视下 外部的调试器可以方便的 通过e m b e d d e d i c e r t 模块操控内核运行 获得内核运行信息 并在特定的信 息下 如数据总线上出现的特定的数据 或者地址总线上出现的特定的地址 停止内核c p u 的运行 t a p 控制器是外部调试器的媒介 外部调试器通过t c k t m s n t r s t t d i t d o 这5 根信号线与t a p 控制器通信 而t a p 控制器则通过j t a g 链1 来截取或者替换c p u 内核数据总线上的数据 通过j t a g 链2 读写e m b e d d e d 巍一 m n 嵌入式芯片a r m 7 开发套件的研究 i c e r t 模块的内部寄存器 控制c p u 内核的运行 2 2e m b e d d e d i c e r t 模块概述 a r m 7 t d m i 内核的调试仿真方式与传统的微控制器的调试仿真方式不同 由于e m b e d d e d i c e r t 这一内部调试模块的存在 a r m 7 t d m i 内核的调试仿 真是一种真 f 意义上的调试仿真 调试代码运行在c p u 内核中 如上节所述e m b e d d e d i c e r t 调试模块实 时的监控着c p u 内核的数据 地址总线和相对应的一些读写控制信号线 当调 试代码相关的指令地址或者操作数据与外部调试器所需要的值相匹配时 e m b e d d e d i c e r t 模块可以在匹配发生时即停止c p u 内核的运行 使c p u 内 核进入调试状态 并将c p u 内核的运行时钟替换为j t a g 信号线中的t c k 信号 在t c k 信号的驱动下 外部调试器再通过写数据总线 将调试代码写入c p u 内 核运 于 并在正确的t c k 时钟周期时读或者写数据总线 完成一系列的测试操 作 当整个调试操作结束时 通过设置e m b e d d e d i c e i h 模块的控制寄存器 该模块将重新切换c p u 内核的运行时钟 并使内核在与之前停止时相同的软硬 件环境下继续运行代码 总之a r m 7 t d m i 内核的仿真调试是一个真 f 意义上的 实时仿真调试 所有的调试操作都嵌入被调试代码的运行过程中执行 实时的监 控被调试代码的运行 并完全不破坏被调试代码的运行 e m b e d d e d i c e r t 模块与其他模块的实际信号线连接如图2 2 所示 外部 调试器通过t c k t m s t d i t d o 和n t r s t 信号与t a p 控制器通信 t a p 控制器则通过s d o u t s d i n 和c 0 n t r o l 三组信号与e m b e d d e d i c e r t 模块 通信 e m b e d d e d i c e r t 模块实时监控者c p u 内核的a 3 1 0 d 3 1 0 n 0 p c n r w 和b r e a k p t i 等信号以获得内核的运行信息 并通过d b g a c k d b g r 0 d b g e n 等信号控制c p u 内核的运行 e m b e d d e d i c e r t 模块内部的控制寄存器分为两组实时断点控制寄存器集 一组调试通信通道d c c 寄存器集 调试控制寄存器 调试状态寄存器 中止寄 存器和调试控制数据寄存器 如表2 一l 所示 实时断点控制寄存器集用来设置产生各类断点的地址匹配 数据匹配或其他 各类匹配信息 并设置这些匹配的断点 使e m b e d d e d i c e r t 调试模块在监视 c p u 内核的数据 地址总线和各类读写控制信号时 能根据断点寄存器集中设 嵌入 芯 a r m 7 开发套件的研究 置的断点匹配信息 产生断点 使c p u 内核停止当前的运行进入调试状态 一d b g r 0 l 上 一a 1 3 10 l 一 一d 1 3 1 0 j 一n o p c 一e x l e r n l n 黜 一e x e r n 0 一t b l t 一r n g e o u t o a f 训c p um a i n 一m a s o l m b e 州e d f c b r t r n 雠o u t l p r c e s s o r1 0 引c l o g i c n t r p 口幅 啼 一口b g c k d b g a c k f 一b r k p 了一 一8 r 雠矾一 一o e g f q 一 一僻e n 一 一d 日g e n 一e c l k 一n m r e o 斗 s d o u ts d i nc o n t r o l r a p 图2 2e m b e d d e d i c e r t 模块连接图 表2 1e m b e d d e d i c e r t 模块内部寄存器 地址长度 b i t 定义 o 0 0 0 15调试状态寄存器 o 0 0 1 01 中止寄存器 o o l o o 6调试控制寄存器 0 0 1 0 l3 2调试控制数据寄存器 0 1 0 0 03 2断点o 地址寄存器 0 1 0 0 1 3 2断点o 地址屏蔽寄存器 o 1 0 1 03 2断点o 数据寄存器 0 1 0 1 l3 2断点0 数据屏蔽寄存器 嵌入式芯片a r m 7 开发套件的研究 0 1 1 0 09断点o 控制寄存器 o l l o l 8断点o 控制位屏蔽寄存器 l o o o o3 2断点l 地址寄存器 1 0 0 0 l 3 2断点1 地址屏蔽寄存器 1 0 0 1 03 2断点1 数据寄存器 1 0 0 1 l 3 2断点1 数据屏蔽寄存器 1 0 1 0 09断点1 控制寄存器 1 0 1 0 l8断点1 控制位屏蔽寄存器 调试控制寄存器能使e m b e d d e d i c e r t 模块产生控制c p u 内核运行的 些信号 具体定义如表2 2 所示 表2 2 调试控制寄存器 l 5 4321 o e m b e d d e d i c e r tm o n i t o rm o d es b z i n t d i s d b g r q d b g a c k d i s a b l ee n a b i er a z 其中b i t 5 定义为 启动或者禁止e m b e d d e d i c e r t 模块的比较输出功能 该功能主要用来在数据或者地址等与断点相关的匹配信息发生匹配日i 产生相应 的匹配信号通知c p u 内核 b i t 4 决定了当断点匹配发生时 内核的处理模式 当该位为o 时 内核将 进入征常的断点状念 当该位为1 时 内核将在断点时产生一个中止异常 b i t 3 无意义 必须保持为o b i t 2 用柬启动或者禁止内核的中断功能 当该位为高时 内核将禁止中断 该位为低时 内核允许中断 b i t l 用来产生d b g r q 信号线上的信号 该信号线将决定c p u 内核的运行 和调试模式 b i t o 用来产生d b g a c k 信号线上的信号 该信号线是c p u 内核运行状态 的反应 调试状态寄存器用来获取c p u 内核运行状态的信息 具体定义如表2 3 所示 嵌入式芯 a r m 7 开发食件的研究 表2 3 调试状态寄存器 43210 t b i t c g e n l i f e n d b g r qd b g a c k b i t 4 指示了当前所使用的指令模式 t h u m b 或者a r m b i t 3 指示了当前访问存储器的指令是否己完成 该位主要用来在调试状态下 判断与存储器相关的指令是否已在运行模式的时钟下完成 b i t 2 指示了当前的c p u 内核是否允许中断 b i t l 反应了d b g r o 线上的信号 b i t o 反应了d b g a c k 线上的信号 当对调试控制寄存器中的b i t o 和b i t l 位进行设置时 需要读取调试状态寄 存器的b i t o 位和b i t l 位 以确认对d b g r q 信号和d b g a c k 信号的改写已成 功 中止寄存器只有在m o n i t o r 模式下才有意义 不在本文的讨论范围内 e n l b e d d e d i c e r t 模块中的d c c 调试信息通道 用于在内核和调试器问 传递信息 对于d c c 的操作 需要使用协处理器指令m r c 和m c r 在t h u m b 指令模式下调试代码时 由于t h u m b 指令不支持协处理器指令 所以必须先 切换指令模式到a r m 模式 d c c 由以下几个部分组成 3 2 b i t 的读数据寄存器 3 2 b i t 的写数据寄存器 3 2 b i t 的通信控制寄存器 3 2 b i t 的通信控制寄存器定义如图2 3 所示 e r t l b e d d e d l c e c o n l r o l v e r s i o n r e s e r v e d b i l s 厂l i 厂 3 13 02 92 8 2 7210 o 10o wr l ld c cd a t 鲁r e a dr e g l s l e r d c cd a t av v r i l er e 剑s i e r 图2 3d c c 通信控制寄存器 b i t3 l 一2 8 用于表示当前e m b e d d e d i c e r t 模块的版本号 b i t2 7 2 保留 嵌入式芯 a r m 7 开发套件的研究 b i t1 1 d c c 写寄存器内已有数据 调试器可以读出 0 d c c 写寄存器已准备好从内核接收数据 b i to l d c c 读寄存器未准备好 o d c c 读寄存器已准备好从调试器接收数据 当c p u 内核需要向调试器传递消息时 c p u 内核必须首先检测通信控制寄 存器b i t o 位 以确定前一次的消息是否已被调试器接收 如果该位为o 则表 示d c c 已准备好 c p u 内核可以向写寄存器写数据 同样 当调试器需要向内 核传递信息时 也需要首先检测通信控制寄存器的b i t 0 位 以确认读寄存器是 否为空 当该位为0 时 调试器可以将数据写入到d c c 读寄存器中 同时d c c 控制寄存器的b i t o 位会被置高 通知内核调试器有数据传入 2 3t a p 控制器概述 j t a g 是j o i n tt e s ta c t i o ng r o u p 的缩写 符合i e e e 标准11 4 9 1 2 0 0 1 t p a t e s t a c c e s s p o r t 是j t a g 定义的接口 在物理上一共定义了5 个引脚 分别 是t d i t c k t m s t d o 和n t r s t 可选 各引脚的定义如表2 4 所示 t a p 控制器在t c k 信号的上升沿时采样t m s 和t d i 信号线上的信号 在t c k 信号的下降沿时改变t d 0 线上的输出信号 表2 4j t a g 信号定义 引脚类型定义 t c k输入提供模块时钟 t d i输入串行数据输入 t m s输入控制信号输入 t d o输出串行数据输出 n t r s t输入 可选 复位信号输入 t a p 控制器是一个同步的状态机 在t m s 信号的控制下切换状态并执行不 同的操作 其状态转移如图2 4 所示 r e s e t 状态为t a p 控制器的复位状态 无论t a p 控制器当前处于哪个状 态 任意超过5 个的连续t m s 高信号 都将使t a p 回到r e s e t 状态 由于t a p 的状态在t a p 控制器连上外部调试器的时候是不定的 因此外部控制器需要连 续发送至少5 个t m s 高信号 以使t a p 控制器同步并复位 嵌入式芯 a r m 7 开发套件的研究 在r e s e t 状态下t a p 控制器收到一个t m s 的低信号 将使状态转移到 r u n t e s t i d l e 状念 在该状态下 如果当前c p u 内核数据总线上的指令是 需要执行的指令 则指令将被执行 执行次数由在r u n t e s t 状态下收到的t m s 低信号次数决定 如果当前数据总线上的指令不能被执行 则该状态为i d l e 状 态 总线上信号保持不变 图2 4t a p 控制器状态转移图 在r u n t e s t i d l e 状态下 如果收到一个t m s 高信号 状态机将切换到 d r s c a n 状态 在d r s c a n 状态下 t a p 控制器的数据寄存器被选中 如果 下一个t m s 信号为低 t a p 进入c a p t u r e d r 状态 如果下一个t m s 状态 为高 t a p 则进入i r s c a n 状态 在c a p t u r e d r 状态下 如果当前所选定的数据寄存器有效并且载入数据 是必须的 数据将被并行载入数据寄存器 反之 则数据寄存器保持原先数值 嵌入式芯片a r m 7 开发套件的研究 在该状态下 一个高t m s 信号将导致t a p 进入e x i t l d r 状态 而一个低t m s 信号将导致t a p 进入s h i f t d r 状态 在s h i f t d r 状态下 t d i 上的信号将作为数据 在每个t c k 信号的上升 沿串行的移入选定的数据寄存器 此时 t m s 必须保持为低 如果数据的串行 移位完成 t m s 在最后一个数据位的t c k 上升沿时变为高 使t a p 控制器进 入e x i t l d r 状态 e x i t l d r 状态为一个中间状态 如果下一个t m s 信号为高 t a p 控制器 进入u p d a t e d r 状态 如果为低 t a p 控制器则进入p a u s e d r 状态 p a u s e d r 状态为一个暂停状态 如果t m s 信号保持为低 数据将一直被 保持在数据寄存器中 直到t m s 信号变高 t a p 控制器进入e x i t 2 d r 状态 e x i t 2 d r 也为一个中间状态 如果下一个t m s 信号为高 t a p 控制器进 入u p d a t e d r 状态 如果为低 t a p 控制器将回到s h i f t d r 状态 u p d a t e d r 状态下 数据将根据当前的指令被锁存在数据移位寄存器中 下一个t m s 信号如果为高 t a p 控制器进入d r s c a n 状态 如果为低 则进 入r u n t e s t i d l e 状态 i r s c a n 同d r s c a n 一样是一个过渡的中间状态 下一个t m s 信号如果 为高 t a p 控制器将回到r e s e t 状态 如果为低 t a p 控制器则进入 c a p t u r e i r 状态 在c a p t u r e i r 状态下 指令寄存器中的移位寄存器将载入一个固定的数 值 而当前指令和数据寄存器中的数值保持不变 下一个t m s 信号如果为高 t a p 控制器进入e x i t l i r 状念 如果为低 控制器则进入s h i f t i r 状念 s h i f t i r 状态类似于s h i f t d r 状态 指令寄存器中的移位寄存器将移位 载入t d i 在t c k 上升沿时的数值 此时t m s 必须保持为低 直到指令的移位 输入完毕 t m s 在最后一个指令位的t c k 上升沿时变高 使t a p 控制器进入 e x i t l 一i r 状态 在该状态下 指令和数据寄存器中的数值保持不变 e x i t l i r 与e x i t l d r 相同 是一个中间状态 如果下一个t m s 信号为高 t a p 控制器进入u p d a t e i r 状态 如果为低 控制器进入p a u s e i r 状念 p a u s e i r 状态为暂停状态 如果t m s 保持输入低信号 所有数值保持原 先状念 直到t m s 变高 使t a p 控制器进入e x i t 2 i r 状态 e x l t 2 i r 为一个中间状态 下一个t m s 信号如果为高 t a p 控制器进入 u p d a t e i r 状态 如果为低 控制器回到s h i f t i r 状态 嵌入武芯 a r m 7 开发套件的研究 u p d a t e i r 状态下 移位输入的指令将被锁存到指令寄存器中 并成为当 前指令 下一个t m s 信号如果为高 控制器将转入d r s c a n 装入 如果为低 控制器则进入r u n t e s m d l e 状态 执行当前指令 在以上的t a p 控制器状态转移过程中 指令和数据被传送到相应的数据寄 存器或指令寄存器中 并被执行 完成调试操作 a i t m 7 t d m i 内核支持的t a p 控制器指令为e x t e s t s c a nn r e s t a r t s a m p l e p r e l o a d c l a m p z i n t e s t i d c o d e 和b y p a s s 在调试中常 用s c a nn 指令选择j 1 a g 链 用r e s t a i 汀指令退出调试模式 用i n t e s t 指令使选择的j t a g 链进入测试模式 和用i d c o d e 指令读取当前内核的i d 2 4a r 7 t d m i 调试原理 a r m 7 t d m i 有两个时钟源 分别为存储器时钟m c l k 和调试时钟d c l k m c l k 时钟由芯片的外部晶振或内部震荡电路产生 是内核正常运行时的驱动 时钟 d c l k 则由t a p 控制器控制产生 当t a p 控制器处于r u n t e s t i d l e 状态下 每个t m s 低信号都将产生一个d c l k 时钟脉冲 当内核由运行状态切 换到调试状态时 系统时钟就会从m c l k 切换到d c l k 当内核回到运行状态 时 系统时钟会再次切回m c l k 因此 在调试模式下 内核运行的每一条指 令都在t a p 控制器的控制下 j t a g 技术在最初只是用来对芯片内部模块进行测试 芯片内部多个模块通 过j t a g 接口串联在一起 形成一个j t a g 链 外部的测试器就通过这些j t a g 链对串联在芯片内部的模块进行测试 a r m 7 t d m i 内核的j t a g 链1 为3 3 b i t 位宽 其中b i t o b i t 3 1 定义为数 掘位 b i t 3 2 定义为状态位 该链在t a p 控制器执行i n t e s t 指令后串接到内 核数据总线 使内核总线的数据可以在t a p 控制器处于s h i f t d r 状态时串行 的移进移出j 1 a g 链l 因此 外部调试器在t a p 控制器处于sh i f t d r 状态 时通过j t a g 链1 将要执行的a r m 指令移位到内核数据总线 在t a p 控制器 处于r u n t e s t i d l e 状态时产生一个d c l k 时钟 即可在调试状态下完成该 指令的执行 当然 根据a r m 7 t d m i 的三级流水线架构 在r u n t e s t i d l e 状态下还需要再产生2 个d c l k 时钟脉冲 输入的指令才能真正执行完毕 此 时指令执行完毕后的数据出现在内核数据总线上 外部调试器再次使t a p 控制 嵌入式芯 ja r m 7 开发套件的研究 器进入s h i f t d r 状态 把数据总线上的数据输出到j t a g 链l 上 完成调试器 的读数据操作 j t a g 链l 的b i t 3 2 位的定义如下 1 在调试模式下 如果b i t 3 2 位被调试器置高 a r m 7 t d m i 内核驱动时 钟将在t a p 控制器执行r e s t a r t 指令后由d c l k 切为m c l k 也就是内核将 从调试模式切换到运行模式 而如果b i t 3 2 位为低 内核将继续保持调试模式 2 当a r m 7 t d m i 从运行模式进入调试模式后 调试器可以从第一次读到 的b i t 3 2 的数值来判断是什么断点使内核进入了调试模式 b i t 3 2 位为高是 w a t c h p o i n t 断点 b i t 3 2 位为低是b r e a k p o i

温馨提示

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

评论

0/150

提交评论