打印

有关2138的IAP问题请教

[复制链接]
1392|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
牛牛特工|  楼主 | 2007-10-30 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序如下
uint16  tmpR[128],tmpG[128];
void write_to_flash(void)
    {
       Bptr=(uint8*)tmpR;
       SelSector(10,10);
       vIntUart_TransmitByte(0,(uint8)(paramout[0]&0xff));
       RamToFlash(0x18000,(uint32)(Bptr),256);
      // 写数据到扇区10    
      BlankCHK(10,10);
   
   }
由于对Flash读写不成功我就读出了IAP程序的返回值它总是02(地址未对齐到字 我觉得很费解!)
IAP程序如下
void  RamToFlash(uint32 dst, uint32 src, uint32 no)
{  paramin[0] = IAP_RAMTOFLASH;             // 设置命令字
   paramin[1] = dst;                        // 设置参数
   paramin[2] = src;
   paramin[3] = no;
   paramin[4] = IAP_FCCLK;
   (*IAP_Entry)(paramin, paramout);         // 调用IAP服务程序
}
copy的模板

相关帖子

沙发
牛牛特工|  楼主 | 2007-10-30 09:03 | 只看该作者

以前并没有出现过这样的情况

我定义的tmpR本身就是short型的16位数据不知道为何认为我没有对齐到字

使用特权

评论回复
板凳
dld2| | 2007-10-30 09:11 | 只看该作者

RE:

“地址未对齐到字”,这里的字会不会是32bit的字。而你的缓冲区没有按照32bit对齐。

使用特权

评论回复
地板
牛牛特工|  楼主 | 2007-10-30 09:20 | 只看该作者

了解 我思维还停在51了 还以为字是16位的了 呵呵

我以前都这么定义的 能够成功 看当时是巧合  定义成16位也有50%的成功率

使用特权

评论回复
5
牛牛特工|  楼主 | 2007-10-30 09:21 | 只看该作者

谢谢楼上

使用特权

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

本版积分规则

52

主题

618

帖子

2

粉丝