有关2138的IAP问题请教

[复制链接]
2586|4
 楼主| 牛牛特工 发表于 2007-10-30 09:02 | 显示全部楼层 |阅读模式
程序如下<br />uint16&nbsp;&nbsp;tmpR[128],tmpG[128];<br />void&nbsp;write_to_flash(void)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bptr=(uint8*)tmpR;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SelSector(10,10);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vIntUart_TransmitByte(0,(uint8)(paramout[0]&0xff));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RamToFlash(0x18000,(uint32)(Bptr),256);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;写数据到扇区10&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BlankCHK(10,10);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />由于对Flash读写不成功我就读出了IAP程序的返回值它总是02(地址未对齐到字&nbsp;我觉得很费解!)<br />IAP程序如下<br />void&nbsp;&nbsp;RamToFlash(uint32&nbsp;dst,&nbsp;uint32&nbsp;src,&nbsp;uint32&nbsp;no)<br />{&nbsp;&nbsp;paramin[0]&nbsp;=&nbsp;IAP_RAMTOFLASH;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置命令字<br />&nbsp;&nbsp;&nbsp;paramin[1]&nbsp;=&nbsp;dst;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置参数<br />&nbsp;&nbsp;&nbsp;paramin[2]&nbsp;=&nbsp;src;<br />&nbsp;&nbsp;&nbsp;paramin[3]&nbsp;=&nbsp;no;<br />&nbsp;&nbsp;&nbsp;paramin[4]&nbsp;=&nbsp;IAP_FCCLK;<br />&nbsp;&nbsp;&nbsp;(*IAP_Entry)(paramin,&nbsp;paramout);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;调用IAP服务程序<br />}<br />copy的模板
 楼主| 牛牛特工 发表于 2007-10-30 09:03 | 显示全部楼层

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

我定义的tmpR本身就是short型的16位数据不知道为何认为我没有对齐到字
dld2 发表于 2007-10-30 09:11 | 显示全部楼层

RE:

“地址未对齐到字”,这里的字会不会是32bit的字。而你的缓冲区没有按照32bit对齐。<br />
 楼主| 牛牛特工 发表于 2007-10-30 09:20 | 显示全部楼层

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

我以前都这么定义的&nbsp;能够成功&nbsp;看当时是巧合&nbsp;&nbsp;定义成16位也有50%的成功率
 楼主| 牛牛特工 发表于 2007-10-30 09:21 | 显示全部楼层

谢谢楼上

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

52

主题

618

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部