自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

michael_kang的专栏

Skyeye项目的维护者

  • 博客(34)
  • 资源 (2)
  • 收藏
  • 关注

转载 [zz]cpuspec 2006编译和使用方法

为了在模拟器(gem5等)上、arm开发板上运行SPECCPU2006,需要交叉编译之,本文提供交叉编译SPECCPU2006的步骤。1、下载SPECCPU2006.iso(http://www.spec.org/)2、因为下载的是iso格式,需要mount到linux的某个目录下再进行操作。# mount iso9660 path-to-SPECXX.iso  /mnt/

2014-01-18 15:49:23 4027

原创 调试器失效

在一些情况下,我们会发现如果用gdb去调试一个有 bug的程序,这个程序的bug不能复现。其原因之一,是由于加载了调试器,程序运行的地址分配会不同,而导致运行行为不同。

2013-09-12 23:35:09 767

原创 动态分配的栈实现

在我们编程过程中,经常会遇到一些需要临时使用的不确定大小的空间,使用栈分配,会觉得不灵活,因为总需要按照最大的长度去提前分配。而使用malloc分配,显然有些小题大做,我们只是临时使用,很可能马上就要释放。这样我们就希望有一种内存分配,即灵活又高效。-- ksh

2013-09-12 22:48:14 939

原创 系统软件调试的培训大纲

培训大纲,关于如何在Linux下用gdb进行应用程序和系统软件的调试。

2013-09-07 14:01:29 1665

原创 PowerPC的嵌入式Linux培训大纲

基于PowerPC的嵌入式Linux的培训大纲

2013-09-07 13:34:33 1139

原创 Yacc的学习笔记(一)

终结符:从未在产生式左侧出现的符号串,不可再被分解的字符串。产生式的右侧为终结符和非终结符的混合体。%type用于把联合成员和一个非终结符联系在一起,用来指定非终结符的类型。%type expr stat%token用于把联合成员和一个终结符联系在一起,用来指定终结符的类型。参考资料:bison手册, http://www.gnu.org/sof

2012-12-08 12:32:35 1554

原创 ARM的虚拟化原理

<br />1。基本模型,<br />Hypervisor运行在一个新的非安全模式,称为Hyp模式,Hypervisor负责客户操作系统的切换<br />客户操作系统运行在非安全特权和非特权模式。<br /> <br />用于安全扩展的软件不需要任何改变。因为Hypervisor本身没有用到安全模式的任何状态。<br />2、虚拟化的扩展如下:<br />非安全状态下的Hyp模式<br />中断处理<br />内存管理<br />load和store的模拟来提供虚拟外设的处理<br />一些trap用来处理

2011-04-07 15:00:00 5280

原创 qemu翻译过程分析(四)

<br />对于用户态的powerpc模拟,qemu把 powerpc的可执行程序,映射到自己的地址空间,这样内存访问加快了很多,可以直接进行寻址。<br />而不是传统的先malloc一块内存,然后再用分配的内存进行目标机内存的模拟。<br /> <br />带来的另外一个好处就是,qemu不用再检测目标程序的非法的地址访问,只需要初始化信号量的相应处理函数,当目标机的翻译后代码进行访问非法内存地址,主机就会发出相应的信号给qemu,而qemu进行相应的处理。

2011-03-07 09:34:00 1481

原创 qemu翻译过程分析(二)

qemu把翻译过的目标指令集保存在一个类型为TranslationBlock的结构体中,其结构体定义如下:struct TranslationBlock {    target_ulong pc;   /* simulated PC corresponding to this block (EIP + CS base) */    target_ulong cs_base; /* CS base for this block */    uint64_t flags; /* flags defi

2011-03-05 16:47:00 2586 1

翻译 编写LLVM的后端(一)

<br />关于作者:SkyEye项目的维护者,长期从事系统软件的开发和培训工作。<br /> <br />本文档是指如何编写一个可以把LLVM的中间表示转换成一个特定的机器或者其他语言的后端。对于一个特定机器的代码或者是汇编语言或者是二进制代码。<br /><br />llvm后端的是一个和目标相关的代码产生器,可以创建不同类型的目标处理器的输出,如x86, powerpc, alpha, sparc。后端也可以用于产生针对Cell处理器的SPU或者GPU来支持计算内核的执行。<br /><br />

2010-12-26 11:29:00 5614 1

原创 SkyEye的地址映射接口的设计和实现

<br />                 addr_mapping 的使用和测试<br />1、addr_mapping 接口描述<br />Addr_mapping 接口用来申请一段地址空间,并来控制这段地址空间的访问。其原型定义在<br />头文件[common/include/bank_defs.h:71]如下:<br />   exception_t addr_mapping(mem_bank_t* bank);<br />参数 bank,是客户需要分配和填充的一个数据接口,

2010-11-16 10:51:00 1003

原创 LLVM学习笔记-代码实例HowToUseJIT 分析(一)

llvm

2010-10-30 21:17:00 4572 1

原创 SystemC和Skyeye的集成

<br />一、systemC介绍<br /> <br />二、集成的步骤<br /> <br />1. 编译 systemc<br />下载systemc-2.2.0,解压缩,并配置编译<br />./configure --prefix=/home/ksh/systemc_install/ ;make              <br /> <br />2. TLM-2009-07-15<br />下载TLM,并解压缩<br /> <br /> <br />3. 下载SkyEye软件包编译并安装。<br

2010-09-05 09:32:00 1414

原创 __STDC_LIMIT_MACROS 和 __STDC_CONSTANT_MACROS

<br />Question:<br />I see this in the standard C++ libraries for my system, as well as some of the headers in a library I'm using.<br />What are the semantics of these two definitions? Is there a good reference for #defines like this other than <br />the

2010-07-20 11:32:00 2307

原创 课堂笔记:LRU的改进算法LIRS

一个印度人的ARC还有LIRSLRU的缺点是不能对weak locality的数据进行缓存1. 如果stack size有1000个块,而一个文件是1001个块的大小,而且每次访问都是从头到尾的访问。则LRU的性能非常差,几乎没有任何缓存。2. 假设我们要邀请学习好的同学到一个容纳10人的会议室开会。我们并不是邀请90分以上或者80分以上的人,而是邀请成绩前在10名的同学到会议室。这里会议室为我们的stack ,这样我们的会议室也就是stack至少不会浪费。LIRS的基本思想是对访问的数据块进行分类,一部分

2010-06-22 15:55:00 4451

原创 git学习笔记(一):创建和管理远程分支

由于SkyEye的开发已经采用了git来管理代码仓库,所以现在需要学习很多git的使用。已经在 sourceforge上创建好了仓库,紧接着就需要创建不同的远程分支,提供给大家下载使用了。1. 创建分支命令选项:git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pac

2010-04-24 12:58:00 4289

原创 MPC8641d内存映射阅读笔记

本地地址映射(local address map)由10个本地访问窗口来定义( local access window, LAW)。每一个窗口都可以把一段本地地址空间映射到特定的目标接口中,这些目标接口包括,DDR控制器,本地总线控制器,Serial RapidIO 控制器,PCIE控制器等等。如果这个目标映射会被本地访问窗口把事务定向到外部的接口。那这个事务会被和这个外部接口相关连的ATMU

2010-04-03 15:07:00 2739 1

原创 sourceforge上创建新的仓库

步骤如下,摘自sourceforge的帮助文档,但是要注意的一点是,在创建本地仓库之后,需要做一次提交,才能执行其他的步骤。原因大概是因为没有做commit的话,本地仓库没有master这个分支。How to push a local repository Before you push your files, you need a local Git repo

2010-01-23 17:07:00 1061

原创 OXFORD多串口卡的乱码问题解决过程和思路

一个朋友的朋友做了基于OXFORD的PCI多串口卡做了一款工控产品,遇到了一些问题,请我帮忙。问题描述为:在工控机器上运行Windows通信正常,但是运行Linux使用多串口卡的串口和外部主机通信有乱码出现,工控机上的操作系统是Debian 5.0,硬件是普通的x86机器。我首先怀疑是波特率的问题,于是和他们的硬件工程师交流了一下,他们工程师说用示波仪测试过波特率没有问题。然后我自己用不同

2009-11-19 15:28:00 17680

原创 SkyEye的Windows本地编译的过程(1)

前言一直想做一个Windows本地的SkyEye可执行程序,来为广大的Windows用户提供更好的用户体验。根据以前的一些知识和在互联网上的搜索,选择了MingW做为SkyEye在Windows下的编译环境。要解决的问题有动态连接库的格式问题,多线程访问的问题。 为了解决动态连接库的问题,我们采用了libltdl做为不同动态库下的封装。多线程访问则选择了Windows下的pth

2009-11-19 15:23:00 1500

原创 SkyEye的模块编程示例(一)

本文介绍了skyeye模块编程的一个示例程序log-pc模块。模块功能主要是用来记录skyeye执行过的所有PC指令。 一、源代码分析1.1 log.c:实现了记录PC的功能,#include #include #include "skyeye_arch.h"#include "skyeye_callback.h"/* flag to enable log func

2009-08-03 15:08:00 1421

原创 如何获得交叉编译器。

对于嵌入式开发,选择一个可靠的编译器很重要。目前对于嵌入式linux开发,我们得到交叉编译器有两种途径,一种是自己制作。另外一种是下载。1、下载交叉编译器 目前下载交叉编译器,有很多人是从google搜索引擎中随便搜索到某些网站的编译器,然后就下载,使用,这种方法并不推荐。因为嵌入式Linux的开发往往比较复杂,我们必须要有一个可靠的开发工具,这样的话来避免一些有可能来自编译器的b

2009-07-22 15:39:00 1995

原创 从源码编译skyeye的mmi_branch

在skyeye的mmi_branch的这个源码树中,由于加了libtool的支持,和一些autoconf的特性,在很多平台的编译mmi_branch上都会有问题。 经过一番探索,总结出了以下的经验:1、使用aclocal, autoconf, automake生成一些自动生成的文件,目前还只能是在我自己的这个编译平台去运行生成。如果运行了这些命令在其他系统的平台上,有可能编译会出错。

2009-07-17 12:37:00 736

原创 SkyEye日志系统的功能考虑

在SkyEye虚拟开发平台上,一个强大的日志系统是调试过程中必不可少的调试手段之一,单步跟踪调试很难直观的反应一个大范围的系统状态变化,而且也不能有效过滤的一些无用信息。而且对于跟踪一个连续的系统状态变化,单步跟踪效率比较低。我对日志系统的功能初步考虑如下: 1、触发条件,就是什么时候开始进行日志记录。目前想到的有两种* PC触发:即当程序的PC等于某一预设定值的时候,开始记录

2009-06-29 09:34:00 847

原创 MPC8572地址空间解读

 本文中的内容主要是根据MPC8572ERM.pdf手册第2章Memory Map的内容进行了分析和解读。阅读下面的内容的同时,请参考这本手册。 MPC8572提供了灵活的地址空间分配,它定义了12个本地访问窗口(LAW, Local Access Window),我们可以认为LAW是一个基址可变,长度可变的地址范围,所以用英文比较形象的形容为window。这十二个LAW可以灵活的被分

2009-06-06 10:04:00 2352 2

原创 SkyEye-1.2.9开发计划

SkyEye-1.2.8版本,应该说有三个个比较大的改进:1、fix了多个在内存模块中的bug2、首次添加了多核的处理器模拟, mpc85723、添加了sparc的模拟 基于1.2.8,我计划在skyeye-1.2.9的版本中添加如下特性:1、添加XLR408的模拟,这是一个RMI公司的双核八线程的处理器。希望通过XLR408的模拟能够把skyeye中的 MIPS模拟进一步

2009-05-02 11:18:00 971

原创 SkyEye-1.2.8_rc1发布了

skyeye-1.2.8_rc1 版本在 skyeye-1.2.7的基础上,解决了几个重要的bug和增加了一些新的平台支持,细节如下:新的特性有:1、增加了mpc8572平台的支持。mpc8572是一款powerpc双核的处理器,当前mpc8572的linux的板级支持包可以运行在skyeye-1.2.8_rc1的powerpc平台上。你可以在skyeye-testsuite-1.2.

2009-05-02 10:41:00 932

原创 The whole procedure of build eCos

 Get eCos 2.0 source from http://ecos.sourceware.org . Run ecos-install.tcl to download eCos source and its toolchain.  Then set directory of execute program.export PATH=/home/ksh/ecos

2007-08-25 18:08:00 775

原创 Several workaround in mips simulation of SkyEye

 Until 2007.8.9 , there is three workaround that need to do in kernel source for SkyEye. 1. define endian macro in include/asm-mips/inst.h to select proper union declearation. That will be emp

2007-08-09 12:47:00 768

原创 MIPS assemble instruction analysis in check_poison_obj

 The C code in kernel as the following: for (i = 0; i 1792 char exp = POISON_FREE;1793 if (i == size - 1)1794 exp = POISON_E

2007-08-08 12:17:00 1078

原创 Three case of kernel loading in SkyEye

  1. NOMMU, The physical address in the ELF image symbol is just address for loading and executing. 2. MMU ,but not enable at the beginning, The address of symbol is virtual address, but the r

2007-07-24 15:19:00 884

原创 E500的异常和中断分析(1)

关键字:E500 精确异常 同步异常 异步异常  E500的异常可以分为三种:异步,同步精确和同步非精确。 异步异常:被认为是一种和指令执行无关的异常,常见的异常类型为外部中断 同步精确异常:直接由指令执行而导致的异常为同步异常,这种异常处理可以是精确的(precise)也可以是不精确的(imprecise)。精确异常,记录的是发生异常的这条指令。简单的说就

2007-07-04 11:31:00 1819

原创 E500的内存管理分析

关键字:TLB e500 e500的内存管理由两级TLB实现。我们把一级的TLB简称为L1,把二级的TLB简称为L2。其中L1对系统程序员不可见,L1的刷新和维护都由CPU的内部硬件逻辑实现。L1的刷新数据来自于L2,程序员可以通过编程来改变L2中的内容,从而也可以间接的改变L1中的内容。下面我们主要讨论L2的逻辑L2由两个TLB数组组成,这两个TLB数组是统一的TLB,也

2007-06-17 17:34:00 2162 1

原创 MPC85XX平台的u-boot分析

 作者:michael.kang(blackfin.kang@gmail.com)关键字:MPC8650 TLB CPM u-boot skyeye简介 本文介绍了u-boot在MPC8560平台上的代码实现,并结合MPC8560平台的特性,对u-boot的对MPC8560处理器的启动代码进行了分析。最后我们还介绍了在SkyEye上运行MPC8560的u-boot镜像。

2007-05-02 17:47:00 4144

powerpc培训资料(2)-PowerPC体系结构

PowerPC体系结构的简单介绍, 寄存器和相应的中断等

2014-04-27

powerpc培训资料1-起源和现状

powerpc课程培训资料一, powerpc的起源和现状

2014-04-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除