Linux下memory和IO的读写工具

对于任何软件开发来说,找对工具是往往是成功的一半。正所谓“工欲善其事必先利其器”啊!尤其是BIOS这种底层的软件工程师,工具往往能让debug起到事半功倍的效果。一般情况,BIOS的debug过程大多数选择在dos下完成,dos下的工具往往也很多:ADU.exe / ru.exe /io5.exe等。

但是很多底层问题不仅仅体现在开机的时候,很多时候会在OS下出现莫名其妙的bug,DOS下的工具也排不上用场。在Windows下有现成的工具RW,但是在Linux下确难以找到类似的工具来协助工程师debug。

后来在解完一个在Linux下的bug之后,痛定思痛,抽时间完成了一个Linux下的读写IO和memory的工具---Abu。

csdn网站资源地址为:http://download.csdn.net/detail/pankul/5076277

也可以去biosren网站找到:http://www.biosren.com/thread-2864-1-1.html 


版本:  V0.10

支持系统:Linux(Kernel>=2.6.x)

主要功能:实现Linux下读写memory,IO读写,CPUID读取,Pci寄存器读写等。

使用方法: (请使用root权限)

终端 :   # "dir"/abu

注:

1、支持终端模式:25x80.

2、被当前系统占用的物理内存部分不允许读写,Read返回值“FF”

3,Linux下一切修改动作请慎重,对系统产生任何不良影响,后果自负!

4,Abu的使用需要当前系统安装lib-ncurses. 可以通过如下命令查看 rpm -qa|grep ncurses.如果没有,请安装该libary。

例如redhat6.1上安装ncurses-libs-5.7-3.20090208.el6.i686.rpm

在Ubuntu下使用如下方式安装:sudo apt-get install libncurses5-dev libncursesw5-dev 即可。


关于程序的源码,这里不便提供,基本上只要突破IO的读写权限问题和使用memory映射方式即可实现所有功能。对于底层工程师来说,实现这些底层的IO读写并不是很麻烦的事情,反到是界面的实现稍显麻烦。

该程序通过调用现成的图形库的ncurse库来实现界面的。ncurse是Linux下比较成熟的图形库,可以找到很多优秀的范例和编程手册,这里就不再做非专业的累述。编译的时候记得要加载ncurse库。 这里只贴出一个简单的例程参考。

/*--------------------------------------------------------------
     A simple curses color demo program
     Coder:  jellen
     Date:   3-26-2004
-------------------------------------------------------------*/
#include <curses.h>
int main()
{
 initscr();  /*初始化屏幕*/
 if(start_color() == OK)  /*开启颜色*/
 {
  init_pair(1, COLOR_RED, COLOR_GREEN);  /*建立一个颜色对*/
  attron(COLOR_PAIR(1));                /*开启字符输出颜色*/
  move(LINES/2, COLS/2);
  waddstr(stdscr, "Yet another Hello, world!");
  attroff(COLOR_PAIR(1));                 /*关闭颜色显示*/
  refresh();
 }
 else
 {
  waddstr(stdscr, "Can not init color");
  refresh();
 }
 endwin();            /*关闭curses状态*/
 return 0;
}

这个程序假如保存为demo.c
那么你可以这样编译了: gcc -o demo demo.c -lcurses

比如我编译调试工具abu为:  gcc -o abu abu.c -lcurses。

关于abu的使用。abu目前的版本只有五个菜单,使用起来很简单,如下图。


功能包括memory、IO 读写、PCI scan、Smbus 读写、cpuID等。


如果要调试memory部分,选中memory部分回车即可,如下图。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值