64
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 嵌入式操作系统 4 SkyEye简介 陈香兰([email protected]计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2014 November 28, 2014 陈香兰([email protected](计算机应用教研室苏州研究院中国科学技术大学Fall 2014) 嵌入式操作系统 November 28, 2014 1 / 46

嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

Embed Size (px)

Citation preview

Page 1: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

嵌入式操作系统4 SkyEye简介

陈香兰([email protected]

计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院

中国科学技术大学Fall 2014

November 28, 2014

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 1 / 46

Page 2: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline

...1 SkyEye简介

...2 SkyEye的安装SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 2 / 46

Page 3: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline..

...1 SkyEye简介

...2 SkyEye的安装

...3 启动Linux执行自己的程序

...4 编译linux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 3 / 46

Page 4: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye简介

SkyEye is an Open Source Software Project (GPL Licence).

▶ Origin from GDB/Armulator,▶ 在Sourceforge上可以获得Skyeye的相关代码

SkyEye的起源和发展

▶ 陈渝: 做一个用软件实现的嵌入式开发硬件模拟器,可以在模拟器上运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统

SkyEye的目标:to provide an integrated simulation environment in Linuxand Windows, simulates/emulates typical Embedded ComputerSystems

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 4 / 46

Page 5: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye简介

Now the following OS and system softwares can run in SkyEye:

▶ uC/OS-II-2.x with network support▶ uClinux based on Linux2.4.x/2.6.x with

Network/LCD/TouchScreen/Flash Mem support▶ ARM Linux 2.4.x/2.6.x with Network/LCD/TouchScreen/Flash Mem

support▶ Nucleus▶ Rtems▶ Ecos▶ lwIP on uC/OS-II▶ applications on uC/OSII, uClinux,ARM Linux

可对上述软件系统进行源码级的分析、调试和测试。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 4 / 46

Page 6: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye简介

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 4 / 46

Page 7: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye模拟硬件介绍

Now the following hardwares can be simulated by SkyEye:

▶ CPU CORE: ARM7TDMI, ARM720T,StrongARM, XScale, Blackfin

▶ APPLICATION CPU: Atmel AT91X40/AT91RM9200,Cirrus CIRRUSLOGIC EP7312/EP9312 CS89712,Intel SA1100/SA1110, Intel PXA25x/27x, Samsung 4510B/44B0/2410/2440 , Sharp LH7xxxx,NS9750, Philips LPC22xx, BF533

▶ MEMORY: RAM, ROM, Flash

▶ Peripheral: Timer, UART,NIC chip,LCD, TouchScreen, etc.

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 5 / 46

Page 8: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye模拟硬件介绍

存储器管理单元和缓存单元

MMUMemory Management Unit,存储器管理单元,是用来管理虚拟内存系统的硬件。

▶ MMU的两个主要功能是:...1 将虚地址转换成物理地址;...2 控制存储器的存取权限。

▶ MMU关掉时,虚地址直接输出到物理地址总线

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 5 / 46

Page 9: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye模拟硬件介绍

存储器管理单元和缓存单元

TLB,Translation Lookaside Buffers在MMU中,存放从虚拟地址到物理地址的匹配表

▶ 保存的内容包括:虚址及其对应的物理地址,权限,域和映射类型。

▶ 当CPU对一虚拟地址进行存取时,首先搜索TLB表以查找对应的物理 地址等信息,如果没有查到,则进行查找translation table,称为Translation Table Walk(简称TTW)。经过TTW过程后,将查到的信息保存到TLB。然后根据TLB表项的物理地址进行读写。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 5 / 46

Page 10: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye模拟硬件介绍

存储器管理单元和缓存单元

CACHE,缓存单元主要用于缓存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高CPU的内存数据的访问效率。

write/read buffer硬件单元write/read buffer硬件单元的作用与CACHE的作用类似。

MMU、CACHE、write/readbuffer一般是高性能CPU的重要组成部分,且不同类型CPU的MMU、CACHE、write/read buffer的逻辑行为也有一定的差异。为了支持模拟多种类型CPU的MMU/CACHE,SkyEye包含了一个通用的MMU/CACHE模拟实现。通过对一些参数的调整可以支持模拟多种类型的MMU/CACHE物理结构和逻辑行为。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 5 / 46

Page 11: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye模拟硬件介绍

网络芯片

目前SkyEye模拟了网络芯片8019AS,

其特点是:NE2000兼容,内建16KRAM缓冲区,10MB传输速率。

虽然目前模拟的开发板上不一定有网络芯片8019AS,但可以在模拟的开发板上加上网络芯片8019AS 的模拟。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 5 / 46

Page 12: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline..

...1 SkyEye简介

...2 SkyEye的安装SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序

...4 编译linux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 6 / 46

Page 13: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 7 / 46

Page 14: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

SkyEye的安装

...1 Linux操作系统

▶ 当前使用的主机操作系统是ubuntu-14.04或者Kubuntu-14.04▶ ubuntu-14.04自带的编译器是gcc-4.8.2

...2 Windows+MingW或cygwin

▶ 请自行摸索

在Kubuntu上安装SkyEye有两种安装方法...1 直接安装二进制代码

sudo apt− get install skyeye

...2 下载源代码,编译并安装

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 8 / 46

Page 15: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

在ubuntu-14.04上直接安装skyeye在ubuntu-14.04中,使用命令

sudo apt− get install skyeye

安装skyeye-1.2.5,版本有些老。使用

sky < tab >

可以出现完整的skyeye命令.skyeye -h..

......

SkyEye 1.2.5Bug report: [email protected]: skyeye [options] -e program [program args]Default mode is STANDALONE mode——————————————————————Options:-e exec-file the (ELF executable format)kernel file name.-l load_address,load_address_mask Load ELF file to another address, not its entry.-b specify the data type is big endian when non ”-e” option.-d in GDB Server mode (can be connected by GDB).-c config-file the skyeye configure file name.-h The SkyEye command options, and ARCHs and CPUs simulated.——————————————————————陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 9 / 46

Page 16: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

在ubuntu-14.04上直接安装skyeye.

......

———– Architectures and CPUs simulated by SkyEye————-——– ARM architectures ———at91lpcs3c4510bs3c44b0xs3c44b0s3c3410xep7312lh79520ep9312cs89712sa1100pxa_lubbockpxa_mainstoneat91rm92s3c2410xs3c2440sharp_lh7a400ns9750——– BlackFin architectures —-bf533bf537

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 9 / 46

Page 17: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 10 / 46

Page 18: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

试用skyeye-1.2.5 I

下载skyeye-1.2.5配套的测试包

▶ skyeye-testsuite-1.2.5.tar.bz2

解压缩tar -jvxf skyeye-testsuite-1.2.5.tar.bz2

进入测试包目录cd skyeye-testsuite-1.2.5

...1 试运行armlinuxcd linuxcd ep7312cd 2.6.xskyeye -e vmlinux -c skyeye.conf

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 11 / 46

Page 19: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

试用skyeye-1.2.5 II

...2 试运行uClinuxcd uClinuxcd at91cd uclinux_cs8900askyeye -e linux -c skyeye.conf

注意:运行testsuite下的例子时,有些可能会出错。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 12 / 46

Page 20: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 13 / 46

Page 21: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

下载skyeye源代码,编译并安装

最新版本情况

▶ skyeye-1.3.4_rc1.tar.gz▶ testsuite-1.3.4_rc1.tar.gz

解压缩后进入skyeye-1.3.4的目录,根据INSTALL文件

▶ ./configure▶ make lib▶ make install_lib▶ make

编译skyeye过程中会出现很多错误,提示需要安装一些软件

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 14 / 46

Page 22: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline..

...1 SkyEye简介

...2 SkyEye的安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 15 / 46

Page 23: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 16 / 46

Page 24: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境

对于µCLinux,要使用arm-elf-工具链

下载arm-elf-tools-20030314.sh

▶ 运行./arm-elf-tools-20030314.sh

安装▶ 使用

arm-elf-<tab>

查看是否安装成功

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 17 / 46

Page 25: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

2、准备hello.hello.c循环输出“HelloWorld!”..

......

#include <stdio.h>int main(void){

while(1)printf(”HelloWorld!\n”);return 0;

}

交叉编译hello

arm-elf-gcc -elf2flt -o hello hello.c

查看hello的文件类型信息.file hello........hello: BFLT executable - version 4 ram

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 18 / 46

Page 26: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、添加hello到µCLinux的根文件系统中

挂载mkdir romfs_dirsudo mount -o loop romfs.img romfs_dir

.sudo mount -o loop romfs.img romfs_dir/..

......

...mount: warning: romfs_dir/ seems to be mounted read-only.

直接拷贝hello到romfs_dir?报错!!WHY?.sudo cp hello romfs_dir/bin/........cp: 无法创建普通文件”romfs_dir/bin/hello”: 只读文件系统

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 19 / 46

Page 27: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、添加hello到µCLinux的根文件系统中

复制根文件系统到一个新的目录中

sudo cp -r romfs_dir/* new_romfs/

拷贝hello

sudo cp hello new_romfs/bin

生成新的romfs映像

sudo genromfs -f romfs_new.img -d new_romfs/

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 19 / 46

Page 28: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

4、建立新的skyeye配置文件

复制skyeye.conf为skyeye_new.conf

cp skyeye.conf skyey_new.conf

修改skyeye_new.cong,使之使用新的romfs映像romfs_new.img

.

......

#skyeye config file samplecpu: arm7tdmimach: at91mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs_new.imgmem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000#set nic info#net: type=cs8900a, base=0xfffa0000, size=0x20,int=16, mac=0:4:3:2:1:f,ethmod=tuntap, hostip=10.0.0.1net: type=cs8900a, ethmod=tuntap, hostip=10.0.0.1#dbct: state=on

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 20 / 46

Page 29: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

5、运行

运行skyeyeskyeye -c skyeye.conf -e linux

见到命令提示符/>后,运行

bin/hello

将会进入“HelloWorld!”死循环。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 21 / 46

Page 30: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 22 / 46

Page 31: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、建立交叉编译环境

下载交叉编译工具

▶ ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain▶ cross-2.95.3.tar.bz2

解压缩到/usr/local/arm目录下或当前工作目录下

tar -jxf cross-2.95.3.tar.bz2

设置执行路径,在.bashrc中添加交叉编译器的bin目录

exprot PATH = $PATH : /usr/local/arm/2.95.3/bin

然后,退出控制台,重新启动控制台目的:使得更新后的.bashrc文件起作用

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 23 / 46

Page 32: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、建立交叉编译环境

检查是否建立好交叉编译环境

arm-linux- < tab >

.arm-linux-<tab>..

......

arm-linux-addr2line arm-linux-gasp arm-linux-protoizearm-linux-ar arm-linux-gcc arm-linux-ranlibarm-linux-as arm-linux-gcj arm-linux-readelfarm-linux-c++ arm-linux-ld arm-linux-sizearm-linux-c++filt arm-linux-nm arm-linux-stringsarm-linux-g++ arm-linux-objcopy arm-linux-striparm-linux-g77 arm-linux-objdump arm-linux-unprotoize

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 23 / 46

Page 33: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、建立交叉编译环境

试运行arm-linux-gcc,查看其版本:

arm-linux-gcc -v

.arm-linux-gcc -v..

......

Reading specs from/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/specs gccversion 2.95.3 20010315 (release)

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 23 / 46

Page 34: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

2、准备hello.hello.c循环输出“HelloWorld!”..

......

#include <stdio.h>int main(void){

while(1)printf(”HelloWorld!\n”);return 0;

}

交叉编译,选择静态编译

arm− linux− gcc − static − o hello hello.c

.file hello..

......hello: ELF 32-bit LSB executable, ARM, version 1, staticallylinked, for GNU/Linux 2.0.0, not stripped

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 24 / 46

Page 35: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、将hello加入到根文件系统中

选择skyeye-testsuite-1.2.5/linux/ep7312/2.6.x

查看所使用的根文件系统是哪一个.vi skyeye.conf..

......

cpu: arm720tmach: ep7312mem_bank: map=M, type=RW, addr=0x00000000, size=0x00400000mem_bank: map=I, type=RW, addr=0x80000000, size=0x00010000mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00600000, file=./initrd_old.imgmem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000#lcd:type=ep7312,mod=gtk

#dbct:state=on

挂载根文件系统到rootfs上

▶ mkdir rootfs▶ sudo mount -o loop initrd_old.img rootfs/

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 25 / 46

Page 36: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、将hello加入到根文件系统中

拷贝hello到根文件系统中:报错!!WHY?

sudo cp hello rootfs/bin

.sudo cp hello rootfs/bin..

......cp: 写入”rootfs/bin/hello” 出错: 设备上没有空间cp: 扩展”rootfs/bin/hello” 失败: 设备上没有空间

▶ 查看initrd_old.img的文件大小信息,发现其大小为6MB▶ 查看skyeye.conf文件中,加载initrd_old.img的存储空间

大小,也是6MB▶ 怎么办?

改变映像的大小?改变skyeye.conf中存储空间大小?一种可能的解决方法:删除旧的映像中目前用不到的内容

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 25 / 46

Page 37: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、将hello加入到根文件系统中

...1 建立一个新的映像文件,并格式化为ext2文件系统

dd of = myinitrd6M.img if = /dev/zero bs = 2048 count = 3072

mke2fs -F -v -m0 myinitrd6M.img

...2 将rootfs的内容拷贝到一个temp目录中

sudo umount rootfs/sudo mount -o loop initrd_old.img rootfs/mkdir tempsudo cp -r rootfs/* temp/sudo umount rootfs

...3 删除temp中usr/local/lib目录下的minigui目录(暂时用不到)

sudo rm -r usr/local/lib/minigui

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 25 / 46

Page 38: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、将hello加入到根文件系统中

...4 复制temp到新的映像文件中,复制hello到新的映像文件中mkdir rootfs_newsudo mount -o loop myinitrd6M.img rootfs_new/sudo cp -r temp/* rootfs_new/sudo cp hello rootfs_new/binsudo umount rootfs_new

.完整的解决方案后面再介绍........

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 25 / 46

Page 39: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

4、建立新的skyeye配置文件

复制skyeye.conf到skyeye_new.conf

修改skyeye_new.cong,使其使用新的映像文件

.

......

cpu: arm720tmach: ep7312mem_bank: map=M, type=RW, addr=0x00000000, size=0x00400000mem_bank: map=I, type=RW, addr=0x80000000, size=0x00010000mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00600000, file=./myinitrd6M.imgmem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000#lcd:type=ep7312,mod=gtk#dbct:state=on

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 26 / 46

Page 40: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

5、运行.skyeye -e vmlinux -c skyeye_new.conf..

......

Welcome to_ _____ __ __ _ _

/ \ / __ \ / \_/ \ | | |_|/ _ \ | | | | / /\ /\ \ | | _ ____ _ _ _ _

/ /_\ \ | |__| | / / \_/ \ \| | | | _ \| | | |\ \/ // /___\ \ | |__\ \ | | | || |___ | | |_| | |_| |/ \

/_/ \_\| | \_\|_| |_||_____||_|_| |_|\____|\_/\_/ARMLinux for SkyeyeFor further information check:http://hpclab.cs.tsinghua.edu.cn/~skyeye/

Command: #/bin/demobmpExecution Finished, ExitingCommand: /bin/sh

Sash command shell (version 1.1.1)/>

运行hellobin/hello

进入”HelloWorld!“死循环。陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 27 / 46

Page 41: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline..

...1 SkyEye简介

...2 SkyEye的安装

...3 启动Linux执行自己的程序

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 28 / 46

Page 42: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 29 / 46

Page 43: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境 I

直接安装sudo apt-get install gcc-arm-linux-gnueabiarm-linux-gnueabi-<tab>

.arm-linux-gnueabi-<tab>..

......

arm-linux-gnueabi-addr2line arm-linux-gnueabi-gcov-4.7arm-linux-gnueabi-ar arm-linux-gnueabi-gprofarm-linux-gnueabi-as arm-linux-gnueabi-ldarm-linux-gnueabi-c++filt arm-linux-gnueabi-ld.bfdarm-linux-gnueabi-cpp arm-linux-gnueabi-ld.goldarm-linux-gnueabi-cpp-4.7 arm-linux-gnueabi-nmarm-linux-gnueabi-dwp arm-linux-gnueabi-objcopyarm-linux-gnueabi-elfedit arm-linux-gnueabi-objdumparm-linux-gnueabi-gcc arm-linux-gnueabi-ranlibarm-linux-gnueabi-gcc-4.7 arm-linux-gnueabi-readelfarm-linux-gnueabi-gcc-ar-4.7 arm-linux-gnueabi-sizearm-linux-gnueabi-gcc-nm-4.7 arm-linux-gnueabi-stringsarm-linux-gnueabi-gcc-ranlib-4.7 arm-linux-gnueabi-striparm-linux-gnueabi-gcov

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 30 / 46

Page 44: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境 II

或者下载arm-linux-tools-20061213.tar.gz安装

▶ 在主机的系统根目录下或在当前目录下解压缩sudo tar zvxf arm-linux-tools-20061213.tar.gz

▶ 查看安装是否成功../usr/local/bin/arm-linux-<tab>..

......

arm-linux-addr2line arm-linux-g77 arm-linux-jv-scanarm-linux-addr2name.awk arm-linux-gcc arm-linux-ldarm-linux-ar arm-linux-gcc-3.4.4 arm-linux-ld.realarm-linux-arm-linux-gcjh arm-linux-gccbug arm-linux-nmarm-linux-as arm-linux-gcj arm-linux-objcopyarm-linux-c++ arm-linux-gcjh arm-linux-objdumparm-linux-c++filt arm-linux-gcov arm-linux-ranlibarm-linux-cpp arm-linux-gnatbind arm-linux-readelfarm-linux-elf2flt arm-linux-grepjar arm-linux-sizearm-linux-flthdr arm-linux-jar arm-linux-stringsarm-linux-g++ arm-linux-jcf-dump arm-linux-strip

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 31 / 46

Page 45: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境 III

▶ 查看版本信息../usr/local/bin/arm-linux-gcc -v..

......

Reading specs from/home/xlanchen/workspace/usr/local/bin/../lib/gcc/arm-linux/3.4.4/specsConfigured with: ../configure –target=arm-linux –disable-shared –prefix=/usr/local–with-headers=/home/gerg/new-wave.ixdp425/linux-2.4.x/include –with-gnu-as–with-gnu-ld –enable-multilibThread model: posixgcc version 3.4.4

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 32 / 46

Page 46: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

编译armlinux

从kernel.org上找到china的镜像网站,下载linux-2.6.26.tar.bz2

在工作目录$WDIR中解压缩,后执行如下命令(或者使用CROSS_COMPILE=arm-linux-gnueabi-)

cd linux-2.6.26make ARCH=arm CROSS_COMPILE=arm-linux- s3c2410_defconfigmake ARCH=arm CROSS_COMPILE=arm-linux- menuconfig

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 33 / 46

Page 47: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

编译armlinux

修改如下:.

......

▶ 修改 include/asm-arm/arch-s3c2410/map.h

#define S3C2410_CS6 (0xC0000000UL)

▶ 修改 include/asm-arm/arch-s3c2410/memory.h

#define PHYS_OFFSET (0xC0000000UL)

▶ Boot options→Default kernel command string:

mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 rw

▶ Device Driver→Character Driver→Serial Driver,取消8250/16550 andcompatible serial support选项

▶ [可选]File systems→中,仅仅保留ext2

▶ [可选]Networking→,取消Networking support

▶ [可选]Device Driver→,取消I2C support和USB support

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 33 / 46

Page 48: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

编译armlinux

编译make ARCH=arm CROSS_COMPILE=arm-linux-需要等待较长时间

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 33 / 46

Page 49: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

准备根文件系统

在后面的课程中准备

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 34 / 46

Page 50: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline.....1 SkyEye简介...2 SkyEye的安装

SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 35 / 46

Page 51: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境 I

下载arm-linux-tools-20061213.tar.gz

在主机的系统根目录下或在当前目录下解压缩sudo tar zvxf arm-linux-tools-20061213.tar.gz

查看安装是否成功../usr/local/bin/arm-linux-<tab>..

......

arm-linux-addr2line arm-linux-g77 arm-linux-jv-scanarm-linux-addr2name.awk arm-linux-gcc arm-linux-ldarm-linux-ar arm-linux-gcc-3.4.4 arm-linux-ld.realarm-linux-arm-linux-gcjh arm-linux-gccbug arm-linux-nmarm-linux-as arm-linux-gcj arm-linux-objcopyarm-linux-c++ arm-linux-gcjh arm-linux-objdumparm-linux-c++filt arm-linux-gcov arm-linux-ranlibarm-linux-cpp arm-linux-gnatbind arm-linux-readelfarm-linux-elf2flt arm-linux-grepjar arm-linux-sizearm-linux-flthdr arm-linux-jar arm-linux-stringsarm-linux-g++ arm-linux-jcf-dump arm-linux-strip

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 36 / 46

Page 52: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

1、准备交叉编译环境 II

查看版本信息../usr/local/bin/arm-linux-gcc -v..

......

Reading specs from/home/xlanchen/workspace/usr/local/bin/../lib/gcc/arm-linux/3.4.4/specsConfigured with: ../configure –target=arm-linux –disable-shared –prefix=/usr/local–with-headers=/home/gerg/new-wave.ixdp425/linux-2.4.x/include –with-gnu-as–with-gnu-ld –enable-multilibThread model: posixgcc version 3.4.4

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 37 / 46

Page 53: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

2、配置并编译uClinux

...1 下载源代码uClinux-dist-20140504.tar.bz2

...2 解压缩tar -jvxf uClinux-dist-20140504.tar.bz2

...3 配置并编译

export LDLIBS=-ldl(可能需要)make xconfig

.

......

在vendor/product选项中选择GDB/ARMulatorKernel版本选择2.4.x其他选项不变(使用缺省选项)

make dep; make

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 38 / 46

Page 54: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

2、配置并编译uClinux

...4 查看编译出来的内核映像

▶ images目录下

.

......

images/├── boot.rom├── linux└── romfs-inst.log

▶ linux-2.4.x目录下的linux

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 38 / 46

Page 55: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

看一看Linux的链接命令,了解linux文件的组成

.

......

arm-linux-ld -p -X -T arch/armnommu/vmlinux.lds arch/armnommu/kernel/head-armv.oarch/armnommu/kernel/init_task.o init/main.o init/version.o init/do_mounts.o \–start-group \ arch/armnommu/kernel/kernel.o arch/armnommu/mm/mm.oarch/armnommu/mach-atmel/atmel.o kernel/kernel.o mmnommu/mmnommu.o fs/fs.o ipc/ipc.o \drivers/char/char.o drivers/serial/serial.o drivers/block/block.o drivers/misc/misc.odrivers/net/net.o drivers/media/media.o \ net/network.o \ arch/armnommu/lib/lib.a/media/xlanchen/store/work/5教学/2014FallEmbeddedOS/uClinux-dist/linux-2.4.x/lib/lib.a/usr/local/lib/gcc/arm-linux/3.4.4/soft-float/libgcc.a \ –end-group \ -o linux

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 39 / 46

Page 56: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

看一看romfs的生成命令,了解romfs来源

.

......

genromfs -v -V ”ROMdisk” -f/media/xlanchen/store/work/5教学/2014FallEmbeddedOS/uClinux-dist/images/boot.rom -d/media/xlanchen/store/work/5教学/2014FallEmbeddedOS/uClinux-dist/romfs

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 40 / 46

Page 57: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

看一看romfs中的内容...1 到romfs目录看看...2 根据编译的输出信息查看...3 挂载起来看一看

.编译输出信息如下:<目录深度><文件/目录名>[设备号,inode节点号]<mode><size>[link]..

......

0 ROMdisk [0xffffffff, 0xffffffff] 37777777777, sz 0, at 0x01 . [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0x201 .. [0x824 , 0x8e2a1a ] 0040755, sz 0, at 0x40 [link to 0x20 ]1 etc [0x824 , 0x8e3c45 ] 0040775, sz 0, at 0x602 rc [0x824 , 0x8e3c86 ] 0100644, sz 207, at 0x802 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0x170 [link to 0x20 ]2 passwd [0x824 , 0x8e3c8a ] 0100644, sz 21, at 0x1902 . [0x824 , 0x8e3c45 ] 0040775, sz 0, at 0x1d0 [link to 0x60 ]2 version [0x824 , 0x8e3c8b ] 0100664, sz 73, at 0x1f02 inetd.conf [0x824 , 0x8e3ca3 ] 0100664, sz 44, at 0x2602 ramfs.img [0x824 , 0x8e3c9f ] 0100644, sz 2874, at 0x2b02 services [0x824 , 0x8e3c88 ] 0100644, sz 8205, at 0xe102 motd [0x824 , 0x8e3c89 ] 0100644, sz 343, at 0x2e402 inittab [0x824 , 0x8e3c87 ] 0100644, sz 49, at 0x2fc01 bin [0x824 , 0x8e3c43 ] 0040775, sz 0, at 0x30202 telnetd [0x824 , 0x8e3ca2 ] 0100744, sz 45764, at 0x30402 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xe330 [link to 0x20 ]2 depmod [0x824 , 0x8e3c90 ] 0120777, sz 7, at 0xe3502 dhcpcd [0x824 , 0x8e3c98 ] 0100744, sz 86440, at 0xe3802 mount [0x824 , 0x8e3c8e ] 0120777, sz 7, at 0x235502 mtdm [0x824 , 0x8e3ca4 ] 0100744, sz 104788, at 0x235802 inetd [0x824 , 0x8e3c9a ] 0100744, sz 37068, at 0x3cf002 init [0x824 , 0x8e3c9c ] 0100744, sz 35596, at 0x45ff02 ping [0x824 , 0x8e3c9e ] 0100744, sz 62836, at 0x4eb202 insmod [0x824 , 0x8e3c92 ] 0120777, sz 7, at 0x5e0c02 expand [0x824 , 0x8e3c9b ] 0100744, sz 22556, at 0x5e0f02 umount [0x824 , 0x8e3c8f ] 0120777, sz 7, at 0x639302 . [0x824 , 0x8e3c43 ] 0040775, sz 0, at 0x63960 [link to 0x3020 ]2 modinfo [0x824 , 0x8e3c94 ] 0120777, sz 7, at 0x639802 route [0x824 , 0x8e3c97 ] 0120777, sz 7, at 0x639b02 lsmod [0x824 , 0x8e3c93 ] 0120777, sz 7, at 0x639e02 reboot [0x824 , 0x8e3ca1 ] 0100744, sz 26364, at 0x63a102 ifconfig [0x824 , 0x8e3c91 ] 0120777, sz 7, at 0x6a1302 thdm [0x824 , 0x8e3ca5 ] 0100744, sz 101972, at 0x6a1602 rmmod [0x824 , 0x8e3c96 ] 0120777, sz 7, at 0x82fe02 bcdm [0x824 , 0x8e3ca6 ] 0100744, sz 105364, at 0x830102 boa [0x824 , 0x8e3c8c ] 0100744, sz 101360, at 0x9cbd02 modprobe [0x824 , 0x8e3c95 ] 0120777, sz 7, at 0xb57e02 gdbserver [0x824 , 0x8e3c99 ] 0100744, sz 33708, at 0xb58102 sh [0x824 , 0x8e3ca0 ] 0100744, sz 80352, at 0xbdbe02 login [0x824 , 0x8e3c9d ] 0100744, sz 50256, at 0xd15e02 busybox [0x824 , 0x8e3c8d ] 0100744, sz 130508, at 0xdda501 mnt [0x824 , 0x8e3c48 ] 0040775, sz 0, at 0xfd8402 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfd860 [link to 0x20 ]2 . [0x824 , 0x8e3c48 ] 0040775, sz 0, at 0xfd880 [link to 0xfd840 ]1 dev [0x824 , 0x8e3c44 ] 0040775, sz 0, at 0xfd8a02 zero [0x824 , 0x8e3c82 ] 0020664, sz 0, at 0xfd8c02 rom3 [0x824 , 0x8e3c65 ] 0060664, sz 0, at 0xfd8e02 ptyp6 [0x824 , 0x8e3c58 ] 0020620, sz 0, at 0xfd9002 ttyp5 [0x824 , 0x8e3c77 ] 0020620, sz 0, at 0xfd9202 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfd940 [link to 0x20 ]2 rom5 [0x824 , 0x8e3c67 ] 0060664, sz 0, at 0xfd9602 ttypf [0x824 , 0x8e3c81 ] 0020620, sz 0, at 0xfd9802 null [0x824 , 0x8e3c4f ] 0020664, sz 0, at 0xfd9a02 ptyp8 [0x824 , 0x8e3c5a ] 0020620, sz 0, at 0xfd9c02 kmem [0x824 , 0x8e3c4e ] 0020664, sz 0, at 0xfd9e02 ptyp9 [0x824 , 0x8e3c5b ] 0020620, sz 0, at 0xfda002 ptyp7 [0x824 , 0x8e3c59 ] 0020620, sz 0, at 0xfda202 ram1 [0x824 , 0x8e3c51 ] 0060664, sz 0, at 0xfda402 urandom [0x824 , 0x8e3c84 ] 0020664, sz 0, at 0xfda602 ptypf [0x824 , 0x8e3c61 ] 0020620, sz 0, at 0xfda802 ttyp6 [0x824 , 0x8e3c78 ] 0020620, sz 0, at 0xfdaa02 ttyp9 [0x824 , 0x8e3c7b ] 0020620, sz 0, at 0xfdac02 cua0 [0x824 , 0x8e3c4b ] 0020664, sz 0, at 0xfdae02 ttypc [0x824 , 0x8e3c7e ] 0020620, sz 0, at 0xfdb002 tty [0x824 , 0x8e3c49 ] 0020664, sz 0, at 0xfdb202 rom6 [0x824 , 0x8e3c68 ] 0060664, sz 0, at 0xfdb402 ttypd [0x824 , 0x8e3c7f ] 0020620, sz 0, at 0xfdb602 ptyp1 [0x824 , 0x8e3c53 ] 0020620, sz 0, at 0xfdb802 ttypb [0x824 , 0x8e3c7d ] 0020620, sz 0, at 0xfdba02 ptyp0 [0x824 , 0x8e3c52 ] 0020620, sz 0, at 0xfdbc02 ptypa [0x824 , 0x8e3c5c ] 0020620, sz 0, at 0xfdbe02 ttyp2 [0x824 , 0x8e3c74 ] 0020620, sz 0, at 0xfdc002 rom2 [0x824 , 0x8e3c64 ] 0060664, sz 0, at 0xfdc202 tty0 [0x824 , 0x8e3c6c ] 0020664, sz 0, at 0xfdc402 ttyp7 [0x824 , 0x8e3c79 ] 0020620, sz 0, at 0xfdc602 ptyp4 [0x824 , 0x8e3c56 ] 0020620, sz 0, at 0xfdc802 rom4 [0x824 , 0x8e3c66 ] 0060664, sz 0, at 0xfdca02 ptypb [0x824 , 0x8e3c5d ] 0020620, sz 0, at 0xfdcc02 ptyp2 [0x824 , 0x8e3c54 ] 0020620, sz 0, at 0xfdce02 ptypd [0x824 , 0x8e3c5f ] 0020620, sz 0, at 0xfdd002 . [0x824 , 0x8e3c44 ] 0040775, sz 0, at 0xfdd20 [link to 0xfd8a0 ]2 mem [0x824 , 0x8e3c4d ] 0020664, sz 0, at 0xfdd402 cua1 [0x824 , 0x8e3c4c ] 0020664, sz 0, at 0xfdd602 rom8 [0x824 , 0x8e3c6a ] 0060664, sz 0, at 0xfdd802 ttyS0 [0x824 , 0x8e3c70 ] 0020620, sz 0, at 0xfdda02 ptypc [0x824 , 0x8e3c5e ] 0020620, sz 0, at 0xfddc02 ttyp0 [0x824 , 0x8e3c72 ] 0020620, sz 0, at 0xfdde02 rom7 [0x824 , 0x8e3c69 ] 0060664, sz 0, at 0xfde002 ttypa [0x824 , 0x8e3c7c ] 0020620, sz 0, at 0xfde202 ptyp3 [0x824 , 0x8e3c55 ] 0020620, sz 0, at 0xfde402 ttyp4 [0x824 , 0x8e3c76 ] 0020620, sz 0, at 0xfde602 console [0x824 , 0x8e3c4a ] 0020664, sz 0, at 0xfde802 tty2 [0x824 , 0x8e3c6e ] 0020664, sz 0, at 0xfdea02 ptype [0x824 , 0x8e3c60 ] 0020620, sz 0, at 0xfdec02 tty1 [0x824 , 0x8e3c6d ] 0020664, sz 0, at 0xfdee02 rom0 [0x824 , 0x8e3c62 ] 0060664, sz 0, at 0xfdf002 ttyp3 [0x824 , 0x8e3c75 ] 0020620, sz 0, at 0xfdf202 rom1 [0x824 , 0x8e3c63 ] 0060664, sz 0, at 0xfdf402 rom9 [0x824 , 0x8e3c6b ] 0060664, sz 0, at 0xfdf602 ttyS1 [0x824 , 0x8e3c71 ] 0020620, sz 0, at 0xfdf802 tty3 [0x824 , 0x8e3c6f ] 0020664, sz 0, at 0xfdfa02 ttype [0x824 , 0x8e3c80 ] 0020620, sz 0, at 0xfdfc02 ram0 [0x824 , 0x8e3c50 ] 0060664, sz 0, at 0xfdfe02 ttyp1 [0x824 , 0x8e3c73 ] 0020620, sz 0, at 0xfe0002 random [0x824 , 0x8e3c83 ] 0020664, sz 0, at 0xfe0202 ptyp5 [0x824 , 0x8e3c57 ] 0020620, sz 0, at 0xfe0402 ttyp8 [0x824 , 0x8e3c7a ] 0020620, sz 0, at 0xfe0601 usr [0x824 , 0x9437c9 ] 0040775, sz 0, at 0xfe0802 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe0a0 [link to 0x20 ]2 . [0x824 , 0x9437c9 ] 0040775, sz 0, at 0xfe0c0 [link to 0xfe080 ]1 sbin [0x824 , 0x923df1 ] 0040775, sz 0, at 0xfe0e02 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe100 [link to 0x20 ]2 . [0x824 , 0x923df1 ] 0040775, sz 0, at 0xfe120 [link to 0xfe0e0 ]1 home [0x824 , 0x8e3c46 ] 0040775, sz 0, at 0xfe1402 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe160 [link to 0x20 ]2 . [0x824 , 0x8e3c46 ] 0040775, sz 0, at 0xfe180 [link to 0xfe140 ]1 proc [0x824 , 0x903da4 ] 0040775, sz 0, at 0xfe1a02 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe1c0 [link to 0x20 ]2 . [0x824 , 0x903da4 ] 0040775, sz 0, at 0xfe1e0 [link to 0xfe1a0 ]1 tmp [0x824 , 0x8e3c85 ] 0120777, sz 8, at 0xfe2001 lib [0x824 , 0x8e3c47 ] 0040775, sz 0, at 0xfe2302 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe250 [link to 0x20 ]2 . [0x824 , 0x8e3c47 ] 0040775, sz 0, at 0xfe270 [link to 0xfe230 ]1 var [0x824 , 0x963365 ] 0040775, sz 0, at 0xfe2902 .. [0x824 , 0x8e3c42 ] 0040775, sz 0, at 0xfe2b0 [link to 0x20 ]2 . [0x824 , 0x963365 ] 0040775, sz 0, at 0xfe2d0 [link to 0xfe290 ]

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 41 / 46

Page 58: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、在skyeye上运行uClinux..

从skyeye-testsuite-1.2.5/uClinux/at91/uclinux_cs8900a/目录下复制skyeye.conf和romfs.img运行:

skyeye -e linux -c skyeye.conf

直接使用编译生成的boot.rom失败但由于配置不一致,在进入shell之前有个别错误。

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 42 / 46

Page 59: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、在skyeye上运行uClinux..skyeye.conf的内容如下:

.skyeye.conf..

......

#skyeye config file samplecpu: arm7tdmi

mach: at91

mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000mem_bank: map=M, type=RW, addr=0x01000000, size=0x00400000mem_bank: map=M, type=R, addr=0x01400000, size=0x00400000, file=./romfs.imgmem_bank: map=M, type=RW, addr=0x02000000, size=0x00400000mem_bank: map=M, type=RW, addr=0x02400000, size=0x00008000mem_bank: map=M, type=RW, addr=0x04000000, size=0x00400000mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000#set nic info#net: type=cs8900a, base=0xfffa0000, size=0x20,int=16, mac=0:4:3:2:1:f,ethmod=tuntap, hostip=10.0.0.1net: type=cs8900a, ethmod=tuntap, hostip=10.0.0.1#dbct: state=on

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 42 / 46

Page 60: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

3、在skyeye上运行uClinux..进入uClinux界面如下:

.

......

Welcome to____ _ _

/ __| ||_|_ _| | | | _ ____ _ _ _ _

| | | | | | || | _ \| | | |\ \/ /| |_| | |__| || | | | | |_| |/ \| ___\____|_||_|_| |_|\____|\_/\_/| ||_|

GDB/ARMulator support by <[email protected]>For further information check:http://www.uclinux.org/

Command: /bin/ifconfig eth0 up 10.0.0.2SIOCGIFFLAGS: No such deviceSIOCSIFADDR: No such devicepid 11: failed 512Execution Finished, Exitinginit: Booting to single user mode

Sash command shell (version 1.1.1)/>

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 42 / 46

Page 61: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Outline..

...1 SkyEye简介

...2 SkyEye的安装

...3 启动Linux执行自己的程序

...4 编译linux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 43 / 46

Page 62: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

小结

...1 SkyEye简介

...2 SkyEye的安装SkyEye的安装试用skyeye下载skyeye源代码,编译并安装

...3 启动Linux执行自己的程序添加hello到uclinux的根文件系统中在ArmLinux中运行hello

...4 编译linux编译armlinux编译µCLinux

...5 小结和作业

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 44 / 46

Page 63: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

Project3..

在skyeye上成功跑出armlinux和µCLinux

▶ 可以使用现成的映像▶ [可选,加分]可以自己编译

分别将hello加入到armlinux和µCLinux的根文件系统中,在skyeye上启动armlinux和µCLinux并运行hello提交报告,要求要说明

▶ 被使用的armlinux和µCLinux的版本和Linux内核的版本▶

[可选,加分]若自己编译了内核,给出编译armlinux和µCLinux的交叉编译器的版本和编译过程▶ 编译hello的交叉编译器的版本和编译过程▶ 给出关键输出的图示

难度:

armlinux>µCLinux>使用现成的内核

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 45 / 46

Page 64: 嵌入式操作系统 - staff.ustc.edu.cnstaff.ustc.edu.cn/~xlanchen/EOS2014Fall/slides/4 skyeye.pdf · SkyEye的安装 试用skyeye 下载skyeye ... Origin from GDB/Armulator,

..........

.....

......

.....

................

.....

.....

................

.....

.....

......

.....

......

.....

.....

.

.Thanks!........ The end.

陈香兰([email protected]) (计算机应用教研室@计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014)嵌入式操作系统 November 28, 2014 46 / 46