发布时间:2012-12-11 09:26:23
分支延迟槽 (Branch delay slot),简单地说就是位于分支指令后面的一条指令,不管分支发生与否其总是被执行,而且位于分支延迟槽中的指令先于分支指令提交 (commit)。 看这个代码片段 (MIPS Linux kernel 2.6.17): 801ea9d4: 02202021 move a0,s1 801ea9d8: 27a50014 addiu a1,sp,20 801ea9dc:  ......【阅读全文】
发布时间:2012-12-11 09:23:04
突兀地说高精度定时器,感觉摸不着头脑,至少初学者会茫然,但是从字面上来理解,很简单,定时器嘛,精度高点,然后,就没有然后了。其实差不多就是这么回事,只是里面涉及到了一些别的细节上的问题。 工欲善其事必先利其器,在开始讲之前,我们先利一下器: 2 相关的用到的几个源代码文件以及其路径如下: Hrtimers.txt (linux-3.2.12\documentation\timers) Hrtimer.c (linux-3.2.12\kernel) Hrtimer.h (linux-3.2.12\include\linux) 2 单纯的在高精度定时器模式下操作高精度定时器,整个操作框......【阅读全文】
发布时间:2012-12-11 08:30:48
linux2.6.22之前没有引入高精度定时器的框架,系统中的各个架构都有一套自己的时间和定时器管理框架,这样就带来几个麻烦:1、重复代码太多 2、原来的框架不适于高精度定时器的加入,精度不够等。所以,linux后面通过引入clocksource和clockevent对时钟源和定时器进行了抽象,有了一个统一的抽象框架,而各个架构只需要适配这个框架即可,同时,又可以引入高精度定时器。 一、介绍几个基本概念 时钟源:定义如下: 点击(此处)折叠或打开 struct clocksource { /* &nbs......【阅读全文】
发布时间:2012-12-11 01:07:32
-EBGenerate big-endian code.-ELGenerate little-endian code. This is the default for mips*el-*-* configurations.-march=archGenerate code that will run on arch, which can be the name of a generic MIPS ISA, or the name of a particular processor. The ISA names are: mips1, mips2, mips3, mips4,mip......【阅读全文】
发布时间:2012-12-10 10:43:23
用mipsel-linux-gcc编译出现错误:(.text+0xa4): relocation truncated to fit: R_MIPS_GOT16 against `no symbol'start.o: In function `IntHandle':(.text+0xd0): relocation truncated to fit: R_MIPS_GOT16 against `no symbol'start.o: In function `IntHandle':(.text+0x118): relocation truncated to fit: R_MIPS_GOT16 aga......【阅读全文】