内核移植出现,arm-linux-nm,arm-linux-objdump can't find问题
http:///home.php?mod=space&uid=4087&do=blog&id=443
我在网上搜索了一些资料后,然后在自己的mini2440上面移植内核,起初我并没有做太多的修改
只是参照sc32440_defconfig进行配置,并做了时钟的修改,机器码的修改,修改编译器类型,具体步骤如下:
CROSS_COMPILE
?= arm-linux-
修改arch/arm/mach-s3c2440/mach-smdk2440.c 163行
|
s3c24xx_init_clocks(12000000); |
进入内核根目录:
make
s3c2410_defconfig
make
menuconfig
|
进入Load
an Alternate Configuration File |
在System
Type选单下,s3c24XX
Machine那部分,只选中
|
SMDK2440
with S3C2440 cpu moudle
最后make
zImage
出现了arm-linux-nm,can't
find
我上网查了一些资料,找到了解决办法,就是到编译器的目录下的bin文件中,加入arm-linux-nm的链接(我的编译器在/usr/local/arm/4.4.3/bin)
软链接为:arm-linux-nm
-> arm-angstrom-linux-gnueabi-nm(命令为:ln -s arm-angstrom-linux-gnueabi-nm | | ) 建立好连接后,重新编译,又出现arm-linux-objdump
can't find等问题,按照上述办法建立了
arm-linux-objcopy
-> arm-angstrom-linux-gnueabi-objcopy arm-linux-objdump ->
arm-angstrom-linux-gnueabi-objdump 的链接,编译后,编译成功,出现这些原因是因为有些编译器没有建立好这些链接,所以make的时候找不到这些命令
当我以为大功已成的时候,烧写的时候出现了NAND
read: device 0 offset 0x60000, size 0x200000
Reading
data from 0x25f800 -- 100% complete. 2097152 bytes read: OK ## Booting
image at 30007fc0 ... Bad Magic Number
以为是出现了坏块,用uboot的命令,直接下载到sramd:0x32000000中运行,还是不行,出现了另外的错误
后面发现自己犯了很白痴的错误,是因为我移植的uboot只依赖uImage,uImage和zImage不同的是,uImage是由真正的内核和一个头文件组成,所以用make
uImage 编译后成功
虽然自己的这些简单的移植,出现了很多的错误,不过还是学到了很多,以后继续努力,为嵌入式而努力 |
|
|