lpc1768中结构体在RAM中的存储格式

来源:互联网 发布:java object定义 编辑:程序博客网 时间:2024/05/18 18:20

最近在调试1768和外接的字节存取存储器,涉及到了由于不了解结构体类型在ram中的存储格式,出现bug也不知道是哪里的问题.今天好好看了下,这里做一总结.

 lpc1768是小端存储(注释①),四字节对齐,下面举例子说明结构体在ram中的存储格式.

例子1:

结构体定义如下:

struct{ uint8  arg1;//arg1 =0x01 uint8  arg2;//arg2 =0x02 uint32 arg3;//arg3 =0x12345678 uint8  arg4;//arg4 =0x04 uint32 arg5;//arg5 =0x23456789 uint8  arg6;//arg6 =0x06                                                                                                                                  uint16 arg7;//arg7 =0x0755 uint32 arg8;//arg8 =0x456789ab}TEST_STRUCT; 

 假设结构体首地址为0x2007C124,则 其在存储器中的存储形式如下:

结构体中元素所占的空间都要凑成4byte对齐...

    

注释①:在 <<34.5 ARM Cortex-M3 User Guide: Glossary>>(参见1768手册)有这么一段话: 不知道可不可以认为基于cortex-M3内核的存储结构都是小端模式.望知情者告知,以免误导他人.

34.3.1.5 Data typesThe processor:• supports the following data types:– 32-bit words– 16-bit halfwords– 8-bit bytes• supports 64-bit data transfer instructions.• manages all data memory accesses as little-endian. See Section 34.3.2.1 for more information.








原创粉丝点击