8.3μClinux内核调试实验.ppt

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8.3 μClinux 内核调试实验 一、实验目的 了解和掌握μClinux的内核调试方法。 二、实验设备 三、实验内容 使用Embest IDE软件进行内核调试,并将内核在运行过程中的调试信息打印到终端。 四、实验原理 四、实验原理 Flash本地运行方式: 内核的启动包括特定体系结构设置和μClinux系统初始化两步 内核启动的入口文件是head-armv.s。 head-armv.s实现特定体系结构设置 start_kernel实现 μClinux系统初始化 四、实验原理 四、实验原理 配置内核在RAM中执行 生成内核映像文件 设置Embest IDE 调试内核 四、实验原理 1、在内核定制Customize Kernel Settings中,系统类型System Type中选择内核执行方式Kernel executes from为RAM。 2、在链接脚本文件linux-2.4.x/arch/armnommu/vmlinux.lds中设置内核运行起始地址为0x8000。 四、实验原理 在调试设置中,设置调试信息文件为 linux-2.4.x/linux,下载文件为image.ram,下载地址为0x8000。 四、实验原理 依次执行Debug菜单中的Remote Connect和Download命令,反汇编窗口将显示μClinux内核的汇编执行代码,此时可以通过IDE使用断点设置、单步执行、变量监视、寄存器查看修改等方法对μClinux内核进行调试。 四、实验原理 start_kernel()函数,在执行完其中的console_init()函数之前,串行口终端不会输出任何信息,因此可以通过串行口终端输出console_init()函数后执行信息。 四、实验原理 第一部分的信息调用函数printk()输出,该函数在linux-2.4.x/kernel/printk.c中。 第二部分信息是在文件系统装载以后,执行/etc/rc文件里的系统命令的打印结果,这些打印信息是由user/sash/文件夹下的sash.c文件中包含的printf(Command: %s\n,buf)命令产生。 五、实验操作步骤 1、准备实验环境,使用Embest S3CEV40目标板附带的串口线连接目标板上的UART0和PC机的串口,使用Embest S3CEV40目标板附带的网线连接目标板上的ETHERNET和PC机的网口。 2、在PC机上运行Windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 五、实验操作步骤 3、在cygwin下修改内核,如在start_kernel函数里的mem_init函数前加入一句“printk(“This is mem_init............................./n”);”。编译出μClinux内核,进入μClinux目录下的linux-2.4.x目录,对elf格式的linux文件执行以下命令,生成可执行文件image.ram: 五、实验操作步骤 对linux文件执行以下命令,生成μClinux内核的反编译文件: 五、实验操作步骤 4、Embest仿真器连接目标板Embest S3CEV40,使用Embest IDE通过Embest仿真器与目标板建立联系。 将image.ram放到D盘根目录(或其他目录)下,因为μClinux内核从RAM地址0x8000处开始执行,所以Embest仿真器下载的起始地址定为0x8000。 五、实验操作步骤 将image.ram文件下载到目标板RAM中。在Embest IDE的Toggle Output框里输入以下下载命令: * 实验操作步骤 实验原理 实验内容 实验设备 实验目的 1 2 3 4 5 硬件:Embest S3CEV40实验平台, Embest仿真器,PC机 软件:Embest IDE 2003, Windows 98/2000/NT/XP下的cygwin开发环境 Flash本地运行方式:内核的未经压缩的可执行映像固化在Flash,系统启动时内核从Flash中开始逐句执行。 压缩内核加载方式:内核的压缩映像固化在Flash上,系统启动时由附加在压缩映像前的解压复制程序读取压缩映像,在内存中解压后执行,这种方式相对复杂,但是运行速度更快(RAM的存取速率要比Flash高)。 μClinux内核启动过程 配置系统寄存器; 初始化ROM、RAM以及总线控制寄存器等; 设置堆栈指针,将bss段清零; 修改pc指针,跳转到linux-2.4.x/init/main.c中的start_kernel函数,开始μClinux系统的初始化。

文档评论(0)

153****0792 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档