当前位置:  技术问答>linux和unix

UBOOT中添加CFG_CMD_NAND出现问题?

    来源: 互联网  发布时间:2016-04-25

    本文导语:  在给2440移植UBOOT时,使用的是UBOOT1.2版本交叉编译工具采用crosstool-0.43.tar制作的gcc-4.0.2-glibc-2.3.5-tls的arm-9tdmi-linux-gnu-gcc和arm-softfloat-linux-gnu-gcc 在#define CONFIG_COMMANDS  (CONFIG_CMD_DFL  |  CFG_CMD_CACHE  |  /*CFG_CMD_NAND  |...

在给2440移植UBOOT时,使用的是UBOOT1.2版本交叉编译工具采用crosstool-0.43.tar制作的gcc-4.0.2-glibc-2.3.5-tls的arm-9tdmi-linux-gnu-gcc和arm-softfloat-linux-gnu-gcc
在#define CONFIG_COMMANDS 
(CONFIG_CMD_DFL  | 
CFG_CMD_CACHE  | 
/*CFG_CMD_NAND  |*/ 
/*CFG_CMD_EEPROM |*/ 
/*CFG_CMD_I2C  |*/ 
/*CFG_CMD_USB  |*/ 
CFG_CMD_REGINFO  | 
CFG_CMD_DATE  | 
CFG_CMD_PING     | 
CFG_CMD_DHCP     | 
CFG_CMD_ELF)
中加入CFG_CMD_NAND后,编译出现一下错误
/root/uboot/include/s3c24x0.h:193: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:193: warning: no semicolon at end of struct or union
/root/uboot/include/s3c24x0.h:194: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:195: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:196: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:197: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:198: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:199: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:200: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:201: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:202: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:203: error: syntax error before "volatile"
/root/uboot/include/s3c24x0.h:205: error: syntax error before '}' token
/root/uboot/include/s3c24x0.h:205: warning: type defaults to `int' in declaration of `S3C2440_NAND'
/root/uboot/include/s3c24x0.h:205: warning: data definition has no type or storage class
In file included from smdk2440.c:29:
对应的定义在S3C24X0.H中定义为:

#if defined (CONFIG_S3C2440)
/* NAND FLASH (see S3C2440 manual chapter 6, www.embedsky.net) */
typedef struct {
S3C24X0_REG32 NFCONF;
S3C24X0_REG32 NFCONT;
S3C24X0_REG32 NFCMD;
S3C24X0_REG32 NFADDR;
S3C24X0_REG32 NFDATA;
     S3C24X0_REG32 NFMECC0;
     S3C24X0_REG32 NFMECC1;
     S3C24X0_REG32 NFSECC;
S3C24X0_REG32 NFSTAT;
     S3C24X0_REG32 NFESTAT0;
     S3C24X0_REG32 NFESTAT1;
     S3C24X0_REG32 NFMECC0_;
     S3C24X0_REG32 NFMECC1_;
     S3C24X0_REG32 NFSECC_;
S3C24X0_REG32 NFSBLK;
     S3C24X0_REG32 NFEBLK;
} /*__attribute__((__packed__))*/ S3C2440_NAND;
#endif

typedef volatile u8 S3C24X0_REG8;
typedef volatile u16 S3C24X0_REG16;
typedef volatile u32 S3C24X0_REG32;
请问这是什么错误,采用2种交叉编译环境后着一块的错误一样

在没加入NAND选项时,编译正确,生成的BIN下载的板子后运行正确。

|
这种错误大多是由于 编译器没有找到你所使用的类型定义 造成的

看看 在打开 CFG_CMD_NAND 选项后是否又屏蔽了相关类型的定义!

|
看起来很 恐怖

|
真正的错误提示是:
/root/uboot/include/s3c24x0.h:193: warning: no semicolon at end of struct or union

smdk2440.c:29查起

|
其实你不用别人给你一份 uboot
在uboot里面有很多的参考的代码,用make distclean 清除一下
然后在 MAKEALL 里面找一个和你的板子最接近的一个,选择之
比如 pxa 里面有一个 xaeniax ,在include/configs/xaeniax.h 就是该板子的配置
直接make xaeniax_config (这个在Makefile里面对应有)
make
就有了

|
这种问题都是模棱两可的问题。
你的信息有不是很全面,怎么给你debug
或者因为加入了CFG_CMD_NAND之后有与volatile相冲突的事情。

还有就是你在加入CFG_CMD_NAND的时候有多少空格,有没有用tab键。
这个也很有可能的。我之前碰到过这个问题的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 编译uboot时候出现的问题,请大虾进来看看
  • 区分uboot和kernel的宏
  • 怎么用gdb调试uboot?????求解
  • ARM11 UBOOT移植问题
  • uboot 不能启动了
  • UBOOT启动一直输出OK是怎么回事
  • uboot移植后,使用历史命令问题~
  • uboot里 nboot 和 nboot.e有什么区别
  • uboot烧写问题,大家指教。初学。谢谢大家了。
  • dm355 uboot调试问题,高手指教,快,快,很急。。。。。。。。。。。。。。。。
  • 关于uboot打补丁的问题
  • 求各位高人 UBOOT!
  • UBOOT之MDDR内存参数修改
  • 关于uboot2009.08 debug的问题
  • uboot1.1.6移植问题
  • uboot 实现升级的问题。
  • uboot 怎样不输出内核信息
  • uboot和grub是什么关系
  • 如何让uboot自动从U盘更新内核?
  • 如何让uboot提速
  • 请教uboot进入命令行加密的模式问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3