图书目录

目录

第1章实验1: 硬件平台搭建的实践准备1

1.1实验目的1

1.2实验内容1

1.2.1开发环境搭建1

1.2.2烧写现成的硬件平台比特流文件8

1.2.3MIPSfpga处理器程序编译、下载、运行及调试11

1.3实验背景及原理13

1.3.1Vivado集成开发环境13

1.3.2OpenOCD和JTAG工作原理15

1.3.3MIPS交叉编译环境20

1.3.4MIPS GDB调试工具20

第2章实验2: 基于MIPSfpga的硬件平台搭建22

2.1实验目的22

2.2实验内容22

2.2.1基于MIPSfpga处理器的最简系统搭建22

2.2.2MIPSfpga处理器硬件平台扩展42

2.2.3硬件平台测试及程序运行与调试52

2.3实验背景及原理53

2.3.1MIPSfpga处理器简介53

2.3.2基于AXI4接口模块的MIPSfpga处理器系统61

第3章实验3: 自定制接口模块的设计63

3.1实验目的63

3.2实验内容63

3.2.1基于AXI4总线接口的自定制外设模块封装63

3.2.2在MIPSfpga硬件平台中使用自定制模块71

3.2.3MIPSfpga硬件平台测试72

3.3实验背景及源码73

3.3.1AXI总线协议73

3.3.2PWM_w_Int_v1_0模块部分源码81

3.3.3PWM_w_Int_v1_0_S00_AXI模块部分源码82

3.3.4PWM_Controller_Int模块部分源码82

第4章实验4: MIPSfpga硬件平台的中断84

4.1实验目的84

4.2实验内容84

4.2.1MIPSfpga硬件平台中断兼容模式实现84

4.2.2MIPSfpga处理器硬件平台中断兼容模式测试85

4.2.3MIPSfpga硬件平台外部中断控制器模式实现86

4.2.4MIPSfpga硬件平台外部中断控制器模式测试89

4.2.5在MIPSfgpa硬件平台加载BootLoader90

4.3实验背景及原理91

4.3.1中断概述91

4.3.2MIPSfpga处理器中断机制92

4.3.3AXI4中断控制器模块99

第5章实验5: Hosmips操作系统的构建与运行104

5.1实验目的104

5.2实验内容104

5.2.1安装开发环境104

5.2.2构建Hosmips镜像113

5.2.3运行Hosmips系统 114

5.3实验背景及原理117

5.3.1Hosmips简介117

5.3.2相关软件工具118

5.3.3Hosmips调试118

第6章实验6: Hosmips集成开发调试环境安装121

6.1实验目的121

6.2实验内容121

6.2.1安装VSCode121

6.2.2使用VSCode编辑、构建和调试Hosmips122

6.3实验背景及原理124

6.3.1Hosmips的构建过程124

6.3.2Hosmips的载入和调试137

第7章实验7: 从内核到应用139

7.1实验目的139

7.2实验内容139

7.2.1添加“Hello world!”应用139

7.2.2添加系统调用139

7.2.3显示内存空闲页面数量140

7.3实验背景及原理141

7.3.1Hosmips操作系统的特权态141

7.3.2MIPS的内存映射142

7.3.3Hosmips的虚拟地址规划143

7.3.4缺页异常与处理147

7.3.5以页为单位管理物理内存149

第8章实验8: 蓝牙模块及电动机驱动模块硬件实现152

8.1实验目的152

8.2实验内容152

8.2.1添加蓝牙模块152

8.2.2设计并添加电动机驱动模块153

8.3实验背景及原理154

8.3.1蓝牙模块154

8.3.2电动机驱动板154

8.3.3PMOD接口原理156

8.4两个测试程序源码157

8.4.1无线蓝牙测试程序157

8.4.2电动机驱动板测试程序158

第9章实验9: 蓝牙模块及电动机驱动模块的驱动程序开发162

9.1实验目的162

9.2实验内容162

9.2.1蓝牙模块和电动机驱动模块的驱动程序162

9.2.2对设备驱动程序进行测试163

9.3实验背景及原理163

第10章实验10: 设备驱动方式蓝牙小车应用实现165

10.1实验目的165

10.2实验内容165

10.2.1在SFS层添加设备文件节点165

 10.2.2添加设备驱动接口166

10.2.3添加蓝牙模块和电动机驱动模块的驱动程序167

 10.2.4蓝牙小车应用程序169

10.3实验背景及原理169

10.3.1Linux设备驱动概述169

10.3.2Hosmips标准输入输出设备170

10.3.3主要数据结构171

10.3.4虚拟文件系统层172

 10.3.5驱动接口174

第11章实例: 自启动蓝牙小车的实现176

11.1概述176

11.2设计目标176

11.3总体方案176

11.4设计方法和步骤177

11.5硬件设计与实现177

11.6软件设计与实现179

11.6.1开发小车应用程序179

 11.6.2开发BootLoader程序180

11.7比特流和程序固化180

11.8背景知识及原理183

11.8.1AXI Quad SPI模块 183

 11.8.2FPGA配置185

 11.8.3QuadSPI Flash芯片185

11.9BootLoader参考代码188

11.9.1main.c程序188

11.9.2flash.c程序190

 11.9.3analyseELF.c程序192