Linux 0.12 内核管理存储器其分段,用分段的机制把进程间的虚拟地址分隔开。每一个进程都有一张段表LDT。整个系统有一张GDT表。且整个系统仅仅有一个总页表。其地址翻译过程为:程序中给出的32位地址(实际上被看做段内偏移地址),再依据代码段寄存器CS中的16位段选择子,可在GDT或LDT中查找...
分类:
系统相关 时间:
2015-06-28 08:39:56
阅读次数:
223
浙大嵌入式课程实验。 在实验板 的 Linux 上做一个轮盘游戏机,具有两个按钮,一个负责启动,一 个负责停止。具有某个或 多个输出设备,如 LED 柱状显示器、 双位 7 段数码管(不要求输出数字)、LCD或舵机 等,可任选其中一个或多个的 组合。按下启动按钮,输出设备上就出现各种变化,如流...
分类:
其他好文 时间:
2015-06-09 00:56:35
阅读次数:
215
// 位段赋值的例子
#include
int main()
{
unsigned char puc[4];
struct tagPIM
{
unsigned char ucPiml;
unsigned char ucData0 : 1;
unsigned char ucData1 : 2;
unsigned char ucData2 : 3;
}*pstPimDat...
分类:
编程语言 时间:
2015-05-11 16:11:06
阅读次数:
185
// 位段大小的计算以及宏的应用
#include
#include
#define MAX_SIZE A+B
struct _Record_Struct
{
unsigned char Env_Alarm_ID : 4;
unsigned char Paral : 2;
unsigned char state;
unsigned char avail : 1;
}*Env_Ala...
分类:
编程语言 时间:
2015-05-08 18:10:28
阅读次数:
225
1.整形升级和寻常算术转换:
char,short int 或者位段,包括他们的有符号和无符号型,以及枚举类型,可以使用在需要的int 或unsignede int 的表达式中。如果int可以完整的表示源类型的所有值,那么该源类型的值就转换为int 型,否则转换为无符号类型,这称之为整形升级。
对于其他类型的转换,如果有两个操作数:转换关系如下:
long doub...
分类:
其他好文 时间:
2015-05-05 22:03:28
阅读次数:
161
struct _PACKER_DATA{ unsigned char IsDLL :1; // 是否为DLL unsigned char Config :3; // 设置 unsigned char OldOEP :4; // 程序入口点 ...
分类:
其他好文 时间:
2015-05-03 18:59:24
阅读次数:
129
目录1)问题产生2)失败尝试3)最终方案4)使用方法5)知识共享1)问题产生在上一篇“ 以PWM控制直流电机为例建一个简单的51工程框架”中已向大家介绍了一个封装好的8位8段数码管的驱动(如下图中FUNC文件夹下led8.c文件)。但是该驱动电路是要有一定的硬件基础的(如下图):如2片74HC573...
分类:
其他好文 时间:
2015-04-24 18:47:10
阅读次数:
208
欢迎使用2015年创芯雏鹰一代开发板FPGA:Spartan-LX16 256BGA封装PMOD接口X2通用扩展IO 40pin X26位8段数码管SMAX2蜂鸣器UART-CP2103按钮X5SRAM ISSI IS6416X2(SRAMX1 SDRAMX1)温度传感器-TI LM75A数字时钟芯...
分类:
其他好文 时间:
2015-03-20 23:43:34
阅读次数:
160
struct _PACKER_DATA{ unsigned char IsDLL :1; // 是否为DLL unsigned char Config :3; // 设置 unsigned char OldOEP :4; // 程序入口点...
分类:
其他好文 时间:
2015-03-11 23:07:07
阅读次数:
178