目录 第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: Hosmips操作系统的构建与运行104 5.1实验目的104 5.2实验内容104 5.2.1安装开发环境104 5.2.2构建Hosmips镜像113 5.2.3运行Hosmips系统 114 5.3实验背景及原理117 5.3.1Hosmips简介117 5.3.2相关软件工具118 5.3.3Hosmips调试118 第6章实验6: Hosmips集成开发调试环境安装121 6.1实验目的121 6.2实验内容121 6.2.1安装VSCode121 6.2.2使用VSCode编辑、构建和调试Hosmips122 6.3实验背景及原理124 6.3.1Hosmips的构建过程124 6.3.2Hosmips的载入和调试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.1Hosmips操作系统的特权态141 7.3.2MIPS的内存映射142 7.3.3Hosmips的虚拟地址规划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.2Hosmips标准输入输出设备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.3QuadSPI Flash芯片185 11.9BootLoader参考代码188 11.9.1main.c程序188 11.9.2flash.c程序190 11.9.3analyseELF.c程序192