1 Main memory RAM configuration:Zeroed at power-up for cold-boot to prevent parity errors.Configured and enabled by ROM code at system power-up. 2 Cache memory RAM configuration:Us……继续阅读 » 弦苦 3年前 (2022-03-19) 2847浏览 0评论421个赞
本文节选自《See MIPS run2rd》/《MIPS体系结构透视》中的部分章节,结合个人理解,对部分译文有所改动。1.5.2 编址及内存访问1.5.4 程序员可见的流水线效果8.7.8 跳转, 分支和子程序调用指令……继续阅读 » 弦苦 3年前 (2022-03-19) 2995浏览 0评论1056个赞
1.地址总线数据总线和机器字长2.机器语言和指令集3.CISC 和 RISC4.指令的执行5.流水线作业……继续阅读 » 弦苦 3年前 (2022-03-19) 2403浏览 0评论602个赞
1.DMA通道DMA(Direct Memory Access)通道建立在设备和RAM之间,DMAC(DMA Controler)与设备I/O控制器相互作用共同实现数据传送。在PC中,DMA控制器位于主板上负责管理I/O总线的南桥上。典型的PC架构的数据通道示意图如下:在实现DMA传输时,由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。在DM……继续阅读 » 弦苦 3年前 (2022-03-19) 2112浏览 0评论1175个赞
在MIPS CPU里,你的程序中使用的地址绝对不会和芯片里的物理地址一样(有可能会很接近,但不会相同)。我们分别称为:程序地址和物理地址(Physical Address)。这里所讲的程序地址的含义同虚拟地址(Virtual Address)完全相同,不过不会牵扯到操作系统内存管理(进程)语境下的复杂性。MIPS CPU可以运行在两种特权级别上:用户态和核心……继续阅读 » 弦苦 3年前 (2022-03-19) 2405浏览 0评论1183个赞
1.链接地址对于链接器,一种普遍情景是由多个子程序来构建一个程序,并生成一个链接好的起始地址为0的输出程序,各个子程序通过重定位在大程序中确定位置。具体来说:利用第一遍扫描得到的数据,链接器将相似段合并,计算出各个段在输出地址空间中的大小和位置。第二遍扫描会利用第一遍扫描中收集到的信息来控制实际的链接过程。它会读取输入文件中的段的数据和重定位信息,并且进行符……继续阅读 » 弦苦 3年前 (2022-03-19) 2765浏览 0评论2553个赞
在嵌入式开发中,每天都在跟ROM/Flash、RAM/SDRAM打交道,还有那些默默无闻的片内SRAM和EEPROM。但是对SDR/DDR等概念的区分始终不是那么透彻,故网罗相关资料,系统整理了一下ROM/RAM等存储设备的概念。1存储设备1.1 存储设备概述存储设备是用于储存信息的设备或设备。通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。常……继续阅读 » 弦苦 3年前 (2022-03-19) 2472浏览 0评论221个赞
1. 轮询与中断2. 中断硬件框架3. 中断向量表4. 中断路由5. 中断复用/解复用6. 中断上下文7. 中断底半部延期机制8. Linux网络设备驱动模型中的NAPI模型……继续阅读 » 弦苦 3年前 (2022-03-19) 1501浏览 0评论463个赞
什么是真正的实时操作系统做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks。实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂。毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform Team封装……继续阅读 » 弦苦 3年前 (2022-03-19) 2070浏览 0评论1467个赞
预处理器-编译器-汇编器-链接器预处理器会处理相关的预处理指令,一般是以”#”开头的指令。如:#include “xx.h” #define等。编译器把对应的*.cpp翻译成*.s文件(汇编语言);汇编器则处理*.s生成对应的*.o文件(obj目标文件);最后链接器把所有的*.o文件链接成一个可执行文件(?.e……继续阅读 » 弦苦 3年前 (2022-03-19) 1145浏览 0评论2720个赞
嵌入式系统 BootLoader 技术内幕1. 引言在专用的嵌入式板子运行 GNU/Linux 系统已经变得越来越流行。一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次:(1). 引导加载程序。包括固化在固件(firmware)中的 boot 代码(可选),和 Boot Loader 两大部分。(2). Linux 内核。特定于嵌入式板子的定制……继续阅读 » 弦苦 3年前 (2022-03-19) 3041浏览 0评论762个赞
x86 ABI之C函数调用惯例……继续阅读 » 弦苦 3年前 (2022-03-19) 2699浏览 0评论2618个赞
1 MIPS异常2 MIPS中断3 VxWorks/MIPS异常向量初始化4 VxWorks/MIPS中断初始化5 主频=外频x倍频6 初始化硬件Timer7 挂接定时器中断8 VxWorks中断调度9 tickAnnounce……继续阅读 » 弦苦 3年前 (2022-03-19) 1601浏览 0评论1086个赞
引言在《VxWorks引导启动过程》和《VxWorks启动之romStart剖析》中都留下了这样一个疑问,那就是bootrom中compressedEntry()和vxWorks_rom(Compress)中usrEntry()这两个桩函数到底是用来干什么的呢?由于桩函数封装的代码只有寥寥数行,我们很容易分析透彻。除了对usrInit()的简单封装外,核心就……继续阅读 » 弦苦 3年前 (2022-03-19) 2017浏览 0评论1629个赞