标签:
嵌入式系统的一般开发流程如下:
现有的嵌入式操作系统
VxWorks pSOS PalmOS QNX OS-9 LynxOS WindowsCE uC/OS 嵌入式Linux FreeRTOS
ARM:Advanced RISC Machines
ARM处理器共有37个寄存器,分为若干个组(BANK)。
大多数数据操作都在寄存器中完成。
ARM7: 32bit 冯-诺依曼体系结构
计算机处理的数据和指令一律用二进制数表示;顺序执行;计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
ARM9: 32bit 哈佛结构
使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;
使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
ARM10E:支持DSP指令集
ARM11
SecureCore
StrongARM
Xscale
Cortex-M3
16bit宽的数0x1234在Little-endian模式(以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址 | 小端模式存放内容 | 大端模式存放内容 |
---|---|---|
0x4000 | 0x34 | 0x12 |
0x4001 | 0x12 | 0x34 |
32bit宽的数0x12345678在Little-endian模式以及Big-endian模式)CPU内存中的存放方式(假设从地址0x4000开始存放)为:
内存地址 | 小端模式存放内容 | 大端模式存放内容 |
---|---|---|
0x4000 | 0x78 | 0x12 |
0x4001 | 0x56 | 0x34 |
0x4002 | 0x34 | 0x56 |
0x4003 | 0x12 | 0x78 |
大端小端没有谁优谁劣,各自优势便是对方劣势:
小端模式 :强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。
大端模式 :符号位的判定固定为第一个字节,容易判断正负。
下面这段代码可以用来测试一下你的编译器是大端模式还是小端模式:
short int x; //short int 16bit
char x0,x1; //char 8bit
x=0x1122;
x0=((char*)&x)[0]; //低地址单元
x1=((char*)&x)[1]; //高地址单元
若x0=0x11,则是大端; 若x0=0x22,则是小端……
标签:
原文地址:http://blog.csdn.net/azurewrath04/article/details/51346372