主题 : uboot1.1.6移植问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 50998
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2011-06-28
最后登录: 2011-07-03
楼主  发表于: 2011-06-28 18:23

 uboot1.1.6移植问题

请教诸位个问题,我买的开发板,按照说明书做的移植,过程如下,
1,board目录下创建ljd2410目录,然后把smdk2410里的内容复制进去,再把smdk2410.c重命名为ljd2410.c
2,include/configs目录下的smdk2410.h复制一个ljd2410.h
3,修改主目录下的Makefile。
4,开始配置,编译。
结果是如果我编译smdk2410就能通过,编译我自己移植的ljd2410就不能过,出错信息如下
interrupts.c: In function `interrupt_init':
interrupts.c:63: error: `CFG_HZ_CLOCK' undeclared (first use in this function)
interrupts.c:63: error: (Each undeclared identifier is reported only once
interrupts.c:63: error: for each function it appears in.)
interrupts.c: In function `get_timer_raw':
interrupts.c:111: error: `CFG_HZ_CLOCK' undeclared (first use in this function)
interrupts.c: In function `get_timer_masked':
interrupts.c:120: error: `CFG_HZ_CLOCK' undeclared (first use in this function)
interrupts.c: In function `udelay_masked':
interrupts.c:129: error: `CFG_HZ_CLOCK' undeclared (first use in this function)
interrupts.c: In function `reset_cpu':
interrupts.c:183: error: `us' undeclared (first use in this function)
make[1]: *** [interrupts.o] Error 1
make[1]: Leaving directory `/root/test/uboot/u-boot-1.1.6/cpu/arm920t/at91rm9200'
make: *** [cpu/arm920t/at91rm9200/libat91rm9200.a] Error 2
哪位高手帮忙看看,烦劳赐教。
级别: 新手上路
UID: 10729
精华: 0
发帖: 32
金钱: 165 两
威望: 36 点
综合积分: 64 分
注册时间: 2009-11-16
最后登录: 2012-11-11
1楼  发表于: 2011-06-28 21:59
interrupts.c:63: error: `CFG_HZ_CLOCK' undeclared (first use in this function)
CFG_HZ_CLOCK' 没有定义,仔细检查一下
级别: 新手上路
UID: 50998
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2011-06-28
最后登录: 2011-07-03
2楼  发表于: 2011-06-29 10:15
那怎么查呢?我是新手,看了下Makefile和编译后生成的/include/config.h,实在没看懂跟配置编译smdk2410有什么区别。
级别: 新手上路
UID: 10729
精华: 0
发帖: 32
金钱: 165 两
威望: 36 点
综合积分: 64 分
注册时间: 2009-11-16
最后登录: 2012-11-11
3楼  发表于: 2011-06-29 11:28
你打开那个config.h 你会发现它又包含一个头文件,你在那个头文件看看这些有没定义
级别: 新手上路
UID: 50998
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2011-06-28
最后登录: 2011-07-03
4楼  发表于: 2011-06-29 16:14
里面是#include conifgs/ljd2410.h,如果编译make smdk2410_configs的话就是#include configs/smdk2410.h,这两个文件应该是一样的啊,我直接从smdk2410.h复制的ljd2410.h。
真郁闷啊,又一天了,还是没调通。
级别: 新手上路
UID: 10729
精华: 0
发帖: 32
金钱: 165 两
威望: 36 点
综合积分: 64 分
注册时间: 2009-11-16
最后登录: 2012-11-11
5楼  发表于: 2011-06-30 11:58
CFG_HZ_CLOCK 尝试一下 自己定义这些变量 就在那个ljd2410.h 看还否报错
级别: 新手上路
UID: 50998
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2011-06-28
最后登录: 2011-07-03
6楼  发表于: 2011-06-30 17:09
直接定义这句就过了,可又出现个新的未定义的,我查了下,这些变量都定义在/include/configs/At91rm9200dk.h,这个头文件的第一句是#ifndef __CONFIG_H,一直到最后才是#endif,估计是走到这的时候__CONFIG_H被预先定义了,可我编译的smdk2410就过了啊,该怎么再继续查好呢?
级别: 新手上路
UID: 50998
精华: 0
发帖: 5
金钱: 25 两
威望: 5 点
综合积分: 10 分
注册时间: 2011-06-28
最后登录: 2011-07-03
7楼  发表于: 2011-07-03 17:39
搞定了,犯了个小错误,主目录的Makefile里的ljd2410_config添加的靠前了,编译顺序出了些问题。
虽然问题解决了,可感觉还是不太会调Linux下的大的工程文件,这个还希望能有人指点下。