michael_kang
码龄18年
关注
提问 私信
  • 博客:99,761
    99,761
    总访问量
  • 32
    原创
  • 1,650,355
    排名
  • 33
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2007-05-02
博客简介:

michael_kang的专栏

博客描述:
Skyeye项目的维护者
查看详细资料
个人成就
  • 获得3次点赞
  • 内容获得7次评论
  • 获得30次收藏
创作历程
  • 1篇
    2014年
  • 4篇
    2013年
  • 1篇
    2012年
  • 3篇
    2011年
  • 9篇
    2010年
  • 9篇
    2009年
  • 7篇
    2007年
TA的专栏
  • Eurosys
  • MICRO阅读笔记
  • ARM架构及Linux中BSP分析
  • llvm使用和源代码分析
  • MIPS架构及其BSP分析
    1篇
  • PowerPC架构分析
    3篇
  • RTEMS代码分析
  • Simics的使用,扩展和编程
  • SkyEye使用示例
    2篇
  • SkyEye开发过程
    10篇
  • SPARC架构和Solaris代码分析
  • x86体系结构及其BSP
  • 动态编译技术及LLVM
  • 培训大纲
    2篇
  • 多核及虚拟化
  • 开源软件实践和探索
    5篇
  • 自动调试技术(automatic debugging)
  • 开源软件工程思考
    2篇
  • OSDI文章阅读笔记
  • CGO文章阅读笔记
  • 技术之天马行空
    1篇
  • SOSP文章阅读笔记
  • Paper reading list
创作活动更多

2024 博客之星年度评选报名已开启

博主的专属年度盛宴,一年仅有一次!MAC mini、大疆无人机、华为手表等精美奖品等你来拿!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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

发布资源 2014.04.27 ·
pdf

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

发布资源 2014.04.27 ·
pdf

[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 ·
4353 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

调试器失效

在一些情况下,我们会发现如果用gdb去调试一个有 bug的程序,这个程序的bug不能复现。其原因之一,是由于加载了调试器,程序运行的地址分配会不同,而导致运行行为不同。
原创
发布博客 2013.09.12 ·
796 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态分配的栈实现

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

系统软件调试的培训大纲

培训大纲,关于如何在Linux下用gdb进行应用程序和系统软件的调试。
原创
发布博客 2013.09.07 ·
1716 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

PowerPC的嵌入式Linux培训大纲

基于PowerPC的嵌入式Linux的培训大纲
原创
发布博客 2013.09.07 ·
1187 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Yacc的学习笔记(一)

终结符:从未在产生式左侧出现的符号串,不可再被分解的字符串。产生式的右侧为终结符和非终结符的混合体。%type用于把联合成员和一个非终结符联系在一起,用来指定非终结符的类型。%type expr stat%token用于把联合成员和一个终结符联系在一起,用来指定终结符的类型。参考资料:bison手册, http://www.gnu.org/sof
原创
发布博客 2012.12.08 ·
1618 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ARM的虚拟化原理


1。基本模型,
Hypervisor运行在一个新的非安全模式,称为Hyp模式,Hypervisor负责客户操作系统的切换
客户操作系统运行在非安全特权和非特权模式。
 
用于安全扩展的软件不需要任何改变。因为Hypervisor本身没有用到安全模式的任何状态。
2、虚拟化的扩展如下:
非安全状态下的Hyp模式
中断处理
内存管理
load和store的模拟来提供虚拟外设的处理
一些trap用来处理
原创
发布博客 2011.04.07 ·
5396 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏

qemu翻译过程分析(四)


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

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 ·
2676 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

编写LLVM的后端(一)


关于作者:SkyEye项目的维护者,长期从事系统软件的开发和培训工作。
 
本文档是指如何编写一个可以把LLVM的中间表示转换成一个特定的机器或者其他语言的后端。对于一个特定机器的代码或者是汇编语言或者是二进制代码。

llvm后端的是一个和目标相关的代码产生器,可以创建不同类型的目标处理器的输出,如x86, powerpc, alpha, sparc。后端也可以用于产生针对Cell处理器的SPU或者GPU来支持计算内核的执行。

翻译
发布博客 2010.12.26 ·
5689 阅读 ·
0 点赞 ·
1 评论 ·
4 收藏

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


                 addr_mapping 的使用和测试
1、addr_mapping 接口描述
Addr_mapping 接口用来申请一段地址空间,并来控制这段地址空间的访问。其原型定义在
头文件[common/include/bank_defs.h:71]如下:
   exception_t addr_mapping(mem_bank_t* bank);
参数 bank,是客户需要分配和填充的一个数据接口,
原创
发布博客 2010.11.16 ·
1020 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

llvm
原创
发布博客 2010.10.30 ·
4665 阅读 ·
1 点赞 ·
1 评论 ·
2 收藏

SystemC和Skyeye的集成


一、systemC介绍
 
二、集成的步骤
 
1. 编译 systemc
下载systemc-2.2.0,解压缩,并配置编译
./configure --prefix=/home/ksh/systemc_install/ ;make              
 
2. TLM-2009-07-15
下载TLM,并解压缩
 
 
3. 下载SkyEye软件包编译并安装。
原创
发布博客 2010.09.05 ·
1464 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

__STDC_LIMIT_MACROS 和 __STDC_CONSTANT_MACROS


Question:
I see this in the standard C++ libraries for my system, as well as some of the headers in a library I'm using.
What are the semantics of these two definitions? Is there a good reference for #defines like this other than
the
原创
发布博客 2010.07.20 ·
2342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

MPC8641d内存映射阅读笔记

本地地址映射(local address map)由10个本地访问窗口来定义( local access window, LAW)。每一个窗口都可以把一段本地地址空间映射到特定的目标接口中,这些目标接口包括,DDR控制器,本地总线控制器,Serial RapidIO 控制器,PCIE控制器等等。如果这个目标映射会被本地访问窗口把事务定向到外部的接口。那这个事务会被和这个外部接口相关连的ATMU
原创
发布博客 2010.04.03 ·
2808 阅读 ·
1 点赞 ·
1 评论 ·
6 收藏

sourceforge上创建新的仓库

步骤如下,摘自sourceforge的帮助文档,但是要注意的一点是,在创建本地仓库之后,需要做一次提交,才能执行其他的步骤。原因大概是因为没有做commit的话,本地仓库没有master这个分支。How to push a local repository Before you push your files, you need a local Git repo
原创
发布博客 2010.01.23 ·
1086 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多