刚编写了一个程序,大概如下:
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一下看看。近来时间不宽余,空了详细分析。
欢迎大家讨论。。。。。。。。。。。。。