历史上的今天
今天是:2024年12月18日(星期三)
2018年12月18日 | lpc1768中结构体在RAM中的存储格式
2018-12-18 来源:eefocus
最近在调试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.3.1.5 Data types
The 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.
下一篇:STM32—IWDG看门狗
史海拾趣
|
当USB设备端捕捉到主机端的URB接收请求,是否一定要回应一段数据? 问题是这样的,主机端想阻塞接收USB的数据,USB的固件的这样处理响应的: 有数据,发出数据及长度;无数据,发空数据及长度0. 这样就导致主机端接收函数根本没有阻塞点,固件改成没数据就不发送长度0,结果有数据的时候也不响应了. 是协议强制 ...… 查看全部问答> |
|
用的是2440的CPU,WINCE5.0的系统.在没接USB鼠标之前系统都没有出现过死机,但是最近接上USB鼠标后,操作没几分钟就死机了,有时要操作20多分钟之后才死机,有时刚接上就死机了,最郁闷的事,死机了调试串口都没输出出错信息,都不知道从哪里开始找.请问该 ...… 查看全部问答> |
|
WZCQueryInterface和WZCQueryInterfaceEx的区别是什么? WZCSetInterface和WZCSetInterfaceEx的区别是什么? 我的系统是WINCE5.0,君正MIPSII,为什么WZCQueryInterfaceEx和WZCSetInterfaceEx有时会报异常? 还有有时连上某个热点后,就搜索不到新 ...… 查看全部问答> |
|
知道Framework编写的代码执行效率低一点,不知道会不会有很明显的差别? 如果系统是用EVC编写的,还能不能嵌套进入Framework来编程?… 查看全部问答> |




