主题 : 编译uboot 2009.8出现问题:error: 'S3C24X0_GPIO' has no member named 'GPACON' 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7051
精华: 0
发帖: 23
金钱: 250 两
威望: 140 点
综合积分: 46 分
注册时间: 2009-06-29
最后登录: 2010-04-19
楼主  发表于: 2009-10-22 16:46

 编译uboot 2009.8出现问题:error: 'S3C24X0_GPIO' has no member named 'GPACON'

管理提醒: 本帖被 qq2440 从 Linux技术交流专区 移动到本区(2010-02-08)
用4.3.2编译器编译uboot-2009.08出现问题:

make[1]: 正在进入目录 `/home/k/workspace/source/u-boot-2009.08/board/samsung/mini2440'
arm-linux-gcc  -g  -Os   -fno-strict-aliasing  -fno-common -ffixed-r8 -msoft-float  -D__KERNEL__ -DTEXT_BASE=0x33F80000 -I/home/k/workspace/source/u-boot-2009.08/include -fno-builtin -ffreestanding -nostdinc -isystem /home/k/workspace/opt/arm/4.3.2/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.2/include -pipe  -DCONFIG_ARM -D__ARM__ -marm  -mabi=aapcs-linux -mno-thumb-interwork -march=armv4 -Wall -Wstrict-prototypes -fno-stack-protector   -o mini2440.o mini2440.c -c
mini2440.c: In function 'board_init':
mini2440.c:89: error: 'S3C24X0_GPIO' has no member named 'GPACON'
mini2440.c:90: error: 'S3C24X0_GPIO' has no member named 'GPBCON'
mini2440.c:91: error: 'S3C24X0_GPIO' has no member named 'GPBUP'
mini2440.c:92: error: 'S3C24X0_GPIO' has no member named 'GPCCON'
mini2440.c:93: error: 'S3C24X0_GPIO' has no member named 'GPCUP'
mini2440.c:94: error: 'S3C24X0_GPIO' has no member named 'GPDCON'
mini2440.c:95: error: 'S3C24X0_GPIO' has no member named 'GPDUP'
mini2440.c:96: error: 'S3C24X0_GPIO' has no member named 'GPECON'
mini2440.c:97: error: 'S3C24X0_GPIO' has no member named 'GPEUP'
mini2440.c:98: error: 'S3C24X0_GPIO' has no member named 'GPFCON'
mini2440.c:99: error: 'S3C24X0_GPIO' has no member named 'GPFUP'
mini2440.c:100: error: 'S3C24X0_GPIO' has no member named 'GPGCON'
mini2440.c:101: error: 'S3C24X0_GPIO' has no member named 'GPGUP'
mini2440.c:102: error: 'S3C24X0_GPIO' has no member named 'GPHCON'
mini2440.c:103: error: 'S3C24X0_GPIO' has no member named 'GPHUP'
make[1]: *** [mini2440.o] 错误 1
make[1]:正在离开目录 `/home/k/workspace/source/u-boot-2009.08/board/samsung/mini2440'
make: *** [board/samsung/mini2440/libmini2440.a] 错误 2

可是定义这个结构的头文件s3c2410.h已经包含,为什么还会出现这个问题呢,google了很久都没找到答案
[ 此帖被kasim在2009-10-22 17:41重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-10-22 17:40
这是原始的u-boot 2009.8 include/s3c24x0.h里的定义:
复制代码
  1. /* I/O PORT (see manual chapter 9) */
  2. typedef struct {
  3. #ifdef CONFIG_S3C2400
  4.     S3C24X0_REG32    PACON;
  5.     S3C24X0_REG32    PADAT;
  6.     S3C24X0_REG32    PBCON;
  7.     S3C24X0_REG32    PBDAT;
  8.     S3C24X0_REG32    PBUP;
  9.     S3C24X0_REG32    PCCON;
  10.     S3C24X0_REG32    PCDAT;
  11.     S3C24X0_REG32    PCUP;
  12.     S3C24X0_REG32    PDCON;
  13.     S3C24X0_REG32    PDDAT;
  14.     S3C24X0_REG32    PDUP;
  15.     S3C24X0_REG32    PECON;
  16.     S3C24X0_REG32    PEDAT;
  17.     S3C24X0_REG32    PEUP;
  18.     S3C24X0_REG32    PFCON;
  19.     S3C24X0_REG32    PFDAT;
  20.     S3C24X0_REG32    PFUP;
  21.     S3C24X0_REG32    PGCON;
  22.     S3C24X0_REG32    PGDAT;
  23.     S3C24X0_REG32    PGUP;
  24.     S3C24X0_REG32    OPENCR;
  25.     S3C24X0_REG32    MISCCR;
  26.     S3C24X0_REG32    EXTINT;
  27. #endif
  28. #ifdef CONFIG_S3C2410
  29.     S3C24X0_REG32    GPACON;
  30.     S3C24X0_REG32    GPADAT;
  31.     S3C24X0_REG32    res1[2];
  32.     S3C24X0_REG32    GPBCON;
  33.     S3C24X0_REG32    GPBDAT;
  34.     S3C24X0_REG32    GPBUP;
  35.     S3C24X0_REG32    res2;
  36.     S3C24X0_REG32    GPCCON;
  37.     S3C24X0_REG32    GPCDAT;
  38.     S3C24X0_REG32    GPCUP;
  39.     S3C24X0_REG32    res3;
  40.     S3C24X0_REG32    GPDCON;
  41.     S3C24X0_REG32    GPDDAT;
  42.     S3C24X0_REG32    GPDUP;
  43.     S3C24X0_REG32    res4;
  44.     S3C24X0_REG32    GPECON;
  45.     S3C24X0_REG32    GPEDAT;
  46.     S3C24X0_REG32    GPEUP;
  47.     S3C24X0_REG32    res5;
  48.     S3C24X0_REG32    GPFCON;
  49.     S3C24X0_REG32    GPFDAT;
  50.     S3C24X0_REG32    GPFUP;
  51.     S3C24X0_REG32    res6;
  52.     S3C24X0_REG32    GPGCON;
  53.     S3C24X0_REG32    GPGDAT;
  54.     S3C24X0_REG32    GPGUP;
  55.     S3C24X0_REG32    res7;
  56.     S3C24X0_REG32    GPHCON;
  57.     S3C24X0_REG32    GPHDAT;
  58.     S3C24X0_REG32    GPHUP;
  59.     S3C24X0_REG32    res8;
  60.     S3C24X0_REG32    MISCCR;
  61.     S3C24X0_REG32    DCLKCON;
  62.     S3C24X0_REG32    EXTINT0;
  63.     S3C24X0_REG32    EXTINT1;
  64.     S3C24X0_REG32    EXTINT2;
  65.     S3C24X0_REG32    EINTFLT0;
  66.     S3C24X0_REG32    EINTFLT1;
  67.     S3C24X0_REG32    EINTFLT2;
  68.     S3C24X0_REG32    EINTFLT3;
  69.     S3C24X0_REG32    EINTMASK;
  70.     S3C24X0_REG32    EINTPEND;
  71.     S3C24X0_REG32    GSTATUS0;
  72.     S3C24X0_REG32    GSTATUS1;
  73.     S3C24X0_REG32    GSTATUS2;
  74.     S3C24X0_REG32    GSTATUS3;
  75.     S3C24X0_REG32    GSTATUS4;
  76. #endif
  77. } /*__attribute__((__packed__))*/ S3C24X0_GPIO;

可以看到,像GPACON这样的成员是被CONFIG_S3C2410这样的宏定义条件编译的。鉴于mini2440上所用的S3C2440还没有被uboot正式支持,建议你在include/configs/<board name>.h里定义一个新的宏CONFIG_S3C2440, 并且在这里改成#if defined (CONFIG_S3C2410) || defined (CONFIG_S3C2440)。同样的情况适用于所有2410和2440兼容的地方,但要注意不是所有的2410的寄存器都和2440兼容,比如NAND Flash Controller
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 48923
精华: 0
发帖: 1
金钱: 5 两
威望: 1 点
综合积分: 2 分
注册时间: 2011-06-06
最后登录: 2011-06-06
2楼  发表于: 2011-06-06 16:11
请问楼主解决了吗?我也遇到同样问题,百度好久不得思路,我的邮箱767709667@qq.com  希望楼主帮帮我,不甚感激!!!