摘要:CPU通用寄存器作为CPU体系架构的一部分,不可或缺。通用寄存器是CPU的算术逻辑运算操作最直接,频繁的位置。对于RISC体系的CPU,算术逻辑运算甚至只能够操作CPU通用寄存器中的数据。我们的目的不在于详尽的说明每一种CPU体系的寄存器情况,而在于将常用而且在不同CPU体系下容易混淆的寄存器做一个
阅读全文
摘要:在这里,主要是要说明什么是寻址方式。以及每一种CPU为什么使用这样的寻址方式。在说明什么是寻址方式之前,首先需要了解指令的构成,或者说指令的编码格式。 指令编码格式 一条指令(指的是机器码)由操作码(opcode)和操作数(operand)构成。操作数可以是1个,也可以是多个,甚至可以没有。操作码则
阅读全文
摘要:DMA本来不属于CPU体系架构部分的内容,只因为在开发中经常要用到其相关的知识,所以这里就其基本概念、工作原理、常见问题做一个总结。 DMA概述 DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问。DMA既可以指内存和外设直接存取数据这种内存访问的计算机技术,
阅读全文
摘要:Cache研究是转正答辩“MIPS BSP研究”中重要的一部分。只可惜当时时间紧,没有能够总结成文档。时隔将近一年,这次编写《CPU体系架构系列》,对于这一部分内容既是总结整理,又是温故知新。 概述 Cache是用来对内存数据的缓存。CPU要访问的数据在Cache中有缓存,称为“命中” (Hit),
阅读全文
摘要:1.概述 简单比较了一下MIPS,PowerPC和ARM(这里只考虑32位版本的,MIPS64和PowerPC64不在此范围内)访问I/O的方式。首先这三种体系结构都使用存储器映射的I/O,都是32位物理地址空间(排除一些特殊的处理器,比如PowerPC E500 v2支持36位物理地址)。下面分别
阅读全文
摘要:1. 首先就是知道 ARM 状态下的通用寄存器和程序计数器,绿颜色的就是相应模式下的私有寄存器。 就是说程序一般运行在系统和用户模式下,使用的是系统和用户模式下的通用寄存器,当有异常发生时,比如 FIQ ,那么系统将切换到 FIQ 模式下,相应的就会采用 FIQ 模式下的寄存器,其中绿颜色的就是只在
阅读全文
摘要:1.inn/in inn命令仅复位CPU,通常建立连接后如果出现error的话,OCD Command Shell进入“ERR>”提示符状态;可以将CPU复位一下; in复位cpu,并执行仿真器中的寄存器脚本文件初始化外设寄存器; 2.ha 让CPU停止运行;OCD Command Shell进入“
阅读全文
摘要:我们的芯片5,6,7改成5,4,7 cpu内部挡cache访问的窗口,只挡cache读,不影响其他操作,因此汪文祥建议用一个窗口将寄存器空间全盖住,代码如下:下面代码是将0x10000000-0x1fffffff禁止取指代码。
阅读全文
摘要:1.通过ejtag抓到死机时的ra,假设为0x2b29640c 2.重启进程,ctrl+z 挂住,top命令查看进程号 3.cat /proc/进程号/map 查看进程的地址映射,假设找到0x2b211000-0x2b305000 ...lib_DRV.so,说明程序是在lib_DRV.so这个库里
阅读全文
摘要:写的挺不错的,但是还是有点困惑,就是关于分支预测技术和延迟槽的关系,等弄清楚后再写个总结吧。 分支延迟槽 (Branch delay slot),简单地说就是位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且位于分支延迟槽中的指令先于分支指令提交 (commit)。 801ea9d4:
阅读全文
摘要:(一)地址的概念 1) 物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。 物理地址空间,一
阅读全文
摘要:bus error(core dumped) 总线错误 segmetation fault(core dumped)段错误产生原因: 当硬件告诉操作系统一个有问题的内存引用时,操作系统通过发送信号给有问题的进程进行交流。(信号是一种事件通知或一个软件中断)。普通进程一般对“总线错误”或“段错误”信号
阅读全文
摘要:Q1: 一些专门用途REG A: MIPS的通用寄存器中,按照编译器的规约,某些寄存器是做专门用途的,比如SP就是堆栈指针,ra是函数调用的返回地址,v0-v1通常用来保存函数调用非浮点数的返回值,a0-a3用来保存被调用函数的前四个参数等等。当然你也可以不按照这些规约编程,例如用$2存放堆栈指针,
阅读全文
摘要:摘要: 在介绍基于 ARM 体系的嵌入式系统启动流程的基础上,结合编程实例,详细、系统地叙述了 BSP (板级支持包)程序的各个组成部分及其具体设计方案,并就实际程序设计中的几个难点问题做了说明。 关键词: ARM BSP 嵌入式系统 微处理器 ARM公司32 位RISC 的CPU 开发领域不断取得
阅读全文
摘要:嵌入式处理器种类繁多,从8位、16位、32位到64位都有。本章介绍的嵌入式应用处理器主要有ARM、MIPS、PowerPC、X86、68K/Cold fire等,下面对这些处理器进行一些简单介绍。 MIPS是Microprocessor without Inter-locked Pipeline S
阅读全文
摘要:notdir,wildcard和patsubst是makefile中几个有用的函数,以前没留意过makefile中函数的用法,今天稍微看看~ 1、makefile里的函数makefile里的函数使用,和取变量的值类似,是以一个‘$’开始,然后是一个括号里面是函数名和需要的参数列表,多个变量用逗号隔开
阅读全文
摘要:以前在学ld的script时两个比较重要的概念,即指定一个输出section的lma和 vma(分别是load memory address和virtual memory address),vma的作用是很明显地,就是决定run time address嘛,但lma有什么用呢?恩,对运行在linux
阅读全文
摘要:在shell中,可以使用export修改当前进程的环境变量。例如, export PATH=.:$PATH就可以将当前路径加入可执行文件查找路径中,这样你就不要敲“./excutable” 来执行当前路径中的excutable。而只需要键入 “excutable” 就行了。 make可以执行shel
阅读全文
摘要:VMA与LMA [zz]2011-10-16 10:07两个地址都是虚拟地址。lma: 加载地址,如加载到RAM中等,在嵌入式中,有可能是在ROM中(这时LMA!=VMA)vma: 虚拟地址,就是程序运行时的地址,一般就是内存地址,如要把ROM中的数据加载到RAM中运行。 关于LMA 和 VMA:
阅读全文