天嵌 ARM开发社区

 找回密码
 注册
查看: 1692|回复: 3

ioremap时出现警告 warning: assignment makes integer from pointer without a cast

[复制链接]
gxt15s 发表于 2013-5-10 14:44:49 | 显示全部楼层 |阅读模式
本帖最后由 gxt15s 于 2013-5-10 14:45 编辑

出现警告的函数:
int address_map(void)
{

        //SPI registers
        r_SPCON0 = ioremap(0x59000000,4);   //将一个IO地址空间映射到内核的虚拟地址空间上去,便于访问
        r_SPSTA0 = ioremap(0x59000004,4);
        r_SPPIN0 = ioremap(0x59000008,4);
        r_SPPRE0 =  ioremap(0x5900000C,4);
        r_SPTDAT0 = ioremap(0x59000010,4);
        r_SPRDAT0 = ioremap(0x59000014,4);


        //I/O registers
        r_GPACON=ioremap(0x56000000,4);
        r_GPADAT=ioremap(0x56000004,4);

        r_GPECON = ioremap(0x56000040,4);
        r_GPEUP  = ioremap(0x56000048,4);


        r_GPGCON = ioremap(0x56000060,4);
        r_GPGUP = ioremap(0x56000068,4);
        r_GPGDAT = ioremap(0x56000064,4);

        return 0;
}

变量定义:
#define rSPCON0 (*(volatile unsigned long *)r_SPCON0)   /*SPI control Register*/
#define rSPSTA0 (*(volatile unsigned long *)r_SPSTA0)   /*SPI status Register*/
#define rSPPIN0 (*(volatile unsigned long *)r_SPPIN0)   /* SPI pin controlRegister*/

#define rSPPRE0 (*(volatile unsigned long *)r_SPPRE0)  /*SPI Baud Rate Prescaler Register */
#define rSPTDAT0 (*(volatile unsigned long *)r_SPTDAT0) /*SPI Tx Data Register*/
#define rSPRDAT0 (*(volatile unsigned long *)r_SPRDAT0) /*SPI Rx Data Register*/

#define rGPACON (*(volatile unsigned long *)r_GPACON) /*nGCS2*/
#define rGPADAT (*(volatile unsigned long *)r_GPADAT) /*nGCS2*/

/*I/O registers*/
#define rGPECON (*(volatile unsigned long *)r_GPECON) /*Configure the pins of port E*/
#define rGPEUP  (*(volatile unsigned long *)r_GPEUP)  /*Pull-up disable register for port E*/


#define rGPGCON (*(volatile unsigned long *)r_GPGCON)    /*nSS0 nSS1 Configure the pins of port G    nSS0*/
#define rGPGUP  (*(volatile unsigned long *)r_GPGUP)     /*Pull-up disable register for port G*/
#define rGPGDAT (*(volatile unsigned long *)r_GPGDAT)     /*The data register for port G*/

#define MCP2510_CanRevBuffer        128        //CAN接收缓冲区大小

unsigned long r_SPCON0,r_SPSTA0,r_SPPIN0,r_SPPRE0,r_SPTDAT0,r_SPRDAT0;
unsigned long r_GPECON,r_GPEUP;
unsigned long r_GPACON,r_GPADAT;

unsigned long r_GPGCON,r_GPGUP,r_GPGDAT;

错误信息:
can.h: In function `address_map':
can.h:42: warning: assignment makes integer from pointer without a cast
can.h:43: warning: assignment makes integer from pointer without a cast
can.h:44: warning: assignment makes integer from pointer without a cast
can.h:45: warning: assignment makes integer from pointer without a cast
can.h:46: warning: assignment makes integer from pointer without a cast
can.h:47: warning: assignment makes integer from pointer without a cast
can.h:51: warning: assignment makes integer from pointer without a cast
can.h:52: warning: assignment makes integer from pointer without a cast
can.h:54: warning: assignment makes integer from pointer without a cast
can.h:55: warning: assignment makes integer from pointer without a cast
can.h:58: warning: assignment makes integer from pointer without a cast
can.h:59: warning: assignment makes integer from pointer without a cast
can.h:60: warning: assignment makes integer from pointer without a cast

请问一下这个警告是怎么回事?纠结了我很久了

TQ-ZQL 发表于 2013-5-10 17:47:23 | 显示全部楼层
看下ioremap函数的原型,返回的是void*,肯定会警告的
 楼主| gxt15s 发表于 2013-5-11 10:33:02 | 显示全部楼层
TQ-ZQL 发表于 2013-5-10 17:47
看下ioremap函数的原型,返回的是void*,肯定会警告的

那应该如何解决呢?
TQ-ZQL 发表于 2013-5-14 10:33:55 | 显示全部楼层
加个强制转换就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-24 05:30 , Processed in 1.140625 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表