打印

一直都没搞明白的一个问题~求解

[复制链接]
1978|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
accelink-yy|  楼主 | 2011-4-7 14:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在学习单片机程序,遇到一个问题,困扰了我很久,现在来向论坛里面的工程师请教一下~
1 如果定义了一个指针变量如下
  char xdata *pflashpage
然后调用一个函数:rdflashpag0(0*0x80)
现在执行调用函数:
void rdflashpag0(uint pagebias)
{uchar i;
  char xdata *pflashpage;      
  pflashpage =(char xdata*)(0x400+pagebias);
   。。。。。
}
那么执行完上述语句之后,pflashpage的值是多少?可否详细讲一下语句:pflashpage =(char xdata*)(0x400+pagebias);的意思~

2 在使用MSC1210 启动ROM里面自带的函数时,有一个这样的函数:
char write_flash_chk (int faddr, char fdata, char fdm) 那么faddr, fdata ,fdm分别表示什么意思~个人现在猜测fdm是否为调用该函数后的返回值~

提的问题可能比较弱智,希望论坛里面的工程师指导一二~在此谢过啦~

相关帖子

沙发
ayb_ice| | 2011-4-7 16:04 | 只看该作者
fdm肯定不是返回值,如果是返回值应该传递指针,所以是个参数
这种问题要么看源代码,要么找资料

使用特权

评论回复
板凳
joyme| | 2011-4-7 16:55 | 只看该作者
pflashpage =(char xdata*)(0x400+pagebias);

仅仅是一个赋值语句,即把开始读取的ROM开始地址赋给指针pflashpage,再开始从这个地址读取flash的数据。这种赋值只是方便后面的循环操作,比如:
while(pflashpage<PAGE_SIZE)
    *bufdata++ = *pflashpage++;

至于fdm肯定是参数,可能是定义不同的校验模式什么的,具体要看程序

使用特权

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

本版积分规则

0

主题

59

帖子

0

粉丝