linux2.6.24.4移植到up-tech2410
来源:互联网 发布:网站编程要学什么 编辑:程序博客网 时间:2024/06/06 10:57
linux2.6.24.4移植到up-tech2410
最近移植linux2.6.24.4到up-tech2410上,用的内核是博创提供的linux2.6.24.4的内核,不得不说的是现在的公司真的很不负责任,竟然内核里面还有错误,还要让我
自己去修改,幸好那个错误只是很简单的一个错误所以这里就不提啦。
其实移植的过程都很简单,因为博创提供的内核都已经经过裁剪的了,直接 make menuconfig ,make zImage就可以了。因为我们用的是U—boot的引导程序所以内核要用make uImage 来变为u-boot专用的内核映像。其实就是在zImage的头部加上0x40个字节的数据。
当时我是把mkimage这个工具放到了交叉编译的bin里面,直接利用make uimage来生成uImage。但是这个就出现了问题data abort 问题
NAND read: device 0 offset 524288, size 2097152 ...
2097152 bytes read: OK
## Booting image at 30008000 ...
Image Name: Linux-2.6.30.10
Created: 2010-04-25 9:59:17 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1966552 Bytes = 1.9 MB
Load Address: 30008000
Entry Point: 30008000
Verifying Checksum ... OK
XIP Kernel Image ... OK
Starting kernel ...
data abort
pc : [<30008010>] lr : [<33f94754>]
sp : 33f4faa0 ip : 30008000 fp : 00000002
r10: 00000000 r9 : 33e7fe2c r8 : 33f4ffdc
r7 : 33f9e278 r6 : 33f9e278 r5 : 30008000 r4 : 00000000
r3 : 30008000 r2 : 30000100 r1 : 000000c1 r0 : 33f4fce8
Flags: nZCv IRQs off FIQs off Mode SVC_32
Resetting CPU ...
就是近不了linux上,然后google了一下,终于找到了问题所在
原帖:http://weisilifangdong.blog.sohu.com/149608922.html
那是因为我执行make uimage的时候没有指定参数,那么就会默认为开始地址为0x30008000,内核入口地址也为0x30008000。
因为制作uImage的时候会在内核映像的头部加上0x40个字节的数据,所以内核入口地址就应该为0x30008040。
重新执行命令./mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -n linux-2.6.24.4 -d zImage(你的zImage的路径) uImage
就成功了。
具体mkimage的参数为
参数说明:
-A arm -------- 架构是arm
-O linux -------- 操作系统是linux
-T kernel -------- 类型是kernel
-C none -------- 压缩类型为无压缩
-a 30008000 ---- image的载入地址(hex)
-e 30008000 ---- 内核的入口地址(hex)
-n linux-2.6.30.10 --- image的名字
-d zImage ---- 无头信息的image文件名 uImage ---- 加了头信息之后的image文件名
- linux2.6.24.4移植到up-tech2410
- Linux2.6.30.4系统移植到TQ2440
- linux2.6.30.4移植到TQ2440
- 移植linux2.6.29内核及根文件系统到UP-CPU-2410(1)
- 移植linux2.6.29内核及根文件系统到UP-CPU-2410(2)
- 移植linux2.6.29内核及根文件系统到UP-CPU-2410(3)
- Linux2.6.24内核移植
- 系统移植(linux2.6.30.4到TQ2440)出错本
- linux2.6.30.4中dm9000网卡成功移植到TQ2440
- 成功从linux2.6.17.4移植到linux2.6.38.8版本[一]
- [S3C6410]Linux2.6.28到Linux2.6.32的内核移植
- 移植linux2.6.11.7到s3c2410
- linux2.6.14内核移植到2410
- linux2.6.21 kernel移植到AT91SAM9261EK
- 移植linux2.6.25内核到s3c2440详解
- LTV350QV移植到linux2.6.33内核
- s3c2410移植MPlayer到linux2.6
- Linux2.6.32.2移植到Mini2440
- 6410上的TSLIB移植问题
- 调试WebService 模式编写的代码
- android 电话录音
- 自己对多线程 的wait 跟notify的理解
- 经典的C 库
- linux2.6.24.4移植到up-tech2410
- linux线程池的C语言实现
- 启动VMware出现报错:The VMware Authorization Service is not running
- 面试题
- java.net.UnknownHostException: webservice.webxml.com.cn
- JVM基础概念总结:数据类型、堆与栈
- Android Activity 生命周期再验证
- 节能 第四届河南省程序竞赛
- KPCA分割