SkyEye的模块编程示例(一)

本文介绍了一个SkyEye模拟器的扩展模块log-pc,该模块能够记录每次执行的PC指令,包括源代码分析、编译与安装步骤及运行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文介绍了skyeye模块编程的一个示例程序log-pc模块。模块功能主要是用来记录skyeye执行过的所有PC指令。

 

一、源代码分析

1.1 log.c:实现了记录PC的功能,


}

 

1.2 log_module.c:用来实现模块的加载和卸载函数

 

 

1.3 Makefile

 

二、代码编译与安装

2.1 编译模块

创建一个新的目录,并把上面的log.c log_module.c Makefile都放入此目录。

在编译模块之前,先确认skyeye已经安装到系统中,可以查看/opt/skyeye/include/include/中是否有相关头文件存在,如skyeye_types.h, skyeye_arch.h等等。

如果skyeye安装正常,我们可以在你的模块目录下运行"make"来编译模块生成log.so文件。

 

2.2 模块安装

运行"make install"命令,可以把你编译的模块安装到skyeye的相应模块目录,skyeye会在启动的时候记载模块。

 

三、运行测试

进入到/opt/skyeye/testsuite/arm_hello目录下,测试我们的log-pc模块的运行。运行skyeye如下:

ksh@linux-gvai:/opt/skyeye/testsuite/arm_hello> ../../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)

 

然后再运行list-modules可以发现,我们的log-pc模块已经被加载,输出如下:
(skyeye)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
mips                    /opt/skyeye/lib/skyeye/libmips.so
net                     /opt/skyeye/lib/skyeye/libnet.so
code_cov                /opt/skyeye/lib/skyeye/libcodecov.so
sparc                   /opt/skyeye/lib/skyeye/libsparc.so
ppc                     /opt/skyeye/lib/skyeye/libppc.so
touchscreen             /opt/skyeye/lib/skyeye/libts.so
coldfire                /opt/skyeye/lib/skyeye/libcoldfire.so
flash                   /opt/skyeye/lib/skyeye/libflash.so
lcd                     /opt/skyeye/lib/skyeye/liblcd.so
gdbserver               /opt/skyeye/lib/skyeye/libgdbserver.so
(skyeye)

 

然后还可以运行我们在前面log.c文件中注册的命令log-pc,来使能日志功能:

ksh@linux-gvai:/opt/skyeye/testsuite/arm_hello> ../../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)start
arch: arm
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
In do_mach_option, mach info: name at91, mach_init addr 0xb72a0f70

uart_mod:3, desc_in:, desc_out:, converter:
In create_uart_console
cpu info: armv3, arm7tdmi
SKYEYE: use arm7100 mmu ops
In SIM_start, Set PC to the address 0x0

(skyeye)log-pc
(skyeye)

有些基于嵌入式系统的工业仪器或设备需要把工作状态和结果从打印机输出形成报表,达到人机交互的目的。然而嵌入式系统设计输出报表是件非常繁琐的工作,只能不断地调整语句并且测试才能完成,无法做到所见即所得。我们希望有款仿真软件来模拟报表,可以在这款软件的界面上方便地设计、调整报表。当报表设计完成后,这款软件可以直接输出“生成报表”所需要地嵌入式系统的编程语句。嵌入式系统开发者把编程语句直接移植到自己项目中,即可输出报表。 本毕业设计要求,设计款报表仿真软件,具体功能要求为:1、可以设置参数,以适应不同的纸张页面,最大A4纸,分辨率300DPI;2、仿真输出文字、点、先、框、圆、BMP图片,以上元素大小或粗细可调,文字字体以windows常用字体;3、输出用于嵌入式系统的编程语句,文本文件,C语言格式。4、输出仿真报表的黑白图片,BMP、JPG格式;5、输出仿真报表的彩色图片,BMP、JPG格式;6、方便的仿真编辑功能,包括输入文字,载入图片、画线、画点等,可以撤销或重做。7、保存工程。8、重装工程或对输出文件重解析功能。 本毕业设计涉及到的知识内容1、高级语言编程;2、高级语言编程内画图功能;3、文件输出功能。 本毕业设计进行过程中要认真收集和分析已有文献,选择个合理的实现方式;完成设计。
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值