阅读:1617回复:3
我调试固件程序时关于指针出现的问题,向各位请教!
是这样的,我有三个函数:
函数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 我对指针不是很精通,哪位大侠给指点一下,多谢啦! |
|
沙发#
发布于: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; } 可能有些相同点,你对照着瞧瞧 试试 |
|
板凳#
发布于:2003-02-17 21:33
有谁熟悉C++帮我看看函数1和函数2是不是有问题,他们说C51不支持这么用。我用的是斑竹的程序,或许是我只是这么简单的写了一下。真的好晕哦!
|
|
地板#
发布于:2003-02-14 16:07
CodeData.wCodeAddress不是指针变量,你把它传给一个指针变量就出错了
[编辑 - 2/14/03 by bjdxwz] |
|