打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
内核移植出现,arm-linux-nm,arm-linux-objdump can't find问题
http://ajava.org/home.php?mod=space&uid=4087&do=blog&id=443
我在网上搜索了一些资料后,然后在自己的mini2440上面移植内核,起初我并没有做太多的修改
只是参照sc32440_defconfig进行配置,并做了时钟的修改,机器码的修改,修改编译器类型,具体步骤如下:
修改 顶层Makefile:
ARCH ?= arm
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那部分,只选中
SMDK2410/A9M2410
SMDK2440
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-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 编译后成功
虽然自己的这些简单的移植,出现了很多的错误,不过还是学到了很多,以后继续努力,为嵌入式而努力
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
潜入式大讲坛
gcc除法问题
编译内核出错:invalid option `abi=aapcs-linux'
mtd_debug:linux下直接读写flash扇区 及 交叉编译mtd_utils
ARM USB蓝牙,Bluez 移植。
AT91SAM9260EK移植Bootstrap-v1.15
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服