ARM存储方法

ARM存储方法

ARM体系结构将存储器看做是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数据,从第四个字节到第七个字节放置的是第二个存储的字数据,依次排列。作为32位微处理器,ARM体系结构所支持的最大寻址空间为4GB

ARM体系结构可用两种方法存储字数据,称之为大端格式和小端格式,具体说明如下:

1.       大端格式

在大端格式中,字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中,如下图所示:

 

 

         31            24 23              16 15                   8 7                0

8

9


10

1

4

5


6

7

0

1


2

3

 

1.       小端模式

与大端存储格式相反,在小端存储格式中,字数据的低字节存储在高地址中,而字数据的高字节存储在低地址中,如下图所示:

 

 

31                  24 23                  16 15                      8 7                      0

11

10

9

8

7

6

5

4

3

2

1

0

 

今天在做LOGO的时候,看S3C2440Display.cpp函数中,突然遇见一个函数:

if(dwStatus == ERROR_SUCCESS && dwType == REG_DWORD)

       {

              dwSize = sizeof(DWORD);

              dwStatus = RegQueryValueEx(hkDisplay, _T("LCDVirtualFrameBase"), NULL, &dwType,  (LPBYTE) &gdwLCDVirtualFrameBase, &dwSize);

       }

不懂,呵呵,没有办法,谁让我不会的太多了,底子又薄,还好我脸皮比较厚,查看MSDN的过程中,发现函数的原型:

LONG RegQueryValueEx(

 HKEY hKey,

 LPCWSTR lpValueName,

 LPDWORD lpReserved,

 LPDWORD lpType,

 LPBYTE lpData,

 LPDWORD lpcbData

);

其中lpType,参数的取值可能为REG_DWORD_BIG_ENDIAN或者REG_DWORD_LITTLE_ENDIAN得时候就会涉及到ARM存储的方法,于是我又翻书。在ARM嵌入式常用模块与综合系统设计实例精讲这本书的第一章就有介绍!哎哎,汗!

 

你可能感兴趣的:(ARM)