SkyEye 用户手册 版本 0.2 维护者 :Michael.Kang 邮件

Similar documents
untitled

ARM JTAG实时仿真器安装使用指南

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

一个开放源码的嵌入式仿真环境 ― SkyEye

Abstract arm linux tool-chain root NET-Start! 2

MUGI Ver Copyright c 2001, 2002 Hitachi, Ltd. All rights reserved. 1

Oracle Solaris Studio makefile C C++ Fortran IDE Solaris Linux C/C++/Fortran IDE "Project Properties" IDE makefile 1.

epub83-1

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

ch08.PDF

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

目 录

华恒家庭网关方案

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

Outline 1 SkyEye 简介 2 SkyEye 的安装 SkyEye 的安装试用 skyeye 下载 skyeye 源代码, 编译并安装 3 启动 Linux 执行自己的程序添加 hello 到 uclinux 的根文件系统中在 ArmLinux 中运行 hello 4 编译 linux

Oracle Oracle Solaris Studio IDE makefile C C++ Fortran makefile IDE Solaris Linux C/C++/Fortran Oracle IDE "P

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

NEXT SDT2.51 C:\ARM251 SDT2.51 ARM SDT 2.51 ARM PROJECT MANAGER SDT 2

Simulator By SunLingxi 2003

+00DE _01EN.book

untitled

LSC操作说明

SA-DK2-U3Rユーザーズマニュアル

ebook140-9

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

目录

ebook140-8

自由軟體教學平台

Windows XP

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Microsoft Word - 在VMWare-5.5+RedHat-9下建立本机QTopia-2.1.1虚拟平台a.doc

C/C++ - 文件IO

自由軟體教學平台

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南


2/80 2

1.ai

自由軟體教學平台

untitled

ICD ICD ICD ICD ICD

Guide to Install SATA Hard Disks

Sun Fire V440 Server Administration Guide - zh_TW

els0xu_zh_nf_v8.book Page Wednesday, June, 009 9:5 AM ELS-0/0C.8

User’s Manual

Application Note Format

EK-STM32F

Bus Hound 5

2 2 3 DLight CPU I/O DLight Oracle Solaris (DTrace) C/C++ Solaris DLight DTrace DLight DLight DLight C C++ Fortran CPU I/O DLight AM

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

AL-M200 Series

Tel: Fax: TTP-344M/246M /

Progress Report of BESIII Slow Control Software Development

PROFIBUS3.doc

Chapter #

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

Some experiences in working with Madagascar: installa7on & development Tengfei Wang, Peng Zou Tongji university

PCM-3386用户手册.doc

untitled

Microsoft Word - 11.doc

言1.PDF

概述

劇情大綱 這是有關一對兄妹的故事 不過 所有的情節 必需先從一隻山羊說起 邱興傳 阿傳 在一次部隊的演習中撿到了一隻山羊 沒有烙印記號也 沒人招領 所以退伍時決定把羊帶回家 他攔了一台空的小貨車 央求對方 載他和羊到火車站去 也就在半路上 山羊講話了 山羊說 牠是鬼 卻被一個假裝是鬼的人給騙了 才逼

K7VT2_QIG_v3

¬¬

Ác Åé å Serial ATA ( Sil3132) S A T A (1) SATA (2) BIOS SATA (3)* RAID BIOS RAID (4) SATA (5) SATA (a) S A T A ( S A T A R A I D ) (b) (c) Windows XP

Measurement Studio Expands Your Test and Measurement Programming Power

自动化接口

TX-NR3030_BAS_Cs_ indd

Cadence Poqi

Cadence SPB 15.2 VOICE Cadence SPB 15.2 PC Cadence 3 (1) CD1 1of 2 (2) CD2 2of 2 (3) CD3 Concept HDL 1of 1

IP505SM_manual_cn.doc

C语言的应用.PDF

WinMDI 28

“PC通”商业计划书.doc

untitled

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

f2.eps

V6800/V6600 3D

P4VM800_BIOS_CN.p65

an153f

Chapter 24 DC Battery Sizing

C/C++ - 字符输入输出和字符确认

P4Dual-915GL_BIOS_CN.p65

「人名權威檔」資料庫欄位建置表

P4V88+_BIOS_CN.p65

IC-900W Wireless Pan & Tilt Wireless Pan & Tilt Remote Control / Night Vision FCC ID:RUJ-LR802UWG

Microsoft Word - PS2_linux_guide_cn.doc

Microsoft Word - template.doc

1

CDWA Mapping. 22 Dublin Core Mapping

标题

一、

untitled

coverage2.ppt

KL DSC DEMO 使用说明

Chapter 2

Microsoft Word - linux命令及建议.doc

Transcription:

SkyEye 用户手册 版本 0.2 维护者 :Michael.Kang 邮件 :blackfin.kang@gmail.com

修订记录 版本号修订人意图

目录

1.1 介绍 第一章 SkyEye 的介绍和安装 skyeye 是一个支持多架构, 多核, 并且高度可扩展的硬件仿真平台, 当前主要由核心库 libcommon.so 和基于核心库的一系列插件组成 SkyEye 支持的体系结构有 Arm, Blackfin, Coldfire, PowerPC, MIPS 和 Sparc, 计划下一步支持 x86 的仿真 SkyEye 的官方网站为 www.skyeye.org, 目前由 wangyonghao 负责维护 SkyEye 的源代码通过 svn 仓库进行维护, 其地址为 : http://skyeye.sourceforge.net/ SkyEye 的源代码当前由 Michael.Kang 负责维护管理, 当前 SkyEye 的开发者论坛设为 http://groups.google.com/group/skyeye-simulator 可以在这个论坛上讨论 SkyEye 开发中碰到的各种问题和各种想法,SkyEye 的最新版本发布信息也会第一时间发布在上面 SkyEye 共包含了两个软件包, 一个为 skyeye 的发布版本包, 另外一个为 skyeye 的测试套件包 一般说来, 这两个包会同时发布, 并且拥有相同的版本号 测试套件包用来对相应版本的 skyeye 软件包进行测试 1.2 安装 1.2.1 二进制的 rpm 包安装 对于普通用户来说, 可以下载 skyeye 的二进制的 rpm 包进行安装 skyeye 默认的安装路径为 /opt/skyeye 从 SkyEye 官方网站 (http://sourceforge.net/projects/skyeye/) 下载 rpm 包, 然后进行安装 安装的命令如下, 需要用超级用户的权限 rpm -ivh skyeye-1.2.9-rc1.i386.rpm 1.2.2 源代码安装 从 sourceforge 网站上下载 Skyeye 的 1.2.9 的源代码, 解压 tar xzvf skyeye-1.2.9_rc1.tar.gz 然后运行如下命令编译./configure make lib make 其中 make lib 来编译第三方的库,make 来编译 skyeye 的源代码 最后安装 SkyEye 到 /opt 目录下 make install_lib make install

1.3 安装后的目录和文件 安装之后,/opt/skyeye 应该有以下目录 : bin conf include info lib testsuite 其中 bin 目录存放了 skyeye 的二进制程序, 描述如下 : mknandflashdump : 用来制作 nandflash 的镜像文件 skyeye :skyeye 的命令行应用程序 Skyeye-gui : skyeye 的图形应用程序 uart_instance : 被 skyeye 调用的应用程序, 功能为通过一个 xterm 终端来显示串口的输出 conf 目录存放了针对已经支持的目标板的一些配置文件, 供参考 include 目录存放了 skyeye 开发插件时所用到的头文件, 这些头文件定义了 skyeye 提供的 API 函数的原型 info 目录存放了 info 格式的文档, 暂时没有提供 Lib 目录存放了 skyeye 的核心库 libcommon.so 和其他一些以动态库存在的插件 testsuite 目录存放了一个简单的测试用例, 用来演示 skyeye 的一些功能

2.1 运行 SkyEye 的命令行应用程序 第二章 SkyEye 快速入门 直接输入 /opt/skyeye/bin/skyeye 会启动 skyeye 的命令行应用程序, 并进入 skyeye 的命令行接口, 显示如下 : ksh@linux-gvai:/opt/skyeye> /opt/skyeye/bin/skyeye SkyEye is an Open Source project under GPL. All rights of different parts or modules are reserved by their author. Any modification or redistributions of SkyEye should note remove or modify the annoucement of SkyEye copyright. Get more information about it, please visit the homepage http://www.skyeye.org. Type "help" to get command list. 在 skyeye 的安装目录中包含一个小的 testcase, 在目录 testsuite/arm_hello 中 这个测试用例会运行一个不依赖于操作系统的 helloworld, 我们可以通过运行这个 helloworld 来学习 skyeye 的基本用法 运行 skyeye -e arm_hello 命令, 进入 skyeye 命令行界面, 输出如下 : ksh@linux-gvai:/opt/skyeye/testsuite/arm_hello> /opt/skyeye/bin/skyeye -e arm_hello SkyEye is an Open Source project under GPL. All rights of different parts or modules are reserved by their author. Any modification or redistributions of SkyEye should note remove or modify the annoucement of SkyEye copyright. Get more information about it, please visit the homepage http://www.skyeye.org. Type "help" to get command list. 然后运行 start 命令加载配置和初始化目标机, 命令显示如下 : start arch: arm cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0 In do_mach_option, mach info: name at91, mach_init addr 0xb68b2360 uart_mod:3, desc_in:, desc_out:, converter: In create_uart_console SKYEYE: use arm7100 mmu ops exec file "arm_hello"'s format is elf32-i386. load section.text: addr = 0x01000000 size = 0x00000084.

In tea_write, load_base=0x0,load_mask=0xffffffff load section.glue_7: addr = 0x01000084 size = 0x00000000. load section.glue_7t: addr = 0x01000084 size = 0x00000000. load section.data: addr = 0x01002000 size = 0x00001000. In tea_write, load_base=0x0,load_mask=0xffffffff not load section.bss: addr = 0x01003000 size = 0x00000000. not load section.debug_abbrev: addr = 0x00000000 size = 0x0000004e. not load section.debug_info: addr = 0x00000000 size = 0x00000187. not load section.debug_line: addr = 0x00000000 size = 0x000000a9. not load section.debug_pubnames: addr = 0x00000000 size = 0x0000001c. not load section.debug_aranges: addr = 0x00000000 size = 0x00000020. In SIM_start, Set PC to the address 0x1000000 同时在主机上会显示一个 xterm 的窗口, 窗口标题为 "uart_instance" 截屏如下 :

然后我们可以输入 "run 命令来启动 helloworld 的测试用例, 输出如下 :

我们在 helloworld 运行过程中, 也可以随时输入 "stop 命令去停止目标板的运行, 也可以在运行过程中输入其他命令来显示目标板及其软件的各种信息 如我们输入 "stop 命令来停止目标板, 然后输入 info regitsters 查看当前的寄存器的数值, 如下 : (running)stop info registers R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 0xf4240 0xfffd001c 0xa 0x58b0e 0x0 0x0 0x0 0x0 0x0 0x0

R10 0x0 R11 0x1001ffc R12 0x1000078 R13 0x1001ff0 LR 0x1000018 PC 0x100004c 然后我们可以输入以下命令对当前 PC 之后的指令进行, 进行反汇编 : disassemble 0x100004c cmp r3, r0 bne mov r2, #0 ; 0x0 ldrb r3, [ip, r2] add r2, r2, #1 ; 0x1 cmp r2, #9 ; 0x9 str r3, [r1] ble b tsteq r0, r8, ror r0

第三章 SkyEye 命令列表 3.1 调试相关的命令 3.1.1 break 命令 :break [ 断点地址 ] 说明 : 对某一个地址下断点描述 : 用例 : break 0x1000050 Insert breakpoint at address 0x1000050 successfully. 3.1.2 list-bp 命令 :list-bp 说明 : 列出当前所有的断点描述 : 用例 : list-bp ID Address 1 0x1000050 3.1.3 show-step 命令 :show-step. 说明 : 显示当前运行的指令数目描述 : 用例 : 3.1.4 stepi 命令 :stepi [number of instruction] 说明 : 单步运行, 可以指定运行多少条指令 描述 : stepi 100 In skyeye_stepi, stopped_step=100 3.1.5 show-step 命令 :stepi [number of instruction] 说明 : 显示当前运行的指令数目描述 : show-step steps: 5276005

3.1.6 x 命令 :x [the address of memory] 说明 : 显示某一物理内存地址的值描述 : x 0x129f798 0x129f798:0xac85fff8 3.1.7 disassemble 命令 :disassemble [the address of memory] 说明 : 反汇编某一物理内存的值为指令描述 : disassemble 0x129f798 stcge 15, cr15, [r5], {248} stcge 15, cr15, [r5], {252} strne pc, [r4, #-4078]! andeq r0, r0, r0 stfccd f0, [r9], {42} strcs pc, [r9, #-2044]! teqeq r8, r3, lsr #16 teqeq r0, r8 addeq r2, r8, r1, lsr #32 stcge 15, cr15, [r5], {192} 3.1.8 info registers 命令 : infor registers 说明 : 显示当前处理器的寄存器的值 描述 : info registers R0 0x0 R1 0x81560000 R2 0x87ec8000 R3 0x812d0e50 R4 0x87ec8d00 R5 0x0 R6 0x1000 R7 0x400 R8 0x0 R9 0x87ec9000 R10 0xac220000 R11 0x8f81801c R12 0x0 R13 0x400 R14 0xa R15 0x24217174

R16 0x819cf710 R17 0x87ec8000 R18 0x0 R19 0x819cf710 R20 0x87fdfdec R21 0x400 R22 0x87fae420 R23 0x819cf710 R24 0x0 R25 0x2 R26 0x87febd08 R27 0x87febd08 R28 0x87fea000 R29 0x87febcc8 R30 0x87fae4cc R31 0x81293584 PC 0x8129f798 3.1.9 info registers 命令 : load-conf 说明 : 加载 skyeye 的配置文件并解析描述 : 3.2 显示目标板及运行环境 3.2.1 list-options 命令 :list-options 说明 : 显示当前 SkyEye 配置文件支持的选项描述 : 用例 :. list-options Option Name Description nandflash cpu Processor option for arm architecture. uart Uart settings net Netcard settings lcd mach machine option mem_bank arch support different architectures. cpu Do not need to provide cpu option any more.

3.2.2 show-map 命令 :show-map 说明 : 显示当前的地址分布, 以及不同设备所占的地址空间 描述 : show-map Start Addr Length Type 0xc0000000 0xc1000000 memory 0xc1000000 0xc1600000 memory 0xc1600000 0xc2000000 memory 0x48000000 0x68000000 IO 0x19000300 0x19000320 IO 3.2.3 show-pref 命令 :show-pref 说明 : 显示当前的 skyeye 的一些预置的运行选项描述 : 这些运行选项可以在 skyeye 命令行启动的时候传给 skyeye, 也可以通过 skyeye 的图形窗口进行设置 show-pref Module search directorys: /opt/skyeye/lib/skyeye/ Boot address: 0x0 Executable file: (null) Load base for executable file: 0x0 Load mask for executable file: 0x0 SkyEye config file: skyeye.conf Endian of exec file: Little endian 3.2.4 list-modules 命令 :list-modules 说明 : 列出所有的已加载的模块名称以及模块的动态库文件 描述 : list-modules Module Name File Name nandflash /opt/skyeye/lib/skyeye/libnandflash.so arm /opt/skyeye/lib/skyeye/libarm.so log-pc /opt/skyeye/lib/skyeye/log.so bfin /opt/skyeye/lib/skyeye/libbfin.so log-pc /opt/skyeye/lib/skyeye/liblog.so uart /opt/skyeye/lib/skyeye/libuart.so disassemble /opt/skyeye/lib/skyeye/libdisasm.so mips /opt/skyeye/lib/skyeye/libmips.so

net code_cov sparc ppc touchscreen coldfire flash lcd gdbserver. /opt/skyeye/lib/skyeye/libnet.so /opt/skyeye/lib/skyeye/libcodecov.so /opt/skyeye/lib/skyeye/libsparc.so /opt/skyeye/lib/skyeye/libppc.so /opt/skyeye/lib/skyeye/libts.so /opt/skyeye/lib/skyeye/libcoldfire.so /opt/skyeye/lib/skyeye/libflash.so /opt/skyeye/lib/skyeye/liblcd.so /opt/skyeye/lib/skyeye/libgdbserver.so 3.2.5 list-machines 命令 :list-machines 说明 : 列出当前模拟器支持的处理器类型描述 : list-machines Machine Name omap5912 ps7500 lpc2210 ns9750 sharp_lh7a400 s3c2440 s3c2410x at91rm92 pxa_mainstone pxa_lubbock sa1100 cs89712 ep9312 lh79520 ep7312 s3c3410x s3c4510b lpc at91 3.3 目标板控制命令 3.3.1 start 命令 :start 说明 : 加载配置文件并初始化相应的数据结构

描述 : start arch: mips Error: Unkonw cpu name "mips" "cpu" option parameter error! In do_mach_option, mach info: name gs32eb1, mach_init addr 0xb7937d20 Unkonw option: log uart_mod:3, desc_in:, desc_out:, converter: In create_uart_console In skyeye_read_config, Config format is wrong. exec file "vmlinux"'s format is elf32-i386. load section.text: addr = 0x81200000 size = 0x000ad2a0. In tea_write, load_base=0x0,load_mask=0xfffffff load section.fixup: addr = 0x812ad2a0 size = 0x0000107c. In tea_write, load_base=0x0,load_mask=0xfffffff load section.kstrtab: addr = 0x812ae31c size = 0x0000217c. In tea_write, load_base=0x0,load_mask=0xfffffff load section ex_table: addr = 0x812b04a0 size = 0x00001608. In tea_write, load_base=0x0,load_mask=0xfffffff load section dbe_table: addr = 0x812b1aa8 size = 0x00000000. load section ksymtab: addr = 0x812b1aa8 size = 0x000010c8. In tea_write, load_base=0x0,load_mask=0xfffffff load section.data.init_task: addr = 0x812b4000 size = 0x00002000. In tea_write, load_base=0x0,load_mask=0xfffffff load section.text.init: addr = 0x812b6000 size = 0x000092f8. In tea_write, load_base=0x0,load_mask=0xfffffff load section.data.init: addr = 0x812bf2f8 size = 0x000003b0. In tea_write, load_base=0x0,load_mask=0xfffffff load section.setup.init: addr = 0x812bf6b0 size = 0x000000a0. In tea_write, load_base=0x0,load_mask=0xfffffff load section.initcall.init: addr = 0x812bf750 size = 0x0000004c. In tea_write, load_base=0x0,load_mask=0xfffffff load section.data.cacheline_aligned: addr = 0x812c0000 size = 0x00001180. In tea_write, load_base=0x0,load_mask=0xfffffff load section.reginfo: addr = 0x812c1180 size = 0x00000018. In tea_write, load_base=0x0,load_mask=0xfffffff load section.data: addr = 0x812c2000 size = 0x00290000. In tea_write, load_base=0x0,load_mask=0xfffffff not load section.sbss: addr = 0x81552000 size = 0x00000000. not load section.bss: addr = 0x81552000 size = 0x0001f4f0. not load section.comment: addr = 0x000101f4 size = 0x00000ed6. not load section.pdr: addr = 0x00000000 size = 0x00012b60. not load section.mdebug.abi32: addr = 0x00000000 size = 0x00000000. In SIM_start, Set PC to the address 0x1200464 In gs32eb1_boot_linux, Set PC to the address 0x81200464

3.3.2 run 命令 :run 说明 : 从目标板的 PC 地址开始执行描述 : run (running) 3.3.3 continue 命令 :continue 说明 : 在模拟器停止状态下, 继续运行描述 : continue (running) 3.3.4 stop 命令 :stop 说明 : 在模拟器运行状态下, 停止模拟器的运行描述 : (running)stop 3.3.5 quit 命令 :quit 说明 : 退出模拟器, 整个 skyeye 软件退出描述 : q Destroy threads. Unload all modules. exit. 3.4 其它杂项命令 3.4.1 help 命令 :help 说明 : 获得命令的帮助描述 :

help No commands match ''. Possibilties are: log-pc : record the every pc to log file. log-pc : record the every pc to log file. disassemble : Disassemble the given address. list-bp : List all the breakpoint. break : set breakpoint for an address. show-step : Show the steps of current processor. x : display memory value at the address. info : show information for various objects. load-conf : load a config file and parse it for SkyEye. list-machines : List all the supported machines for SkyEye. list-options : List all the available options for SkyEye. show-map : Show the current memory map for the machine. show-pref : Show the current preference for SkyEye. list-modules : List all the loaded module. start : start simulator. stepi : step into. continue : Continue the running of interrupted simulator. stop : Stop the running of simulator. run : Start the simulator. q : Quit SkyEye quit : Quit SkyEye ls : Synonym for `list'? : Synonym for `help'. help : List all the category for the commands. help : List all the category for the commands.

4.1 skyeye 的配置文件 skyeye.conf 第四章 SkyEye 配置文件 skyeye.conf 是 skyeye 的配置文件, 用来描述模拟的目标板的类型, 内存分布, 以及 SkyEye 的运行配置等等信息 事实上, 你可以把想要让用户配置的选项都可以放在 skyeye 配置文件中 这样用户可以通过编辑 skyeye.conf 文件来比较灵活的选择仿真平台的功能和定制要模拟的目标板 下面是 skyeye.conf 的一个例子 : # skyeye config file for S3C2410X arch:arm cpu: arm920t mach: s3c2410x # physical memory mem_bank: map=m, type=rw, addr=0x30000000, size=0x00800000 mem_bank: map=m, type=rw, addr=0x30800000, size=0x00800000, file=./initrd.img mem_bank: map=m, type=rw, addr=0x31000000, size=0x01000000 # all peripherals I/O mapping area mem_bank: map=i, type=rw, addr=0x48000000, size=0x20000000 mem_bank: map=i, type=rw, addr=0x19000300, size=0x00000020 net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1 lcd: type=s3c2410x, mod=gtk load_addr:base=0x30000000, mask=0xffffff #dbct:state=on

4.2 skyeye.conf 文件的格式 当前,skyeye.conf 中有两种格式的配置选项 第一种配置选项为简单的配置选项, 格式如下 : option_name: option_value 对于一些如 arch 选项,mach 选项都是这样的格式, 例如下面的 arch 选项 arch:arm arch 是选项的名称, 它的值为 arm 第二种选项的格式略微复杂, 用来设定更多的参数, 其格式如下 : option_name: arg_name=arg_value, arg_name=arg_value,... 其中 option_name 为选项的名称,arg_name 为选项的参数名称,arg_value 为选项的参数值 举例如下 : lcd: type=s3c2410x, mod=gtk lcd 是选项的名称 type 是 lcd 这个选项的一个参数, 这个参数的值为 s3c2410x 而 "mod 为 "lcd" 选项的另外一个参数的名称, 它的值为 gtk 如果配置文件中的一行以 # 开始, 则表明这一行为注释 SkyEye 在解析配置文件的时候会忽略这一行

4.3 skyeye.conf 中的不同选项 当前 SkyEye 支持非常多的选项, 通过这些选项我们可以比较容易的去定制和配置我们要模拟的目标硬件 下面我们分别对不同的选项进行比较详细的描述 4.3.1 arch 选项 选项名称 : arch 合法的参数值 : arm, blackfin, coldfire, ppc, mips, sparc 描述 : 用来指出我们要模拟的体系结构的名称. arch: arm 4.3.2 cpu 选项 选项名称 : cpu 合法的参数值 : SkyEye 支持的不同体系结构支持的处理器系列, 例如 : arm7dmi, e500 等等. 描述 : cpu: e500 4.3.3 mach 选项 选项名称 :mach 合法的参数值 : 不同的应用处理器名称, 例如 :at91, mpc8572 etc. 描述 : mach: at91 4.3.4 mem_bank 选项 选项名称 : mem_bank 描述 : 用来描述目标机的地址空间分布, 例如 IO 空间, 内存空间等等 mem_bank 有很多参数用来描述地址空间的属性, 列举如下 : map 参数 参数名称 : map 合法的参数值 :M 代表内存空间,I 代表 IO 空间 描述 : 用来指出一段地址空间的属性 type 参数 参数名称 :type

合法的参数值 :RW, RO 描述 : 选项描述了一段地址空间是可读可写还是只读空间 addr 参数参数名称 :addr 合法的参数值 : 对于目标处理器的合法地址 描述 : 用来指出一段地址空间的起始地址 size 参数参数名称 :size 合法的参数值 : 一段连续地址空间的大小 描述 : mem_bank: map=m, type=rw, addr=0x31000000, size=0x01000000 上面的选项 mem_bank 描述了一段可读可写的地址空间, 类型为内存, 起始地址为 0x31000000, 它的长度为 0x1000000 4.3.5 网络选项 选项名称 :net 描述 : 用来描述目标系统的网卡配置 type 参数参数名称 : type 合法的参数值 :cs8900a, rtl8019 描述 :skyeye 模拟的网卡类型 base 参数参数名称 :base 合法的参数值 : 网卡的 IO 空间的起始地址描述 : 网卡的 IO 空间的起始地址 size 参数参数名称 :size 合法的参数值 : 网卡 IO 空间的长度描述 : 网卡 IO 空间的长度 int 参数参数名称 :int 合法的参数值 : 目标机器分配给网卡的中断号描述 : 目标机器分配给网卡的中断号 一般来说, 我们可以从硬件的原理图及相关文档上获得 mac 参数

参数名称 :mac 合法的参数值 : 网卡的 mac 地址描述 : 网卡的 mac 地址 ethmod 参数参数名称 :ethmod 合法的参数值 : tuntap 描述 : 网卡的连接方式 tuntap 是一种点对点的连接方式 hostip 参数参数名称 : hostip 合法的参数值 : 主机的 ip 地址 the ip address of host machine 描述 : 主机的 ip 地址, 用来和 SkyEye 莫你的目标板进行通讯 对于 tun 模式下的通信, 一般来说要和目标板网卡的 IP 地址在同一网段 4.3.6 lcd 选项 选项名称 : lcd 描述 : 用来描述 skyeye 模拟的 lcd 控制器的选项 type 参数参数名称 : type 合法的参数值 : s3c2410x, ep7312 参数描述 : 支持的 LCD 类型 mod 参数参数名称 : mod 合法的参数值 : gtk 描述 : 用来绘制 LCD 屏幕的底层的 GUI 库 当前我们只使用了 GTK 4.3.7 uart 选项 选项名称 :uart 描述 : 用来描述和配置目标系统的 uart 硬件 mod 参数参数名称 : mod 合法的参数值 : term, stdio, net 描述 : 用来指出当前 uart 仿真使用的底层终端,term 表示另开一个终端窗口做为 uart 的输入和输出,stdio 表示把 uart 的输入和输出混合在 SkyEye 的命令行中,net 表示把 uart 的输入和输出重新定向到某个网络端口中

第五章 在 SkyEye 上运行和调试不同的程序 ( 暂无 )

6.1 代码覆盖率介绍 第六章 代码覆盖率分析 代码覆盖率分析是指统计代码中的执行范围的, 有那些地址的代码执行了, 哪些地址的代码没有执行 从代码测试的角度去分析, 没有被执行到的代码就没有被运行和测试 从一定程度上, 代码覆盖率的分析能够评判代码质量 6.2 配置文件选项 在 SkyEye 中使能代码覆盖率功能, 需要在 skyeye.conf 添加如下一行 : code_coverage:state=on,start=0x1000000, end=0x1400000, filename=./code_cov 其中 :code_coverage 为配置选项名称,state 是配置参数当 state=on, 表示使能代码覆盖率 ;state=off, 表示关闭代码覆盖率功能 start 参数表示开始进行代码覆盖率统计的起始地址 end: 参数代表进行代码覆盖率统计的结束地址 filename 参数是指出代码覆盖率所存放的数据文件名称 6.3 代码覆盖率数据文件代码覆盖率最终生成的数据文件由两部分组成 : 文件头和 Profiling 的数据 其中文件头的定义如下 : /* The header format of code coverage data file */ #define MAX_DESC_STR 32 typedef struct prof_header_s{ /* the version of header file */ int ver; /* The length of header */ int header_length; int prof_start; int prof_end; /* The description info for profiling file */ char desc[max_desc_str]; }prof_header_t; 6.4 利用 SkyEye 进行代码覆盖率统计

第七章 日志使用和解析 ( 暂无 )

第八章 性能分析模块 ( 暂无 )