近来准备研究一下arm的字节对齐问题

刚编写了一个程序,大概如下:

 

struct AAA

{

char  num;

void (*pFun)(char *);

};

void Fun1(char *);

void Fun2(char *);

struct AAA  testAAA[]

{

{8  ,  Fun1},

{8  ,  Fun2},

};

 

void Fun1(char *)

{

 

}

 

void Fun2(char *)

{

 

}

目的是为了利用函数指针方便应用

编译可以通过,download也可以运行,但是就是load的时候出错。很诡异。

 

解决办法是

struct AAA

{

char  num;

char  resavenum[7];

void (*pFun)(char *);

};

struct AAA  testAAA[]

{

{8  , 8  , 8  , 8  , 8  , 8  , 8  , 8  ,  Fun1},

{8  , 8  , 8  , 8  , 8  , 8  , 8  , 8  ,  Fun2},

};

让他对齐。具体原因还不清楚,需要研究,先记下来。

肯定是字节对齐的问题,具体原因说不出来,莫非从网口download和实际从flash上引导不一样。

还有就是这个数组存储是按照什么方式压缩,需要实验一下,sizeof一下看看。近来时间不宽余,空了详细分析。

欢迎大家讨论。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值