1 / 85

第八章嵌入式操作系统 uClinux 实验

第八章嵌入式操作系统 uClinux 实验. 8.1 μClinux 编译运行 实验 8.2 Boot Loader 编译运行实验 8.3 μClinux 内核调试实验 8.4 在文件系统中增加应用程序实验 8.5 多进程应用程序编写及调试实验 8.6 网络应用程序编写及调试实验. 8.1 μClinux 编译运行 实验. 8.1.1 实验目的 8.1.2 实验设备 8.1.3 实验内容 8.1.4 实验原理 8.1.5 实验操作步骤. 8.1.1 实验目的. 掌握 μClinux 配置、编译过程。. 8.1.2 实验设备.

phuc
Download Presentation

第八章嵌入式操作系统 uClinux 实验

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第八章嵌入式操作系统uClinux实验 • 8.1 μClinux编译运行实验 • 8.2 Boot Loader编译运行实验 • 8.3 μClinux 内核调试实验 • 8.4 在文件系统中增加应用程序实验 • 8.5多进程应用程序编写及调试实验 • 8.6网络应用程序编写及调试实验

  2. 8.1 μClinux编译运行实验 • 8.1.1实验目的 • 8.1.2实验设备 • 8.1.3实验内容 • 8.1.4实验原理 • 8.1.5实验操作步骤

  3. 8.1.1实验目的 • 掌握μClinux配置、编译过程。

  4. 8.1.2实验设备 • 硬件:Embest S3CEV40实验平台,PC机 • 软件:Linux或者Windows 98/2000/NT/XP 下的cygwin开发环境,烧写工具Embest Online Flash Programmer for ARM。

  5. 8.1.3实验内容 学习和掌握μClinux编译的基本步骤,对μClinux的内核及用户程序进行配置,编译生成内核和文件系统,烧写到FALSH中,运行μClinux。

  6. 8.1.4实验原理 • 内核及用户程序配置 配置命令 make config make menuconfig make xconfig 图1 配置主界面

  7. 实验原理 配置目标平台 定制内核 定制用户程序

  8. 实验原理 • 编译μClinux • 在Cygwin中依次执行以下命令完成μClinux的编译过程:

  9. 实验原理 • 最后,在images目录下生成2个文件: • zImage: μClinux 内核2.4.x的压缩方 式可 执行映像文件 • romfs.img:文件系统的映像文件。

  10. 实验原理 • 烧写映像文件、运行 • 工具:Embest Flash Programmer 和Embest ARM 仿真器或者其他烧写工具 • 操作:bootloader.bin烧写至FLASH的1-16扇区,zImage烧写至17-192扇区,romfs.img烧写至193-400扇区 • 配置界面:

  11. 实验原理 • 运行时启动Win2000下超级终端软件,配置如下:

  12. 8.1.5实验操作步骤 • 1、将μClinux-s3cev40.tar.gz放置于对应的/usr/local/src目录下,运行cygwin,在其命令窗口下解压μClinux源代码包,执行命令: • cd /usr/local/src • tar xzvf /tmp/μClinux-dist/μClinux-s3cev40.tar.gz • 2、登陆到工作目录下,对μClinux进行配置: • cd μClinux-s3cev40 • make xconfig

  13. 实验操作步骤 • 3、在弹出的配置窗口,点击 Target Platform Selection进入目标平台选择,选中Customize Kernel Settings、Customize Vendor/User Settings、Update Default Vendor Settings三项,对内核及用户程序进行配置,回主菜单点Save and Exit。 • 4、在弹出的内核配置窗口,选择File systems  Network file systems  NFS File system support;File systems  Network file systems  Provide NFSv3 client support;并保存退出。这些配置是为NFS调试做准备的。

  14. 实验操作步骤 • 5、在弹出的用户程序配置窗口,去掉Network Applications  tftp,选择Network Applications  ftp、ftpd,用于FTP调试;选择BusyBox  ifconfig,用于目标板IP设置 ;选择BusyBox  tftp、tftp:get、tftp:put,用于TFTP调试;保存退出。 • 6、将交叉编译工具安装至/usr/local目录下。

  15. 实验操作步骤 • 7、配置完成后开始编译μClinux,在工作目录下执行以下命令: • make dep • make clean • PATH=”/usr/local/armtools/bin:$PATH” • make lib_only • make user_only • make romfs • make image • 最后,在image目录下生成两个文件:内核文件 zImage和文件系统映像romfs.img。

  16. 实验操作步骤 • 8、准备实验环境,使用Embest S3CEV40目标板附带的串口线连接目标板上的UART0和PC机的串口,使用Embest S3CEV40目标板附带的网线连接目标板上的Ethernet和PC机的网口。 • 9、用Embest烧些工具软件进行烧写,加载EmbestS3CEV40.cfg目标板配置文件,将bootloader.bin烧写至FLASH的1-16扇区,zImage烧写至17-192扇区,romfs.img烧写至193-400扇区。

  17. 实验操作步骤 • 10、在PC机上运行Windows自带的超级终端串口通信程序(波特率115200、1位停止位、8位数据位、无校验位、无硬件流控制);或者使用其它串口通信程序。 • 11、重新启动目标板,运行μClinux。

  18. 8.2 Boot Loader编译运行实验 • 8.2.1实验目的 • 8.2.2实验设备 • 8.2.3实验内容 • 8.2.4实验原理 • 8.2.5实验操作步骤

  19. 8.2.1实验目的 • 通过实验掌握Boot Loader的基本功能程序设计。

  20. 8.2.2实验设备 • 硬件:Embest S3CEV40实验平台, Embest仿真器,PC机 • 软件:Embest IDE 2003, Embest Online Flash, Windows 98/2000/NT/XP下的cygwin开发环境

  21. 8.2.3实验内容 • 学习和掌握Bootloader的基本功能程序设计,并编译下载到Embest S3CEV40,实现对μClinux内核的引导。

  22. 8.2.4实验原理 • 系统引导程序介绍Boot Loader • 是系统复位后执行的第一段代码,相当于PC上的BIOS以及商业实时操作系统中的板级支持包BSP。 • 独立于操作系统,必须由用户自己设计。 • 其实现高度依赖于硬件。

  23. 实验原理 • Boot Loader、内核映像和文件系统映像在系统中存储的典型空间分配结构图如下: 典型空间分配结构图

  24. 实验原理 μClinux内核提供方式 • 压缩方式的内核映像 • 未经压缩的在Flash本地执行方式的内核映像文件 • 未经压缩的在Ram本地执行方式的内核映像文件

  25. 实验原理 • 最简功能设计 • 禁止所有的中断; • 设置处理器时钟、运行速度; • 存储区初始化; • 设置堆栈指针将bss段清零; • 跳转到内核映像的入口

  26. 实验原理 • 完备功能设计 • 上电自检; • 支持串口通讯方式,提供串口方式的命令控制台; • 支持以太网通讯方式,提供以太网通讯方式的命令控制台; • 可以通过串口或以太网下载并引导内核和文件系统映像文件;

  27. 实验原理 • 支持通过串口或以太网通讯烧写映像文件到Flash; • 能够读写I/O端口、存储区、寄存器; • 配置功能,包括设置IP地址、MAC地址、系统时间等;

  28. 8.2.5实验操作步骤 • 1、准备实验环境,使用Embest S3CEV40目标板附带的串口线连接目标板上的UART0和PC机的串口,将Embest仿真器的JTAG接口与Embest S3CEV40的JTAG接口相连,仿真器的PARALLEL接口与PC机的并口相连。 • 2、PC机上运行Windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。

  29. 实验操作步骤 • 3、运行Embest IDE集成开发环境,打开实验系统例程目录下面的Bootloader_test子目录下的bootloader.ews例程。 • 4、选择Build菜单Build bootloader进行编译就可以生成二进制文件bootloader.bin,在Bootloader_test目录下的debug子目录下。 • 5、使用烧写工具将bootloader.bin烧写至FLASH芯片1-16扇区,重启运行。

  30. 8.3 μClinux 内核调试实验 • 8.3.1实验目的 • 8.3.2实验设备 • 8.3.3实验内容 • 8.3.4实验原理 • 8.3.5实验操作步骤

  31. 8.3.1实验目的 • 了解和掌握μClinux的内核调试方法。

  32. 8.3.2实验设备 • 硬件:Embest S3CEV40实验平台, Embest仿真器,PC机 • 软件:Embest IDE 2003, Windows 98/2000/NT/XP下的cygwin开发环境

  33. 8.3.3实验内容 • 使用Embest IDE软件进行内核调试,并将内核在运行过程中的调试信息打印到终端。

  34. 8.3.4实验原理 • μClinux内核启动过程 Flash本地运行方式:内核的未经压缩的可执行映像固化在Flash,系统启动时内核从Flash中开始逐句执行。 压缩内核加载方式:内核的压缩映像固化在Flash上,系统启动时由附加在压缩映像前的解压复制程序读取压缩映像,在内存中解压后执行,这种方式相对复杂,但是运行速度更快(RAM的存取速率要比Flash高)。

  35. 实验原理 • Flash本地运行方式: • 内核的启动包括特定体系结构设置和μClinux系统初始化两步 • 内核启动的入口文件是head-armv.s。 • head-armv.s实现特定体系结构设置 • start_kernel实现 μClinux系统初始化

  36. 四、实验原理 • head-armv.s的基本运行过程: • 配置系统寄存器; • 初始化ROM、RAM以及总线控制寄存器等; • 设置堆栈指针,将bss段清零; • 修改pc指针,跳转到linux-2.4.x/init/main.c中的start_kernel函数,开始μClinux系统的初始化。

  37. 实验原理 • 配置内核在RAM中执行 • 生成内核映像文件 • 设置Embest IDE • 调试内核 • Embest IDE调试内核 进行内核调试时,通常使用未经压缩在RAM中执行的内核映像

  38. 实验原理 • 1、在内核定制Customize Kernel Settings中,系统类型System Type中选择内核执行方式Kernel executes from为RAM。 • 2、在链接脚本文件linux-2.4.x/arch/armnommu/vmlinux.lds中设置内核运行起始地址为0x8000。 • 配置内核在RAM中执行

  39. 实验原理 • 设置 Embest IDE • 在调试设置中,设置调试信息文件为 linux-2.4.x/linux,下载文件为image.ram,下载地址为0x8000。

  40. 实验原理 • 依次执行Debug菜单中的Remote Connect和Download命令,反汇编窗口将显示μClinux内核的汇编执行代码,此时可以通过IDE使用断点设置、单步执行、变量监视、寄存器查看修改等方法对μClinux内核进行调试。 • 调试内核

  41. 实验原理 • start_kernel()函数,在执行完其中的console_init()函数之前,串行口终端不会输出任何信息,因此可以通过串行口终端输出console_init()函数后执行信息。 • 串口打印信息调试内核

  42. 实验原理 • 第一部分的信息调用函数printk()输出,该函数在linux-2.4.x/kernel/printk.c中。 • 第二部分信息是在文件系统装载以后,执行/etc/rc文件里的系统命令的打印结果,这些打印信息是由user/sash/文件夹下的sash.c文件中包含的printf("Command: %s\n",buf)命令产生。 • 超级终端显示的启动信息分两部分

  43. 8.3.5实验操作步骤 • 1、准备实验环境,使用Embest S3CEV40目标板附带的串口线连接目标板上的UART0和PC机的串口,使用Embest S3CEV40目标板附带的网线连接目标板上的ETHERNET和PC机的网口。 • 2、在PC机上运行Windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。

  44. 实验操作步骤 • 3、在cygwin下修改内核,如在start_kernel函数里的mem_init函数前加入一句“printk(“This is mem_init............................./n”);”。编译出μClinux内核,进入μClinux目录下的linux-2.4.x目录,对elf格式的linux文件执行以下命令,生成可执行文件image.ram: arm-elf-objcopy -O binary -R .note -R .comment -S linux image.ram

  45. 实验操作步骤 • 对linux文件执行以下命令,生成μClinux内核的反编译文件: arm-elf-objdump –S linux | tee linux.dump

  46. 实验操作步骤 • 4、Embest仿真器连接目标板Embest S3CEV40,使用Embest IDE通过Embest仿真器与目标板建立联系。 • 将image.ram放到D盘根目录(或其他目录)下,因为μClinux内核从RAM地址0x8000处开始执行,所以Embest仿真器下载的起始地址定为0x8000。

  47. 实验操作步骤 • 将image.ram文件下载到目标板RAM中。在Embest IDE的Toggle Output框里输入以下下载命令: download d:\image.ram 0x8000 5、Embest IDE的Disassembly框里出现的码就是μClinux内核的汇编执行代码。 6、用Embest IDE在0x8000地址处运行内核。

  48. 8.4 在文件系统中增加应用程序实验 • 8.4.1实验目的 • 8.4.2实验设备 • 8.4.3实验内容 • 8.4.4实验原理 • 8.4.5实验操作步骤

  49. 8.4.1实验目的 • 通过实验掌握在文件系统中增加应用程序。

  50. 8.4.2实验设备 • 硬件:Embest S3CEV40实验平台, PC机 • 软件:Linux或者Windows 98/2000/NT/XP 下的cygwin开发环境

More Related