用skyeye运行uClinux内核

(2010-04-12 14:04:24)

标签:

it

分类:

嵌入式

最近由于实验室项目的原因,要开始搞起嵌入式了,一直对这个都很感兴趣,只是以前总觉得自己与这行不太能扯上关系了,所以也没法单独抽时间出来研究这个。现在阴差阳错的做上了一个与嵌入式相关的项目,终于有机会来学学这些东西了,兴趣项目两不误,还是很不错的。

由于是新手,以前从来没接触过嵌入式,所以研究起来还真是费劲,花了好大功夫,今天总算是在将uClinux在skyeye上跑通了。之前遇到过很多问题在网上查也没能查出个解决方案来,最后自己想当然的乱试一通,居然就试成功了,但即使成功了,也不知道之前的问题在哪,仅把自己的猜测记录下来,留来以后考证。

之前我是按下面链接中的教程一步步做下来的

http://www.ibm.com/developerworks/cn/linux/l-skyeye/part2/index.html

但其中遇到一些问题。

其中一个最大的问题就是在 make lib_only 或 make 时会报错:

cc1: error: unrecognized command line option "-mapcs-32"

cc1: error: unrecognized command line option

"-malignment-traps"

是说编译器不认识"-mapcs-32"这个选项。

网上很多人提到这个问题,大多数都没有给出有效的解决方法。我仔细看了一下报错之前的最后一条编译信息:

arm-linux-gcc -D__KERNEL__

-I/usr/src/uClinux-dist_2009/linux-2.4.x/include -Wall

-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing

-fno-common -fno-builtin-sprintf -Wno-pointer-sign -fno-common

-pipe -fno-builtin -D__linux__ -g -DNO_MM -mapcs-32 -march=armv4

-mtune=arm7tdmi -malignment-traps

-msoft-float -DKBUILD_BASENAME=do_mounts -c -o init/do_mounts.o

init/do_mounts.c

是用arm-linux-gcc编译do_mounts.c这个文件,其中有两个编译选项就是"-mapcs-32"和"-malignment-traps",然后去网上搜了一下这两个选项,只是有人说不同的编译器支持的选项也不尽相同,也就说这里arm-linux-gcc不支持这两个选项。不支持怎么办呢,我当时完全没没辙了。

后来就想教程中的有些东西会不会是过时了,为什么选uClinux内核时要选2.4.x呢,我就猜想会不会是和这个有关。我改选后试了一下,就OK了。这个,我对自己表示很遗憾,有时候太依赖教程了,完完全全都依照教程做,生怕哪点做的不一样了会出错,但是事实证明有时候根据实际情况做一些合理的改动还是会有意想不到的效果的。

那么关于编译uClinux内核最后一个问题就是为什么选2.6.x就行,选2.4.x就不行了呢。我想这个应该是一个更深层次的问题,至少对我来说,我还是先赶紧上手再说。先这样吧,2.6.x不更好吗。

uClinux内核编译好了之后就是用skyeye运行了,按上面说的那篇教程里讲得那样在uClinux-dist下建一个skyeye.conf文件,内容是:

cpu: arm7tdmi

mach: at91

mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000

mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000

mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./boot.rom

mem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000

mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000

mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000

mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000

还要建一个链接:

ln -s images/romfs.img boot.rom

注意了,这个链接又有问题,它是让boot.rom指向images文件夹下的romfs.img,原因是要将romfs.img换个名好跟skyeye.conf文件里的标识对应,而我查看了一下我的image文件夹下没有romfs.img,而有一个boot.rom,所以不用换名了,就直接:

ln -s images/boot.rom boot.rom就行了。

最后执行:

skyeye -e linux-2.6.x/linux

就可以用skyeye运行编译好的内核了

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

linux skyeye,用skyeye运行uClinux内核相关推荐

  1. ARM Linux (S3C6410架构/2.6.35内核)的内存映射(三)

    这里记录一下Linux内核做二级内存映射的过程,以中断向量表的映射过程为例. 在S3C6410架构下,Linux采用的是粗粒度小页内存管理方式,即内存段(section)的大小为1M,而页(page) ...

  2. skyeye linux qt,在ARM9上安装Linux,利用SkyEye模拟器及U-BOOT引导

    提示:本人在2008年进行Linux@ARM实验,在ARM9上安装Linux.利用SkyEye模拟器及U-BOOT引导.这是实验报告.以及实验过程中留下的记录,按日期倒序排列. 本文以Creative ...

  3. linux 内核 锐龙,AMDGPU内核驱动程序在Linux 5.0上运行良好

    虽然Polaris和Vega的性能都没有明显的变化,但是Linux 5.0中的AMDGPU内核驱动程序看起来在整个周期中处于良好状态. 在早期的Linux 5.0版本中,遇到了一些硬件的显示问题,但使 ...

  4. 将linux内核烧进arm板,ARM开发板上uClinux内核移植

    <ARM开发板上uClinux内核移植>由会员分享,可在线阅读,更多相关<ARM开发板上uClinux内核移植(19页珍藏版)>请在人人文库网上搜索. 1.纷傲掌秀悸篷益哑檀扬 ...

  5. 追踪Linux TCP/IP代码运行--基于2.6内核(……

    查看书籍详细信息: 追踪Linux TCP/IP代码运行--基于2.6内核(-- 内容简介 本书以应用程序为线索,详细描述了数据包在协议栈的分段.重组.发送.接收过程,同时分析了路由的初始化和设置过程 ...

  6. 在ARMSYS(S3C44B0X开发板)上进行uClinux内核移植的总结

    标题 针对"如何在以S3C44B0X为核心的ARMSYS开发板上建立uClinux内核移植"的一个总结,其内容包括对Bootloader的功能分析和uClinux2.4.24发行版 ...

  7. Linux 如何快速找到运行中的进程

    通俗的讲程序是一个包含可以执行代码的静态的文件.进程是一个开始执行但是还没有结束的程序的实例.这篇文章给大家介绍Linux 快速找到运行中的进程的方法,小编觉得很有价值,分享给大家 1 进程概述 通俗 ...

  8. Linux中mod相关的命令 内核模块化 mod相关命令都是用来动态加载内核模块/驱动程序模块...

    Linux中mod相关的命令 内核模块化   mod相关命令都是用来动态加载内核模块/驱动程序模块 http://baike.baidu.com/link?url=lxiKxFvYm-UfJIxMjz ...

  9. 详细图文演示——排除启动类故障以及Linux操作系统引导、运行级别和优化启动等相关知识

    详细图文演示--排除启动类故障以及Linux操作系统引导.运行级别和优化启动等相关知识 一.Linux操作系统引导过程 1.开机自检 2.MBR 引导 3.GRUB菜单 4.加载Linux内核 5.i ...

  10. linux禁止修 5在线阅读,linux – 如何在不重新编译内核的情况下禁用CentOS 5.3中的nf_conntrack内核模块...

    我正在运行CentOS 5.3,并希望禁用nf_conntrack模块以提高haproxy的网络性能.我正在使用一些简单的规则运行iptables.我真的不需要连接跟踪. 我在Rackspace云服务 ...

最新文章

  1. ASP.NET Web 页面生命中的一天
  2. stl_vector.h
  3. OpenGL toon shading卡通着色的实例
  4. python 自动输入_Python自动输入【新手必学】
  5. 【操作系统】分页内存管理
  6. 高时空损耗的Scanner会卡爆程序(记洛谷P1567的Java性能优化,Java语言描述)
  7. 关于zend framework控制器中action命名的问题
  8. Mujoco 2D hopper
  9. javascript弹出窗口代码
  10. mysql 3389_SQL语句直接开启3389
  11. 机器人编程语言有哪些? 这5大编程语言的优缺点你都了解?
  12. openssl生成ras证书
  13. 时间戳——微信保存视频时发现的问题
  14. SD卡、记忆棒等内存卡的数据恢复方法
  15. 模型优化中的过拟合与欠拟合
  16. BT通信中数据下载的分析和实现
  17. 你会使用Excel中的【照相机】吗?
  18. 博图在线升级 gsd_美生在线消费全返张鹏海外大举收割国内韭菜。
  19. 早教幼儿相关的微信公众号图文应该怎样排版?
  20. Scala类和成员变量的讲解。

热门文章

  1. 选择性粘贴出现html,为什么我把EXCEL表中的一个数据复制,选择性粘贴会出现这个对话框?...
  2. 初级的数据分析师,主要需要做哪些工作?
  3. Coupled Layer-wise Graph Convolution for Transportation Demand Prediction
  4. 两台计算机互联方案,如何连接两台电脑
  5. foobar2000_备份Foobar2000并将其传输到新计算机
  6. AXI中的wrap burst
  7. 神临的 Unity shader 学习之多Pass渲染 (九)
  8. word/excel 通配符
  9. buguku 加密 wp
  10. 重磅丨教育部《高校人工智能创新行动计划》权威解读, AI人才缺口竟有500万!