qiezi
驱动小牛
驱动小牛
  • 注册日期2002-10-17
  • 最后登录2005-04-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1615回复:3

我调试固件程序时关于指针出现的问题,向各位请教!

楼主#
更多 发布于:2003-02-14 14:12
是这样的,我有三个函数:
函数1、
RAMWrite(GenBuf, CodeData.wCodeAddress, sizeof(GenBuf));

函数2、
unsigned char RAMWrite(unsigned char idata* pSrc, unsigned char xdata* pDst,
unsigned char nLen)
{
    unsigned char i, j;
    // First, Write every bytes in GenBuf to the flash
    for(i=0; i<nLen; i++)
    {
        ENABLE_RAM;
        outportb(pDst + i, *(pSrc + i));
    return j;
}
函数3、
void outportb(unsigned short nPort, unsigned char nVal)
{
char i;
    unsigned char xdata *exAddress;
    i=0;
    exAddress = nPort;
    *exAddress = nVal;
        DISABLE_RAM;
}
其中GenBuf是:unsigned char idata GenBuf[128];
CodeData.wCodeAddress为unsigned short 型数据;
我编译的时候在函数1和函数2处总出现这样的警告:FLASH.C(52): warning
C214: \'Argument\': conversion: pointer to non-pointer
我对指针不是很精通,哪位大侠给指点一下,多谢啦!



bjdxwz
驱动牛犊
驱动牛犊
  • 注册日期2002-11-07
  • 最后登录2007-06-01
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-14 16:07
CodeData.wCodeAddress不是指针变量,你把它传给一个指针变量就出错了

[编辑 -  2/14/03 by  bjdxwz]
qiezi
驱动小牛
驱动小牛
  • 注册日期2002-10-17
  • 最后登录2005-04-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-17 21:33
有谁熟悉C++帮我看看函数1和函数2是不是有问题,他们说C51不支持这么用。我用的是斑竹的程序,或许是我只是这么简单的写了一下。真的好晕哦!
puppypyb
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分52分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-18 00:06
周立功的 epphal.c里面的

void outportb(unsigned char port, unsigned char val)
{
unsigned char xdata *ext_address;

ext_address=0xff00 + port;
*ext_address = val;


}

unsigned char inportb(unsigned char port)
{
unsigned char c;
unsigned char xdata *ext_address;

ext_address=0xff00 + port;
c = *ext_address ;



return c;
}

可能有些相同点,你对照着瞧瞧 试试
游客

返回顶部