3.uClinux移植过程PPT课件
- 格式:ppt
- 大小:338.50 KB
- 文档页数:37
S3c44B0在uClinux中需要修改的文件一.内核基本文件的修改 1.uClinux-Samsung\vendors\Samsung\S3C44B0“config.linux-2.4.x”这个是linux内核编译配置选项文件。
# System Type## CONFIG_ARCH_DSC21 is not set# CONFIG_ARCH_CNXT is not set# CONFIG_ARCH_SWARM is not set#CONFIG_ARCH_SAMSUNG=yCONFIG_ARCH_MBA44B0=y# CONFIG_ARCH_ATMEL is not setCONFIG_NO_PGT_CACHE=yCONFIG_CPU_32=y# CONFIG_CPU_26 is not setCONFIG_CPU_ARM710=yCONFIG_CPU_WITH_CACHE=y# CONFIG_CPU_WITH_MCR_INSTRUCTION is not setCONFIG_SERIAL_44B0=y#CONFIG_SET_MEM_SAMSUNG=yDRAM_BASE=0x0c000000 #SDRAM起始是地址DRAM_SIZE=0x01000000 #SDRAM大小16MFLASH_MEM_BASE=0x00000000 #FLASH起始地址FLASH_SIZE=0x00200000 #FLASH大小2M## General setup以后的make都以CONFIG_ARCH_S3C44B0=y这选项来解决是编译和S3C44B0相关的其他选项。
2.arch/armnommu/Makefie:ifeq ($(CONFIG_ARCH_S3C44B0),y)TEXTADDR = 0x0c008000MACHINE = s3c44b0endifTEXTADDR = 0x0c008000表明未压缩的内核的位置3.arch/armnommu/boot/Makefie:ifeq ($(CONFIG_ARCH_S3C44B0),y)ZRELADDR = 0x0c008000ZTEXTADDR = 0x0c300000endifZRELADDR = 0x0c008000表明未压缩的内核的位置ZTEXTADDR = 0x0c300000表明压缩内核的位置4.include/asm-armnommu//proc-armv/system.h#ifdef CONFIG_ARCH_S3C44B0#undef vectors_base()#define vectors_base() (0x0c000008)#endif5.arch/armnommu/mach-s3c44b0/arch.cMACHINE_START(MBA44B0, "S3C44B0")MAINTAINER("Mac Wang")BOOT_MEM(0x0c000000, 0x01c00000, 0x01c00000)BOOT_PARAMS(0x0c000100)INITIRQ(genarch_init_irq)MACHINE_END其中MACHINE_START(MBA44B0, "S3C44B0")的“MBA44B0”是在asm/mach-types.h 里定义的平台类型BOOT_MEM(0x0c000000, 0x01c00000, 0x01c00000)指定了启动的RAM 地址0x0c000000,特殊功能寄存器地址0x01c00000,BOOT_PARAMS(0x0c000100) 表示内核参数的传递地址。
学习开发套件V3.0中嵌入Uclinux的步骤和方法在学习开发套件V3.0中嵌入Uclinux的步骤和方法,硬件系统为EP1C6,2Mflash,8Msdram.开发环境:SOPC学习开发套件V3.0,型号EP1C6。
QII5.1+SP2,NiosII IDE5.1+SP1。
一 .安装nios2linux开发包nios2linux-1.4二 .建立硬件系统1. QII中建一工程linux_nios,并添加NIOSII CPU,QII工程和平常的建立并没有什么区别,只要得加上flash和sdram,因为这里只是对linux的简单调试,所以SOPC中只添加LED和UART等几个简单外设。
如下图:注意为防止不必要的麻烦,这里尽量使用默认名字。
如果想用USB连接电脑,在QII中把串口连接到USB线的IO管脚上即可。
我们的工程中是两个口都接了,使用串口或者USB口都行。
三.建立软件环境打开NIOSII IDE3.1 建立linux内核file-> new-> project 后如下图:注意:在安装Microtronix_uclinux_nios2开发包后在IDE中分增加出如上图的Microtronix NiosII选项如果没有可以按下面方法解决:1)、打开cmd,在 开始->运行 那里输入cmd2)、cd到你的NiosII的工作目录下面,我的NiosII安装在D盘,如下:3)、在这里输入命令nios2-ide.exe –clean,进入NiosII IDE的clean模式,选择workspace:这是在New->Other那里你就可以看到那个linux的目录项了。
关了IDE窗口和cmd窗口,这样就可以正常看到Microtronix_linux了。
3.2 输入内核名字按next:finish完成四. 构建内核:4.1 右键内核名,在弹出菜单中选择Configure Kernel如下:后进入如下界面:因为flash只有2M因此构造的内核应尽可能的小,其大小不能超过1M。
Linux/uClinux移植教程移植环境:PC主机一台:windows XP+SP3,虚拟机平台Vmware6.5,Linux平台:CentOS5.3操作系统,并且linux虚拟机可以访问互联网。
对于其它Linux操作系统,可能需要安装其它一些库文件,移植方法也大致相同。
步骤如下:1).安装EPEL开发包使用管理员帐号登陆CentOS5.3,下载安装EPEL开发包[root@localhost ~]#-Uvh /pub/epel/5/i386/epel-release-5-3.noarch.rpm[root@localhost ~]#yum install git-all git-gui make gcc ncurses-devel bison byacc flex \gawk gettext ccache zlib-devel gtk2-devel lzo-devel pax-utilslibglade2-devel完成后,会在linux机上装上gcc编译器(4.1版本),以及git server等其它工具。
2).检测cc编译器是否链接到gcc上[root@localhost ~]# which gcc[root@localhost ~]# gcc –v以及[root@localhost ~]# which cc[root@localhost ~]# cc -v如果两者内容相同,则已链接好。
如果不是:[root@localhost ~]# cd /usr/bin[root@localhost bin]# ln -s gcc cc3). 安装nios2-linux-20090730.tar开发包下载地址: /pub/uclinux/nios2-linux-20090730.tar可以在windows下下载,下载完后复制到linux的root根目录下。
校验压缩包是否完整:[root@localhost ~]# sha1sum nios2-linux-20090730.tar校验结果1d99a54d36759cc6ce5f054ff0460b1bd370b0b6 nios2-linux-20090730.tar解压到当前目录下,即root目录下:[root@localhost ~]# tar xf nios2-linux-20090730.tar进入nios2-linux目录:[root@localhost ~]# cd nios2-linuxCheckout源代码:[root@localhost nios2-linux]# ./checkout等checkout完成后,nios2-linux-20090730.tar安装完成4).生成nios的交叉编译工具toolschain如果您对linux比较熟悉,可以自己生成toolschain,这是一个漫长的过程,首先需要安装gcc4.3.3,安装完gcc后,[root@localhost nios2-linux]# cd toolchain-build # CD 到toolchain-build 目录[root@localhost toolchain-build]# gcc --version #查看gcc 版本[root@localhost toolchain-build]# git clean -f -x -d #清除编译缓存[root@localhost toolchain-build]# make gcc elf2flt gdb-host幸运地话,会在1到2个小时后完成,不过,这步出错率极高。
清华大学‐友晶科技 EDA/SOPC 培训中心 StepByStep 教程 uclinux 在 SOPC 上的移植一、 前言 通过简单的例子说明 uclinux 在 SOPC 上移植的过程,仅为抛砖引玉,有了这个基础, 以后就能开发更复杂的程序。
网上这方面的例子及文档也很多, 但大多数是在 RedHat9.0 上完成的交叉编译及 uclinux 的内核编译,但 RedHat9.0 已经是很老的 linux 发行版,RedHat 公司在 04 年就停止了 对它 的发行及支持。
如今使用最广的 linux 发行版是 ubuntu(中文发音“乌班图”,其最新的稳 ) 定版本是 9.04(9.04 的意思是 09 年 4 月份发行,ubuntu 每隔 6 个月发行一个新版本,所以 下一个版本是 9.10,目前已出测试版) 。
我们的移植就选定在 ubuntu9.04 上完成,其移植过 程肯定不如在 RedHat9.0 上顺利,中途会遇到很多困难,现在把遇到的问题及排除方法也写 在下面,以方便大家回去自己研究之用。
二、 实验环境 1, 硬件设备:PC 机 +DE2 开发板; 2, 软件环境:WinXP+QuartusII9.0+NiosIIEDS9.0+ 虚拟机 VMware6.0+ubuntu9.04; 三、 需要准备的文件 1, 能跑 uclinux 的 SOPC 工程及其配置文件; 2, 交叉编译工具:nios2gcc.tar.bz2 3, uclinux 源代码: uClinux‐dist‐20070130.tar.gz (发行版本) uClinux‐dist‐20070130‐nios2‐02.diff.gz (内核补丁) 这此文件都已经放在 D:\Share\ucLinux 文件夹中,如图 1 所示。
(图 1) 其中, DE2_NET 是 QuartusII 工程文件夹, DE2_NET.sof 是编译后的下载文件, system_0.ptf 是 SOPC 的配置文件。
第五章嵌入式操作系统5.1 嵌入式操作系统简介5.1.1产生与发展嵌入式系统是计算机系统的一种,因而嵌入式系统也可以分为软硬件两部分,和桌面计算机系统一样,嵌入式操作系统(Embedded Operating System,EOS)是嵌入式软件系统的核心部分。
在一个完整的嵌入式系统中,嵌入式操作系统介于底层硬件和上层应用程序之间,它是整个系统中不可缺少的重要组成部分。
嵌入式操作系统与传统操作系统的基本功能是一致的,即:首先嵌入式操作系统必须能正确、高效地访问和管理底层的各种硬件资源,很好地处理资源管理中的冲突;其次嵌入式操作系统要能为应用程序提供功能完备、使用方便、与底层硬件细节无关的系统调用接口。
嵌入式操作系统伴随着嵌入式系统的发展经历了几个比较明显的的阶段:第一阶段:无操作系统,以单芯片为核心的可编程控制器形式的系统,具有与监测、伺服、指示设备相配合的功能。
应用于一些专业性极强的工业控制系统中,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。
系统结构和功能都相对单一,处理效率较低,存储容量较小,几乎没有用户接口。
第二阶段:以嵌入式CPU为基础、简单操作系统为核心的嵌入式系统。
其种类繁多,通用性比较差;系统开销小,效率高;一般配备系统仿真器,操作系统具有一定的兼容性和扩展性;应用软件较专业,用户界面不够友好;系统主要用来控制系统负载以及监控应用程序运行。
第三阶段:通用的嵌入式实时操作系统阶段,以嵌入式操作系统为核心的嵌入式系统。
能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API);嵌入式应用软件丰富。
第四阶段:以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。
目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及互联网络技术与信息家电、工业控制技术等结合日益密切,基于Internet的嵌入式操作系统必将成为主要发展趋势。