Cortex-M全系统模拟器的研究和实现
发布时间:2017-05-08 08:07
本文关键词:Cortex-M全系统模拟器的研究和实现,由笔耕文化传播整理发布。
【摘要】:本文实现了一个ARM Cortex-M系列内核的全系统嵌入式模拟器。通过对不同类型的模拟器进行分类和比较,本文首先确定了整个系统的需求。并根据需求划分了内核模拟、调试接口、外设模拟、用户接口等模块。分析比较了各种不同的组织模块的方式,基于多进程的架构,对不同的模块进程进行合并,最后将模拟器分为了数个进程进行实现。 根据ARM Cortex-M系列指令集的特点,本文设计了一个模拟器内核,实现了包括指令集、中断控制器、地址空间等方面的模拟。对不同的指令集实现方式作出了比较,并用解释执行的方式实现了一个指令集执行引擎。根据ARM地址空间的特点,提出了一种存储器模型,将所有地址空间统一到一个模型中。并着重对Cortex-M系列的NVIC进行了分析,比较了NVIC与传统ARM异常中断处理机制的区别,实现了NVIC的中断优先级、中断嵌套等高级功能。本文通过首先对内核总体框架的构建,并介绍重要数据结构和接口函数的方式,给出了整个模拟器内核的具体实现。 除模拟器内核之外,本文还针对嵌入式系统使用中非常重要的调试功能,设计并实现了模拟器的调试模块。基于GDB调试器和与之相关的RSP协议,分析了GDB远程调试的原理和实现机制。着重分析了RSP协议与GDB相关指令的映射关系,以及通过RSP协议与GDB通信的原理。在模拟器内核中添加了GDBStub,从而使得模拟器上运行的程序可以通过GDB来进行远程调试,利用了其优良的调试功能。 根据嵌入式系统对处理器与外设之间的需求以及各种不同外设之间的区别和联系,本文提出了基于软件和基于硬件的外设模拟方式。在软件模拟方式中,提出了一种外部设备模型,并比较了多种软件模拟的架构,改进并实现了其中一种架构,并以Systick为例介绍了外部设备模型的具体实现。本文也提出了一种基于硬件的外设模拟方式,具体描述了其结构和原理,定义了一种硬件与模拟器内核通信的接口协议,并实现了其接口。 文章在最后总结模拟器的实现过程中的不足,指出了在一些有待解决和改善的问题,并列出了可进一步开展的工作。
【关键词】:模拟器 存储器模型 GDB Stub 外部设备模型 硬件模拟外设
【学位授予单位】:东华大学
【学位级别】:硕士
【学位授予年份】:2014
【分类号】:TP337
【目录】:
- 摘要5-7
- ABSTRACT7-13
- 1 绪论13-17
- 1.1 课题研究背景与意义13
- 1.2 模拟器的国内外研究现状13-15
- 1.3 研究内容与主要工作15
- 1.4 论文组织结构与章节安排15-17
- 2 模拟器架构设计17-24
- 2.1 模拟器的分类17-18
- 2.2 需求分析18-20
- 2.2.1 内核模拟18-19
- 2.2.2 调试接口19
- 2.2.3 外设模拟19
- 2.2.4 用户接口19-20
- 2.3 程序架构设计20-23
- 2.3.1 单线程设计20
- 2.3.2 多线程设计20-22
- 2.3.3 多进程设计22-23
- 2.3.4 架构确定23
- 2.4 本章小结23-24
- 3 内核模拟设计与实现24-39
- 3.1 ARM内核的组成24-25
- 3.1.1 ARM内核版本24-25
- 3.1.2 Cortex-M内核组成25
- 3.2 指令集的模拟25-28
- 3.2.1 指令集模拟原理25-26
- 3.2.2 ARM Cortex-M内核指令集的特点26-28
- 3.3 中断异常控制器28-31
- 3.3.1 ARM Cortex-M中断过程描述28-29
- 3.3.2 嵌套向量中断控制器(NVIC)29-31
- 3.4 存储器地址结构31-32
- 3.5 实现细节32-38
- 3.5.1 内核的总体框架32-34
- 3.5.2 指令集的实现34-36
- 3.5.3 中断的实现36-37
- 3.5.4 存储器模型的实现37-38
- 3.6 本章小结38-39
- 4 基于GDB的调试架构设计与实现39-51
- 4.1 GDB调试器39
- 4.2 GDB调试方式39-41
- 4.2.1 本地调试39-40
- 4.2.2 远程调试40-41
- 4.3 RSP协议41-48
- 4.3.1 RSP数据包41-42
- 4.3.2 RSP基本协议42
- 4.3.3 GDB指令映射42-43
- 4.3.4 重要指令的对话流程43-48
- 4.4 Stub实现48-49
- 4.5 本章小结49-51
- 5 外设模拟的设计与实现51-66
- 5.1 外部设备的种类51-53
- 5.1.1 串行总线51
- 5.1.2 外部存储器控制器51
- 5.1.3 网络设备51-52
- 5.1.4 DMA控制器52
- 5.1.5 通用IO端口52
- 5.1.6 定时器52
- 5.1.7 处理器内部控制设备52-53
- 5.1.8 模拟设备53
- 5.1.9 显示控制器53
- 5.1.10 片外设备53
- 5.2 基于软件模拟的外部设备53-57
- 5.2.1 外部设备模型53-54
- 5.2.2 串行方式54-55
- 5.2.3 并行方式55-56
- 5.2.4 混合方式56-57
- 5.3 基于硬件模拟的外部设备57-59
- 5.3.1 工作原理和基本组成58-59
- 5.3.2 硬件接口协议59
- 5.4 外部设备的实现细节59-65
- 5.4.1 寄存器接口的实现59-60
- 5.4.2 软件接口行为的实现60-63
- 5.4.3 硬件接口行为的实现63
- 5.4.4 用户界面63-65
- 5.5 本章小结65-66
- 6 测试与分析66-71
- 6.1 功能测试与分析66-69
- 6.1.1 指令集功能66
- 6.1.2 调试功能66-67
- 6.1.3 外设功能67-68
- 6.1.4 外设功能68-69
- 6.2 性能测试与分析69-70
- 6.2.1 测试目的69
- 6.2.2 测试方案与过程69-70
- 6.3 本章小结70-71
- 7 总结与展望71-73
- 7.1 总结71
- 7.2 展望71-73
- 参考文献73-76
- 附录76-104
- 作者在攻读硕士学位期间发表的论文104-105
- 致谢105
【参考文献】
中国期刊全文数据库 前8条
1 陈定君,郭晓东,张应辉,余克清,刘积仁;嵌入式软件仿真开发系统的研究[J];电子学报;2000年03期
2 王海晟;楼文晓;;嵌入式软件模拟测试平台的设计与实现技术[J];计算机工程;2006年15期
3 蔡嵩松;刘奇;王剑;刘金刚;;基于龙芯处理器的二进制翻译器优化[J];计算机工程;2009年07期
4 张激;李宁波;;基于二进制翻译的仿真器关键技术研究[J];计算机工程;2010年16期
5 陈乔;蒋烈辉;董卫宇;徐金龙;方明;;基于动态二进制翻译技术的仿真器研究[J];计算机工程;2011年20期
6 曹宏嘉,俞磊,邓潂,周兴铭;一个用户级动态二进制翻译系统的设计与实现[J];计算机工程与科学;2004年08期
7 郭胜超,吕强,杨季文,钱培德;GDB远程调试及其在嵌入式Linux系统中的应用[J];计算机工程与科学;2004年10期
8 陈必泉,黄承慧;GDBSERVER原理分析及其应用[J];计算机工程与设计;2005年03期
本文关键词:Cortex-M全系统模拟器的研究和实现,由笔耕文化传播整理发布。
,本文编号:350756
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/350756.html