实验一、HITOOLS FOR UCLINUX开发环境.doc_第1页
实验一、HITOOLS FOR UCLINUX开发环境.doc_第2页
实验一、HITOOLS FOR UCLINUX开发环境.doc_第3页
实验一、HITOOLS FOR UCLINUX开发环境.doc_第4页
实验一、HITOOLS FOR UCLINUX开发环境.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一、Hitools for uClinux开发环境 一、实验目的 安装 Hitools for uClinux,熟悉Hitools for uClinux开发环境,学会JEDI仿真器的使用。使用Hitools for uClinux裁剪内核,编译内核,下载内核,并跟踪一段内核源程序。了解使用Hitools for uClinux进行uClinux开发的基本过程。 二、实验内容 本次试验使用Hitools for uClinux集成开发环境。在Windows环境下安装 Hitool for ARM supporting uClinux,对uClinux内核和应用程序进行裁剪,并进行编译。学习使用JEDI仿真器,下载已经编译好的内核到评估板中。学会在内核中设置断点,观察内存和变量。 三、预备知识 ARM结构基础知识,C语言的基础知识,ARM汇编语言基础知识。 四、实验设备及工具(包括软件调试工具) 硬件:ARM评估板、JEDI仿真器、PC机。 软件:PC机操作系统win2K、Hitools for uClinux集成开发环境、uClinux软件包(评估板相关)。五、实验步骤 1,安装:安装 Hitool for ARM supporting uClinux 的过程主要有三个步骤 :1.1 安装 Cygwin :Hitool for uClinux 提供了一个支持在 Windows 平台建立编译 linux image 的环境,必须使用到 Cygwin, 如果您使用您自己的 linux 或其它 kernel image build 环境,则可以略过这个安装程序直接安装Hitool 。你需要安装的 cygwin 套件如下 : BASE : 全部 Devel : 全部 Interpreters: expect, gawk, m4, perl Libs: tcltk Shells: bash Text: less Utils: bzip21.2 安装 Hitool Debugger :1.2.1 Hitool 安装时会检查Cygwin 是否己安装,若不使用 Win32 环境 Build linux image 则可略过 Cygwin 安装。1.2.2 因为 Hitool 可支持众多 Target , 因此建议在安装时为你的开发环境选择不同的 uclinux 安装目录, 例如将 Atmel Target 开发环境安装于 uclinux.atmel 而把 Samsung Target 的 uclinux kernel 安装于 uclinux.Samsung 。1.2.3 Hitool 会安装于指定安装目录之下的 Hitool 目录. (如 uclinux.Samsunghitool)1.3 安装 armtools 及 uClinux 套件 :Hitool 安装完成后,会将 uclinux 套件复制到 uclinux 安装目录下.1.3.1 执行Armtools 解压缩与安装 :$ sh unpack_armtools.sh1.3.2 执行uClinux 套件解压缩与安装 :$ sh unpack_uClinux.sh2 开发环境的设立:建立uClinux的内核开发环境,你需要一个JTAG 仿真器(PowerProbe 或JEDI),与开发板和宿主机相连。再使宿主机的串口与开发板的串口相连,并在宿主机上启动HyperTerm程序,设置波特率为9600。 如图所示:图3 uClinux开发环境 其中HyperTerm用来作为uClinux 的标准输入输出。网口可以作为MDB的调试界面,也可以通过它来使用网络文件系统(NFS).当所有连接都正确后,启动Configuration of Hitool(只有在第一次使用时才需要).根据你的JTAG仿真器类型,选择正确的JTAG protocol。具体配置可参照Hitool for ARM用户手册或者在线帮助。3, 配置内核和必要的应用程序.启动Hitool for uClinux 后,会有一个叫做“Linux Kernel”的工具栏出现在屏幕上(如下图)。请按“Setting”按钮设置linux相关的源文件路径,内核版本,以及运行时间库的版本。例如,如果你的linux源结构为: userC:uclinuxuClinux-dist linux-2.4.x lib请设置源文件路径为: C:uclinuxuClinux-dist设置Kernel version为: linux-2.0.x (use linux-2.4.x for Samsung4510)设置Library为: uClibc(use uC-libc for Samsung4510)当这些参数设定以后,按Config Kernel 按钮,就进入了系统配置主窗口.uClinux配置主窗口目标配置主窗口如果选择y for “Customize Kerenel Settings” or “Customize Vendor/User Settings”, 下列窗口会依次出现.内核配置窗口开发板配置窗口你可以根据开发板的参数填入相应的值. 所有的预设值都是为所带的评估板而设定的. 其他配置窗口不再一一赘述.当配置完成之后,会自动作依赖关系设定.这会需要一段时间.在整个过程中,如果你希望终止至,可以按”stop”按钮。4,编译内核和根文件系统.当前面的步骤完成以后,可以按” Make Kernel” 按钮来编译了。编译的结果会同步显示在输出窗口中。 整个编译过程其实包含了好几个步骤。第一步是编译user目录下的一些应用程序,例如 init.exe ,agetty.exe ,sh.exe,mount.exe 等等。 这些程序的后缀名都必须是exe,尽管它们不是windows下的可执行程序,这样做仅仅是为了保证它们的可执行属性(x属性)。第二步是把第一步编好的程序考到romfs目录下,并调用genromfs 命令来生成根文件系统的映像romfs.img 。第三步才是编译内核, 并把romfs.img 连接进去, 产生linux.elf。 这是一个带有条是信息的映像。如果要对内核作调试, 用这个文件即可。第四步是把linux.elf 去掉条是信息,转成linux.bin, 并把它与boot 目录下的启动代码连接在一起, 生成最终的Flash映像linux_bootrom.bin。 可以用Hitool自带的烧入工具把他写到Flash中。5,调试内核.要进行调试, 先执行菜单命令Project | Init Debugger, 使 Hitool与仿真器连接。如果你将要调试的uClinux 内核(linux.elf)已准备好,点击Load按钮将内核下载到开发板的RAM上。这样,你可以调试linux 内核就像调试一个普通的嵌入式程序。Hitool会帮你处理掉很多和linux 相关的细节。利用File菜单下的Load Image工具将linux.elf通过JEDI加载到评估板,加载结束后,PC指针会指向uClinux内核的第一条汇编指令。如果这是第一次编译,加载uClinux内核,Hitools for uClinux会要求手工选择Head-armv.S源文件路径。该文件在linux-2.0.xarcharmnommukernel目录下。指定该文件后,Hitools for uClinux会显示该文件源代码(汇编格式)。这时可以对源代码设断点,单步执行,查看和修改内存,寄存器。运行到 bstart_kernel内核开始进入C源文件。继续单步执行,跟踪。如果需要全速运行,可以用Debug菜单中Go(F5)或Free Run。二者的区别是使用Go(F5)时,uClinux执行到产生任务时,Hitools for uClinux会询问是否要进行调试,而使用Free Run,Hitools for uClinux不会询问。执行到最后,可以在超级终端上看到uClinux的启动画面。在调试过程中,有几个窗口会很有帮助,一个是项目窗口中的Linux SRC pane,这里会列出uClinux 的源代码的文件结构.另一个是”Symbol” Pane. 你可以通过他们在复杂的linux源代码中找到需要的信息. uClinux源代码结构和调试符号uClinux调试源代码窗口Hitool为开发者提供了uClinux 中运行的任务的详细的信息。点击工具菜单的Task Info,打开uClinux 窗口,窗口信息如下:uCLinux 进程窗口uClinux 窗口显示了系统的所有进程,它们按照创建顺序排列。对于每一个线程,给出了详细内容如下:Name 程序名Pid 进程标示符State 目前进程执行状态,进程可处在五个状态中的一个状态下: Running(运行态): 进程已经在被CPU执行 或者正在等待被 CPU执行。 Interruptiable(可中断态): 进程正在等待某些事件或者资源。可以被一些信号中断。 Uninterruptible(不可中断态): 进程正在等待某些事件或者资源,一般情况下,它在等待硬件资源,不可用任何方式中断。 Zombie:进程实际上已被中止。但是由于某种原因,进程的task_struct 还停留在任务向量表task vector中,这是进程的最后状态。 Stopped: 进程被中断,被调试的进程有可能中断。 在linux中有的Swapping状态再uClinux中是不存在的。Counter 进程计数器Priority 进程优先级Policy 进程的调度算法。 FIFO 运行首先创建的进程。 RR 按顺序标记完成进程。这样,直到所有的进程都已完成。Register-所选进程的寄存器。当你右击uClinux窗口上部任何地方,会弹出快捷菜单:uCLinux 任务快捷菜单Identifiers :这一项弹出了Identifiers对话框,显示选中进程标识符,用户标识符和组标识符。uCLinux 进程标识符窗口Time:显示选中进程的时间信息。包括进程的创建时间,在用户态的运行时间,在内核态的运行时间等等。uCLinux 进程时间统计窗口Timer:Linux 支持以下三种计时器:实时,虚拟,以及检索Profile 计时器。Timer对话框显示着

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论