linux 内核入口地址,linux内核的加载地址和入口地址

编译完内核之后,会产生zImage,而把它直接导入0x30008000,会出现Bad Magic Number.

查明是需要将内核加一个0x40大小的头,由mkimage工具来添加.mkimage在编译u-boot时在u-boot-1.1.6/tools下生成,可以为编译的内核添加头信息的.在bootm命令中会解析这个头,获得参数.zImage在编译内核时,在arch/arm/boot目录下生成。我们需要把zImage用mkimage工具处理一下。

mkimage参数的意义如下:

-A == set architecture to 'arch'

-O == set operating system to 'os'

-T == set image type to 'type'

-C == set compression type 'comp'

-a == set load address to 'addr' (hex)

-e == set entry point to 'ep' (hex)

-n == set image name to 'name'

-d == use image data from 'datafile'

-x == set XIP (execute in place)

首先可以把zImage拷贝到u-boot-1.1.6/tools目录下,在此目录下,执行如下命令:

./mkimage -n 'linux-2.6.26' -A arm -O linux -T kernel -C none -a 0x30007fc0 -e 0x30008000 -d zImage uImage

输出信息如下:

Image Name:linux-2.6.26

Created:Tue Jul 28 18:50:26 2009

Image Type:ARM Linux Kernel Image (uncompressed)

Data Size:1655648 Bytes = 1616.84 kB = 1.58 MB

Load Address: 0x30007FC0

Entry Point:0x30008000

可以看出加载地址是0x30007fc0,而入口地址是0x30008000.

GEC2410 #tftp 30008000 uImage

TFTP from server 192.168.0.50; our IP address is 192.168.0.100

Filename 'uImage'.

Load address: 0x30008000

Loading: #################################################################

#################################################################

#################################################################

#################################################################

################################################################

done

Bytes transferred = 1655712 (1943a0 hex)

GEC2410 #bootm 30008000

## Booting image at 30008000 ...

Image Name:linux-2.6.26

Created:2009-07-2810:50:26 UTC

Image Type:ARM Linux Kernel Image (uncompressed)

Data Size:1655648 Bytes =1.6 MB

Load Address: 30007fc0

Entry Point:30008000

Verifying Checksum ... OK

OK

Starting kernel ...(卡死在这儿了)

GEC2410 #tftp 30008000 uImage

TFTP from server 192.168.0.50; our IP address is 192.168.0.100

Filename 'uImage'.

Load address: 0x30008000

Loading: #################################################################

#################################################################

#################################################################

#################################################################

################################################################

done

Bytes transferred = 1655712 (1943a0 hex)

GEC2410 #bootm 30007fc0

## Booting image at 30007fc0 ...

Bad Magic Number

GEC2410 #tftp 30007fc0 uImage

TFTP from server 192.168.0.50; our IP address is 192.168.0.100

Filename 'uImage'.

Load address: 0x30007fc0

Loading: #################################################################

#################################################################

#################################################################

#################################################################

################################################################

done

Bytes transferred = 1655712 (1943a0 hex)

GEC2410 #bootm 30008000

## Booting image at 30008000 ...

Bad Magic Number

GEC2410 #

GEC2410 # tftp 0x30007fc0 uImage

TFTP from server 192.168.0.50; our IP address is 192.168.0.100

Filename 'uImage'.

Load address: 0x30007fc0

Loading: #################################################################

#################################################################

#################################################################

#################################################################

################################################################

done

Bytes transferred = 1655712 (1943a0 hex)

GEC2410 #bootm 30007fc0

## Booting image at 30007fc0 ...

Image Name:linux-2.6.26

Created:2009-07-2810:50:26 UTC

Image Type:ARM Linux Kernel Image (uncompressed)

Data Size:1655648 Bytes =1.6 MB

Load Address: 30007fc0

Entry Point:30008000

Verifying Checksum ... OK

XIP Kernel Image ... OK

Starting kernel ...

Uncompressing Linux............................................................................................................ done, booting the kernel.

………………….

(一大堆信息)

从上面可以看出,tftp下载的地址和bootm引导的地址是同一个地址,且是mkimage的参数 -a 的地址,即加载地址,而不是入口地址。

./mkimage -n 'linux-2.6.26' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage

Created:Tue Jul 28 19:21:15 2009

Image Type:ARM Linux Kernel Image (uncompressed)

Data Size:1655648 Bytes = 1616.84 kB = 1.58 MB

Load Address: 0x30008000

Entry Point:0x30008000

入口地址和加载地址一样的时候,

我在做这个尝试的时候,导致开发板重启……。

现在能正确引导内核啦,但是GEC2410的网卡芯片是CS8900A的芯片,要能正确的启动Linux系统,还必须添加CS8900A的驱动……

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux脚本监控某一进程,linux监控某个进程的运行shell脚本

该脚本实现了对指定进程名的进程进行每隔2的扫描监控,一旦发现进程不存在便重新启动。#!/bin/sha10;while [[ a -gt 5 ]]; doif test $(pgrep -f $1|wc -l) -eq 2;thensh stop.shgnome-terminal -x sh start.sh &fi;sleep 2;done;总结:(1)&表示当…

kali linux conky配置文件,7个美丽的Conky配置为您的Linux桌面 | MOS86

现在,大多数Linux用户非常熟悉Conky包括多少人都没有今天我们Note:其中一些不仅仅是一个习惯。conkyrc文件。许多都配有专门的字体或附加软件,有些则作为更大的桌面主题的一部分打包。此处列出的所有配置都提供了到原始下载位置以及每个包的链接此外&…

sd卡linux错误检测,android系统正在准备SD卡正在检测是否有错误且SD卡无法读取解决办法...

手机android系统,也许您会碰到这样的情况。错误提示:正在准备SD卡 正在检测是否有错误。这时sd卡(即内存卡)不能正常使用,不管手机自带的程序,还是通过usb口连接到电脑都无法识别sd卡。这可能是由于没有正常卸载sd卡导致的原因。比…

linux+系统优化基础,Linux入门基础(三):Linux用户及权限基础

用户基础用户和组每个用户都拥有一个userid每个用户都属于一个主组,属于一个或多个附属组每个组拥有一个groupid每个进程以一个用户身份运行,受该用户可访问资源限制每个可登陆用户拥有一个指定的shell用户userid为32位,从0开始,为了和老式系统兼容,用户id限制在60000以下用户分…

linux dhcp 负载均衡,dhcp双机负载均衡

dhcp双机负载均衡1:环境介绍:我是用两个linux机器(dhcpd server 一个是master ,一个是slave)和一个windows xp机器来做的(测试用的client!) ,master:ip:172.17.61.124netmask:255.255.255.0gw:1…

c语言 字节转换成位,C语言中的字节序和指针转换

我在计算机上用以下代码部分编写了一个C程序:uint32_t test 0x01020304;uint8_t array[4];memcpy(array, &test, 4);printf("%02x %02x %02x %02x",array[0], array[1], array[2], array[3]);它打印04030201,但我希望是01020304。我是否必…

C语言顺序结构程序设计PPT,C语言习题集与实验指导 教学课件 伍鹏、杜红、王圆妹、邓绍金 第3章 顺序结构程序设计.pdf...

[摘要]第3章 顺序结构程序设计 第3章 顺序结构程序设计 当你对C语言程序设计有了一定了解和掌握后, 在处理一些简单的任务时,若想根据程序书写的过程 顺序执行程序,这时应该如何处理呢? •顺序结构 •顺序结构 程序的三种结构 程序…

c语言调用exe并传递参数,如何使用execlp将命令行参数传递给C程序

This page包括大量的使用示例....编辑:从链接 从链路的代码段添加的代码片段上方static void show_info_page(const char *git_cmd){const char *page cmd_to_page(git_cmd);setenv("INFOPATH", system_path(GIT_INFO_PATH), 1);execlp("info"…

c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....

相关问题设随机变量X的密度函数为,则c .e339fd828a3e5af974ac21fd9ebc7f0b.gif有函数f(x,y,z),其中x∈[1900,2100],y∈[1,12],z∈[1,31]的。请写出该函数采用边界值分析法设计的测试用例函数重写与函数重载的相同之处是&#xff1…

c语言sin函数返回nan,C语言入口函数和LD_PRELOAD环境变量

零.C语言入口函数从第一天学习C语言开始,我们的脑子里就深深烙下这样一个概念:C语言程序总是从main()函数开始执行,main()函数结束,程序也就结束了.在平时的练习中貌似这没有问题,但事实真的是这样吗?测试一下,点击(此处)折叠或打开#include #include #include int enter(void…

c语言字符串传给swift,如何把字符串数组从 Swift 传递给 C

作者:Natasha The Robot,原文链接,原文日期:2016-10-27译者:BigbigChai;校对:walkingway;定稿:CMBSwift 允许我们将原生的字符串直接传递给一个接受 C String(即 char *)…

c语言上机题库程序设计,C语言上机程序设计题库及答案.docx

C语言上机程序设计题库及答案C语言上机程序设计题库【程序设计】功能:根据整型形参m,计算如下公式的值:ysin(m)*10。【参考代码】 double y0; ysin(m)*10; return(y);功能:若x、y为奇数,求x到y之间的奇数和&#xff1b…

Android端发送字符到Wed端,android应用端向web端获取字符串。

一 发送和接收普通的JSONArray(仅仅包含字符串的数组)1)web端:PrintWriter out response.getWriter();ListorderAllList new USER().getListStr();JSONArray jsonArray JSONArray.fromObject(orderAllList);System.out.println("wowowo"jsonArray);whil…

three.js使用精灵模型Sprite渲染森林

效果&#xff1a; 源码&#xff1a; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"></div><div class"box-right&quo…

android logcat 系统 分析,Android日志系统Logcat源代码简要分析

原文出处——>[Android日志系统Logcat源代码简要分析](http://blog.csdn.net/luoshengyang/article/details/6606957)在前面两篇文章Android日志系统驱动程序Logger源代码分析和Android应用程序框架层和系统运行库层日志系统源代码中&#xff0c;介绍了Android内核空间层、系…

android订阅管理,RXJAVA取消订阅封装-kotlin-Android

因为好几次自己想要在别的项目使用&#xff0c;每次都要重写一遍太麻烦&#xff0c;整理了一下发布到 jcenter 。利用官方lifecycle库与kotlin语言特性。lifecycle官方 support 27 自带。库代码数少于100行。用法&#xff1a;1、添加依赖implementation com.sjianjun:rxutils:1…

android 动画完成后不可点击事件,android – TranslateAnimation后按钮不可点击

点击后,我想移动按钮(带动画).我希望它在第一次点击时移动100个像素,底部移动100个像素,第二个100像素,第三个底部的100个像素,依此类推.我有简单的布局文件(main.xml)&#xff1a;android:id"id/button"android:layout_width"wrap_content"android:layout…

鸿蒙系统操作界面布局,华为鸿蒙操作系统大曝光

描述华为鸿蒙操作系统大曝光5月21日&#xff0c;华为消费者业务CEO余承东透露&#xff0c;面向下一代技术而设计的华为操作系统“鸿蒙”&#xff0c;最早将于今秋面市。而就在前天&#xff0c;环球时报(Global Times)发出推文表示&#xff1a;有消息人士称&#xff0c;华为正在…

android 高德获取省市,高德地图定位获取当前地址城市街道等详细信息(全部代码)...

自动定位后弹窗信息&#xff0c;包含省市县镇区路门牌号(效果图如下)代码↓↓↓获取地理位置var mapObj new AMap.Map(iCenter);mapObj.plugin(AMap.Geolocation, function () {geolocation new AMap.Geolocation({enableHighAccuracy: true, // 是否使用高精度定位&#xff…

nsq Android客户端,NSQ的golang客户端简单使用

NSQ的golang客户端简单使用NSQ 是由国外的一个短链服务商bitly使用golang开发的一个消息队列系统&#xff0c;正好使用到了这个东西&#xff0c;在这里简单的记录下。获取客户端nsq的golang客户端是官方版本的go get github.com/nsqio/go-nsq即可简单的消费者和生产者使用该客户…