打印
[ZLG-ARM]

求助周工,关于__align(4) uint8 SendData[512];

[复制链接]
1740|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Ice_River|  楼主 | 2007-8-1 13:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int main (void)
{
__align(4) uint8 SendData[512]; // 定义变量区
uint32 i;
for(i = 0; i < 512; i++) // 初始化变量区数据
{
SendData = i;
}
SelSector(7, 7); // 选择扇区
EraseSector(7,7); // 擦除扇区
SelSector(7, 7); // 选择扇区
RamToFlash(DestAddr, (uint32)SendData, 512); // 写数据到FLASH
while(1);
return 0;
}
EasyARM2200自带的IAP测试程序可以通过,可是用上面的函数做实验不成功。
请教__align(4) uint8 SendData[512]; 
这个数组占多大空间?(cpu lpc2292  内部RAM 16k)
256字对齐如果起始地址为0x0000放第一个数据(8bit),那么第二个数据(8bit)存放的地址是0x0001 还是0x0100? 

相关帖子

沙发
zlgARM| | 2007-8-1 14:34 | 只看该作者

Ice_River

您好:
    请您做一个实验,观察__align(4) uint8 SendData[10]的情况。SendData[10]您自己初始化。 公司停电,没法实地调试,十分抱歉!

使用特权

评论回复
板凳
Ice_River|  楼主 | 2007-8-1 15:50 | 只看该作者

好的!多谢!

int main (void)
{
//__align(4) uint8 SendData[512]; // 定义变量区
uint32 i;
for(i = 0; i < 512; i++) // 初始化变量区数据
{
SendData = i;
}
SelSector(1, 1); // 选择扇区
EraseSector(1,1); // 擦除扇区
SelSector(1, 1); // 选择扇区
RamToFlash(0x00002000, 0x40000300, 512); // 写数据到FLASH
while(1);
return 0;
}
这个函数外部RAM仿真的时候可以运行,数据正确,写入内部就死了
SelSector(1, 1); 死在这个函数上面,如果在内部运行的话,需要注意些什么问题呢?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

149

主题

1882

帖子

0

粉丝