为实现数据前推而对OpenMIPS系统结构所做的修改。有两个方面。
(1)将处于流水线执行阶段的指令的运算结果,包括:是否要写目的寄存器wreg_o、要写的目的寄存器地址wd_o、要写入目的寄存器的数据wdata_o等信息送到译码阶段,如图5-8中虚线所示。
(2)将处于流水线访存阶段的指令的运算结果,包括:是否要写目的寄存器wreg_o、要写的目的寄存器地址wd_o、要写入目的寄存器的数据wdata_o等信息送到译码阶段。...
分类:
其他好文 时间:
2014-07-31 17:18:26
阅读次数:
295
第3位的置位与清除操作。
#include
#include
#include
#define BIT3 (0x1<<3)
int
main()
{
int a = 0x00000000;
printf("a = 0x%08X\n", a);
/*
置位第3bit
a = a | (0x1<<3)
a = a | 0x8
*/
a |= BIT3;
printf("a = 0x%08X\n", a);
/*...
分类:
其他好文 时间:
2014-07-31 17:15:07
阅读次数:
386
(重点 面试官最最关心的一个问题,必须从cpu调度,上下文切换,数据共享,多核cup利用率,资源占用,等等各方面回答,然后有一个问题必须会被问到:哪些东西是一个线程私有的?答案中必须包含寄存器,否则悲催)
可重入:概念基本没有比较正式的完整解释,但是它比线程安全要求更严格。根据经验,所谓“重入”,常见的情况是,程序执行到某个函数foo()时,收到信号,于是暂停目前正在执行的函数,转到信号处理...
分类:
编程语言 时间:
2014-07-31 17:03:46
阅读次数:
242
最近回头看了一下书,对内存的理解又有新的认识。我所关注的内存里面说没有寄存器的,所以我关注的只有 托管堆(heap),栈(stack), 字符串常量池(string是一个很特殊的对象)首先我们看两个方法: void M1() { string nam...
分类:
其他好文 时间:
2014-07-31 16:40:56
阅读次数:
137
在应用系统的程序设计中,若所有的编程任务均由汇编语言来完成,其工作量巨大,并且不易移植。由于ARM的程序执行速度较高,存储器的存储速度和存储量也很高,因此,C语言的特点充分发挥,使得应用程序的开发时间大为缩短,代码的移植十分方便,程序的重复使用率提高,程序架构清晰易懂,管理较为容易等等。因此,C语言的在ARM编程中具有重要地位。
在ARM程序的开发中,需要大量读写硬件寄存器,尽量缩短程序的执行时...
分类:
编程语言 时间:
2014-07-31 13:32:16
阅读次数:
258
#include
#include
#include
//基本概念
/*
struct _M
{
(1) 类型 参数名 : 占位大小;
(2) 类型 : 占位大小;
}
(1)
类型 -- int,unsigned(32位),short,char。
参数名 -- 同个结构体里面不能重名参数。
占位大小 -- 不能大于类型最最大位数。
(2) 一般用于寄存器中保留位
*/
//占位大小问题:
/*
err -- int类型是3...
分类:
其他好文 时间:
2014-07-31 13:24:26
阅读次数:
337
对于一般的CAN模块,初始化步骤:
第一步,进入初始化模式,在CAN控制寄存器中,将Init位置1;
第二步,在CAN控制寄存器中,将CCE位置1;
第三步,等待Init位置1,此步聚为了确保已经进入初始化模式;
第四步,将位时序的值写入到位时序寄存器(BTR)中;
第五步,将CCE和Init位置为0;
第六步,等待清除Init位,此步聚为了确保已经退出初始化模式;...
分类:
其他好文 时间:
2014-07-31 00:02:45
阅读次数:
317
在CPU中,程序员能够用指令读写的部件只有寄存器,程序员可以通过改变寄存器中的内容实现对CPU的控制。CPU从何处执行指令是由CS、IP中的内容决定的,程序员可以通过改变CS、IP中的内容来控制CPU执行目标指令。我们如何改变CS、IP的值呢?显然,8086CPU必须提供相应的指令。我们如何修改AX...
分类:
其他好文 时间:
2014-07-30 23:25:15
阅读次数:
515
CLI 禁止中断发生STI 允许中断发生 这两个指令只能在内核模式下执行,不可以在用户模式下执行;而且在内核模式下执行时,应该尽可能快的恢复中断,因为CLI会禁用硬件中断,若长时间禁止中断会影响其他动作的执行(如移动鼠标等等),系统就会变得不稳定。在标志寄存器中中断标志清零的情况下,可以以“int ...
分类:
其他好文 时间:
2014-07-30 20:30:54
阅读次数:
172
FS寄存器指向当前活动线程的TEB结构(线程结构)偏移 说明000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程....
分类:
其他好文 时间:
2014-07-30 20:24:04
阅读次数:
274