嵌入式相关知识点

嵌入式中小端模式为 低字节存储在低地址,高字节存储在高地址。大端模式为低字节存储在高地址,高字节存储在低地址。

如何判断一个系统为大端模式还是小端模式?  小端模式的数据如何转换为大端模式的数据?


#include<iostream>
#include<iomanip>
using namespace std;
bool IsLittleEndian()//判断是否是小端模式。是小端则返回true
{
     typedef union
	 {
	     int a;
		 char b;
	 }Type;
	 Type test;
	 test.a=1;
	 return test.b==1;
}
bool IsLittleEndian2()
{
    int a=1;
	return      *((char*)(&a))==1;
}
int LittleEndianToBigEndian(int number)//小端转大端
{
	int temp=0;
	char *p=(char*)&number;
	temp=((*p)<<24)+(*(p+1)<<16)+(*(p+2)<<8)+*(p+3);
	return temp;
}
int LittleEndianToBigEndian2(int number)
{
	
	return (number&0x000000ff)<<24|(number&0x0000ff00)<<16|(number&0x00ff0000)<<8|(number&0xff000000);
}
int main()
{
	if(IsLittleEndian()&&IsLittleEndian2())
	{
	    cout<<"系统是小端模式"<<endl;
	}
	int number=0x11223344;
	cout<<"小端格式的number:"<<hex<<number<<endl;
	cout<<"转换成为大端格式:"<<endl;
	cout<<hex<<LittleEndianToBigEndian(number)<<endl;
	cout<<hex<<LittleEndianToBigEndian(number)<<endl;
    return 0;
}

哈弗结构和冯诺依曼结构

哈佛结构是一种存储器结构。使用哈弗结构的处理器有AVR ARM9 ARM10   ARM cortex m3 等

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,数据总线和地址总线分开  数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度

哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令分开组织和储存的,执行时可以预先读取下一条指令

以下转自:http://blog.sina.com.cn/s/blog_a44094ea01016s09.html

哈佛结构


(英语Harvard architecture)是一种将程序指令储存和数据储存分开的存储器结构中央处理器首先到程序指令储存器中读取程序指令内容,解码后得到数据地址,再到相应的数据储存器中读取数据,并进行下一步的操作(通常是执行)。程序指令储存和数据储存分开,数据和指令的储存可以同时进行,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。

与冯.诺曼结构处理器比较,哈佛结构处理器有两个明显的特点:

1、使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存;

2、使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值