自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (5)
  • 收藏
  • 关注

原创 如何在github中贡献自己的力量

介绍参与github的方法及建议

2013-09-10 16:59:31 33773 2

翻译 【How to read a paper】如何读论文

摘要:科研人员花费大量时间阅读科研论文。然而,我们几乎没学过读论文的方法,这会浪费我们大部分的辛勤劳动。这篇文章概括了一个实际而有效的读科研论文的“三步法”。我也讲述如何用这种方法完成文献调研工作。

2013-09-06 23:01:21 26167 1

转载 妈咪,我找到了!15实用的Linux find命令示例

除了在一个目录结构下查找文件这种基本的操作,你还可以用find命令实现一些实用的操作,使你的命令行之旅更加简易。本文将介绍15种无论是于新手还是老鸟都非常有用的Linux find命令。首先,在你的home目录下面创建下面的空文件,来测试下面的find命令示例。 # vim create_sample_files.shtouch MybashProgram.shtouch

2013-09-27 09:14:01 2096

原创 armv8(aarch64)linux内核中flush_dcache_all函数详细分析

/* *  __flush_dcache_all()*  Flush the wholeD-cache. * Corrupted registers: x0-x7, x9-x11 */ENTRY(__flush_dcache_all)//保证之前的访存指令的顺序    dsb sy                   //读cache level id regi

2013-09-26 17:49:36 10050 2

转载 C语言运算符优先级记录-为了自己查找方便

优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右 ()圆括号(表达式)/函数名(形参表) .

2013-09-16 22:44:34 1229

转载 谈谈离职和跳槽

谈离职和跳槽这篇文章是我在部门会议上一次发言的总结。之所以会有这次会议,是因为我的一名员工向我提出了辞职,在思索了几天后,我整理了一下自己的思路,于是便有了这次的会议和现在的这篇文章。收入是由什么决定的?这位员工辞职的原因主要有两个:1.公司的薪水无法达到他的预期,未来一年在公司的收入前景也不是很明确。2.想要去做更底层的开发,方向是使用C/C++开发3D图

2013-09-16 09:22:16 2563 1

转载 LeetCode Question Difficulty Distribution : Sheet1

LeetCode Question Difficulty Distribution : Sheet1       IDQuestionDiffFreqData StructureAlgorithms   

2013-09-11 09:44:39 2569

原创 ARMv8 Linux内核异常处理过程分析

看了Linaro提供的开源ARMv8 Linux内核源码,发现ARMv8异常处理与ARMv7及之前的架构有所不同,简单分析。LinaroARMv8工程:http://www.linaro.org/engineering/engineering-projects/armv81.1 Linux内核异常处理相关文件Linux内核中,异常处理主要由两个文件完成,entry.S和traps.c,

2013-09-08 10:50:40 37645 1

原创 【linux内核剖析笔记】linux支持的终端设备类型及终端、控制台、串口、UART、RS232、RS485的联系和区别

1.1 Linux支持的终端设备类型可以大致分为5种:串行端口终端、伪终端、控制终端、控制台、其他类型,如下图所示;1.1.1 串行端口终端(/dev/ttySn)顾名思义,串行端口终端指的是终端,终端是什么?是具体的设备!所以串行端口终端指的是使用计算机串行端口连接的终端设备,这些串行端口对应的设备文件名在Linux /dev/目录下是ttyS0 ttyS1.1.

2013-09-05 22:07:33 4188

原创 ARMv8 Linux内核head.S源码分析

ARMv8 Linue 内核Head.S主要工作内容:1、 从el2特权级退回到el12、 确认处理器类型3、 计算内核镜像的起始物理地址及物理地址与虚拟地址之间的偏移4、 验证设备树的地址是否有效5、 创建页表,用于启动内核6、 设置CPU(cpu_setup),用于使能MMU7、 使能MMU8、 交换数据段9、 跳转到start_kernel函数继续运行。   /*

2013-09-03 11:55:11 9419

转载 Python正则表达式中文手册

Python正则表达式操作指南原文出处:http://www.amk.ca/python/howto/regex/原文作者:A.M. Kuchling (amk@amk.ca)授权许可:创作共用协议翻译人员:FireHare校对人员:Leal适用版本:Python 1.5 及后续版本摘要本文是通过Python的 re 模块来使用正则表达式的一个入门教程,和库参考手...

2013-09-02 20:25:33 3701 2

翻译 为什么C语言在2013年仍然很重要:一个简单的例子

本文作者在开发Dynym项目,这是一个动态语言的通用运行时。在开发时,作者以其他语言的运行速度作为基础比较语言的运行速度,因此发现了一些小秘密。迭代计算斐波那契数列是测试各种语言执行速度的常见方法。作者以不同的语言进行测试,最终发现C语言要比Python编写的计算斐波那契数列快278.5倍。在底层开发,以及专注性能的应用程序中,选择是显而易见的。而为什么会有如此大的运行性能差距呢。作者进一步研究了程序的反汇编代码,发现差别出在内存的访问次数,以及预测的CPU指令的正确性方面

2013-09-01 13:08:24 2444

关于内核动态补丁技术(kpatch)

内核可以在运行时动态执行补丁中的代码(kpatch),而不需要重启后再运行补丁代码。对于kpatch的运行原理,可以参看[3], kpatch基于ftrace技术,可以在内核运行时动态的(即不需要重启)、整体替换某个函数(但需要暂时停止所有运行时进程)。如图1所示,具体的,当内核运行之前,加入原来的内核函数名字为func_original(),则内核编译时就先把patch做好(假设替换函数为func_replace()),同时编译进内核中。本文主要解释从gnu汇编原语角度如何实现kpatch,具体kpatch机制可以参考文献[3]。内核文件arch/arm64/include/asm/alternative.h中有一段汇编,涉及内核动态patch技术。

2018-11-19

SPEC 2017 int rate command lines

SPECCPU 2017 整型测试程序的命令行,从代码中抠出,用于单独运行benchmark进行实验

2018-06-01

Event in gem5

gem5底层如何实现模拟处理器并行执行的?如何实现准确计算cycle数?

2017-01-21

ARMv8 Linux内核异常处理分析

看了 Linaro 提供的开源 ARMv8 Linux 内核源码,发现 ARMv8 异常处理与 ARMv7 及之前的架构有所不同,详细分析之

2014-05-30

ARM上电启动及Uboot代码分析

网上关于ARM的bootloader(以Uboot为例)的启动顺序的资料有好多,但是对于Uboot的地址映射、体系结构级操作介绍很少,都是直接开始Start.s代码的阅读。本文拟详细分析Uboot从上电,到第一条指令的执行,同时分析代码对于cache、TLB等部件的操作过程。 以下内容以u-boot-2012.04.01源码为例,从网上很容易下载该版本。

2014-05-30

空空如也

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

TA关注的人

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