自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行善之人必有余庆

If you want it ,do for it.

  • 博客(29)
  • 资源 (20)
  • 收藏
  • 关注

转载 解释Linux内核源码中的container_of宏及其标准C版本实现

在Linux内核源码文件 include/linux/kernel.h中,定义了container_of宏,源码如下:/** * container_of - cast a member of a structure out to the containing structure * @ptr: the pointer to the member. * @type:

2017-07-31 14:48:13 401

转载 Linux内核中container_of函数详解

在Linux 内核中,container_of 函数使用非常广,例如 Linux内核链表 list_head、工作队列work_struct中。在Linux 内核中有一个大名鼎鼎的宏container_of(),这个宏是用来干嘛的呢?我们先来看看它在内核中是怎样定义的。

2017-07-31 14:46:44 639

原创 vxWorks设置tlb表项

平台说明:vxWorks6.8环境,loongson3a-4核cpu(mips架构)首先说一下我对tlb的理解:tlb就是按照一定的结构(具体的存储的时的结构是什么样子,跟使用的具体平台相关,不同平台的方式可能就不太一样)存储虚拟地址到物理地址的转换的一段存储空间,这段空间设计在cpu里,并且通过cpu中cp0辅助寄存器来进行读写,其中有一点比较特殊的是当cpu选择地址时,对tlb中的内容

2017-07-31 10:29:47 918

原创 一个platform总线型的i2c设备的注册

一首先在板级目录下 arch/mips/platform 定义设备信息static struct resource ls2h_i2c0_resources[] = { [0] = { .start = LS2H_I2C0_REG_BASE, .end = LS2H_I2C0_REG_BASE + 0x8, .flags = IORESOURCE_MEM, },

2017-07-31 07:50:57 567

原创 分析网卡通过i2c总线从e2prom中读取mac地址过程

平台:loongson3A系列CPU+loongson2H桥片的开发板.每个网卡都有一个独一无二的mac地址,一般这个地址就存放在一个e2prom中,这里就是分析一个网卡初始化过程中,怎么从这个e2prom中读取mac地址。首先这里的e2prom和cpu的i2c控制器相连接,也就是说最后访问这个设备时,使用的是i2c总线的驱动。i2c总线的时序这里就不介绍了,大家可以看一个i2

2017-07-25 19:38:06 1406

转载 i2c设置地址计算

I2C总线设备地址:设备地址标识外设在总线上的唯一性,每一个外设都有唯一的设备地址,设备地址由原理图和芯片手册共同定义!CPU通过设备地址来访问到I2C总线上的某个外设!类似"学生的学号"例如:以AT24C02存储器为例:通过查阅芯片手册发现设备地址=01010A2A1A0(去掉R/W位,高位补0),硬件将A2A1A0都接地=》设备地址=01010000=0x50再

2017-07-25 17:52:26 2859 1

原创 修改linux输入命令颜色

要修改后面输入命令的颜色,也就是修改提示符颜色就可以了,这个设置就会影响到输入命令的颜色。最后也就是设置PS1环境变量的内容, 把输入命令设置为白色方法:export PS1='[\[\e[32;1m\](\#) \[\e[34;1m\]\u@\[\e[33;1m\]\h\[\e[31;1m\]\w]\[\e[30;1m\]\[\e[37;1m\]\$'生效的也就是最后那个:

2017-07-25 15:37:18 798

原创 修改linux文件夹颜色

这个配置文件在/etc/DIR_COLORS,在这里修改也可以,之后运行 eval `dircolors /etc/DIR_COLORS`  这里的`符号时那个~键,别输错了。为了生成自己独特的颜色,可以把这个文件拷贝到自己的家目录下 cp /etc/DIR_COLORS ~/.dir_colors这样每次向修改什么,就直接修改.dir_colors文件就可以了。修改目

2017-07-25 15:27:43 732

原创 vim操作-在查找模式中使用寄存器内容

首先可视模式操作有三种1,v        字符可视模式2,V        行可视模式3,ctrl+v    列操作可视模式当要查找一段话或字符串z或和字符时,首先按v键进入字符可视模式,这时可以选择要查找的一段字符串,之后按ayy或者yy也可以,这就把可视模式选中的内容复制到了寄存器0中。在查找模式时这样使用:/(ctrl+r)0 解释一下:这里

2017-07-25 14:38:18 1072

原创 vim和shell交互两种方式

1,在vim的命令行下输入:shell这是就可以进入shell下,执行其他的命令,最后exit退出就可以了2,在使用vim编辑文件时,按下ctrl+z键,就可以把vim放到后台运行,之后跳转到shell执行其他任务,按下fg就可以把vim再从后台拿过来接着执行。

2017-07-25 07:32:23 4526

原创 vim列操作-删除操作

1,ctrl+v  进入列操作模式2,按j选取多行要删除的字符选中要删除字符:3,按下delete键就删除了,并退回到普通模式下

2017-07-25 07:29:04 879

原创 vim列操作-替换

1,ctrl+v 进入列操作模式2,按j可以选择多行(j跳转到下一行)3,选中要替换的字符,之后按下c键,之后输入要替换的字符此时是选中要替换的字符:按下c键之后输入要写入的字符:4,按下esc键,退回到普通模式,替换的字符就会显示出来当按下esc键之后,输入的字符替换到被选中行。

2017-07-25 07:22:31 8809

原创 vim列操作-插入

操作步骤:1,ctrl+v 进入列操作模式2,按j键选取到下一行3,按I(大写的)键进行插入操作,此时在插入模式下4,按esc键,这就显示出了在所有行插入的字符(此时就退回到普通模式了)

2017-07-25 07:12:13 10716

原创 linux脚本实现ssh自动登陆远程桌面

#!/usr/bin/expect set timeout 3#设置超时时间,当超时后还没有获取到期待的命令,expect为flase,脚本继续向下执行spawn ssh wangkai@10.2.5.25#fork一个子进程取执行ssh登陆任务expect "*password*"#截取一个关键字符send "wangkai\r"#发送一个string,\r标识回车intera

2017-07-18 15:10:50 558

原创 linux011中调度算法

/*调度函数*/void schedule(void){ int i,next,c; struct task_struct ** p;/* check alarm, wake up any interruptible tasks that have got a signal *//* *这里检查每个任务的alarm值,如果已经过期,就设置SIGALRM信号,并设置alarm为0.唤

2017-07-14 15:11:38 289

原创 hash算法

1,hash算法的原理        hash算法把每一符号进行一定的算数得到一个hash值,然后根据符号表的入口数量,得到一个离这个数量最近的一个素数(nbucket),以这个素数为长度,组成一个数组(bucket[nbucket])。        查找时每个符号的hash值,对nbucket取余,得到n(n=hash%nbucket),这个n对应于这个hash在bucket数

2017-07-11 07:00:24 353

原创 linux-011文件系统超级块的操作函数(挂载卸载系统)解析

#define set_bit(bitnr,addr)({\register int _res __asm__("ax");\__asm__("bt %2 %3;setb %%al":"=a"(__res):"a"(0),\ "r"(bitnr),"m"(*(addr)));\ __res; \})/*超级块表*/struct super_block super_block[NR_

2017-07-11 00:17:19 815

原创 shellScript之while语句

#!/bin/bashint=1 #注意这里定义变量时,等号两边不能有空格while(( "$int" <= 5))do echo "$int" let "int++"done结果:~/Note/test # ./11_while1.sh 12345

2017-07-10 21:42:20 626

原创 linux-011中位图操作函数(申请释放节点,申请释放block)解析

/*把addr开始一块block地址清0*/#define clear_block(addr) \__asm__("cld\n\t" \ "rep\n\t" \ "stosl" \ ::"a" (0),"c" (BLOCK_SIZE/4),"D" ((long) (addr)):"cx","di")/*把addr中偏移为nr的位置1*/#define set_bit(nr,addr

2017-07-10 18:08:39 581

原创 linux-011文件系统节点操作函数解析

struct m_inode inode_table[NR_INODE]={{0,},};static void read_inode(struct m_inode * inode);static void write_inode(struct m_inode * inode);/*参考sleep_on函数,另一篇文中有说*/static inline void wait_on_ino

2017-07-10 18:04:53 445

原创 linux011文件系统中缓冲区管理函数分析

extern int end;struct buffer_head * start_buffer = (struct buffer_head *) &end;struct buffer_head * hash_table[NR_HASH];static struct buffer_head * free_list;static struct task_struct * buffer_wai

2017-07-10 16:20:00 434

原创 linux011文件系统中按照名字查找节点的算法分析

/* #define NO_TRUNCATE */#define MAY_EXEC 1#define MAY_WRITE 2#define MAY_READ 4static int permission(struct m_inode * inode,int mask){ int mode = inode->i_mode;/*i节点有设备号,但是链接数为0,说明是空的,为已经删除

2017-07-10 14:52:09 544

原创 git创建一个新库之后查看分支,创建本地以及远程库分支操作

按照前文在linux主机上创建了一个git库后,可以拉代本地,并且可以上传,接下来记录一些其他操作。(这创建好后的库)1,查看本地分[(99) guest@Fedora~/test/tmp]$git branch * master其中只有一个分支为master分支。前面的*号表示正在这个分支上2,查看远程分支[(100) guest@Fedora~/te

2017-07-07 14:45:53 972

原创 git push时出错

对象计数中: 3, 完成.写入对象中: 100% (3/3), 203 bytes | 0 bytes/s, 完成.Total 3 (delta 0), reused 0 (delta 0)remote: error: insufficient permission for adding an object to repository database objectsremote: fat

2017-07-07 11:32:56 959

转载 linux下搭建简单的git服务器

这两天沉迷PHP web服务器开发不能自拔,但是php和html、js之类的程序要写一点看一点效果,我是放到Linux云主机上测试的,所以要在xshell上写代码,很麻烦。于是想自己在云主机上搭建一个Git远程仓库,这样我在windows端写代码,写好push一下就能在linux端同步更新,后来我发现我太天真了,因为linux端的git仓库不具备读写能力,里面的文件格式和我们上传上去的不一样,

2017-07-07 11:08:38 290

原创 分析linux011版本中inode节点使用直接块,间接块所能表示的一个文件的大小

inode节点的映射图如下:计算过程:计算一个节点使用直接,一次间接块,二次间接块能表示的文件的大小:前提:每块大小1024字节,每个块号使用32位(4字节)1,直接快:使用直接块时,一个块号表示一个块,也就是1K字节2,一个一次间接块:一个间接块大小为1024,其能记录的块的数量为1024/4(32位)=256,也就是说一个间接块可以记录256个块的地址,也就

2017-07-07 09:43:21 2931

原创 linux-011上文件系统中超级块和inode的使用分析

总的访问线路:超级块inode在磁盘上的分布:超级块结构如下/*磁盘中存储结构*/struct d_super_block { unsigned short s_ninodes; //节点(inode)总数 unsigned short s_nzones; //逻辑块(block)总数 unsigned short s_imap_

2017-07-06 15:07:43 1593

原创 linux-011中休眠函数以及唤醒函数的分析(sleep_on,wake_up)

先看一下代码:void sleep_on(struct task_struct **p){ struct task_struct *tmp; if (!p) return; if (current == &(init_task.task)) panic("task[0] trying to sleep"); tmp = *p; *p = current; current

2017-07-05 10:18:20 1636

原创 git-patch的使用

查看patch:git apply --stat patch.patch查看patch能否干净顺利的应用到当前分支中:git apply --check patch.patch应用patchgit apply --reject patch.patchgit am patch.patchgit am --signoff < patch.patch生成patchgit for

2017-07-04 14:46:11 632

OPENGL ES 3.0编程指南

OPENGL ES 3.0编程指南

2022-02-25

OpenGL 4 Shading Language Cookbook(2nd)

OpenGL 4 Shading Language Cookbook(2nd)

2022-02-25

maven权威指南英文原版

官方的maven权威指南原版书籍,关于maven使用有困惑的可以看一下,受益匪浅。

2019-03-10

emacs使用简介

emacs工具的使用入门简介,配置,快捷键的使用

2019-02-26

loongson1B处理器用户手册

loongson1B处理器用户手册。 单核处理器,是驱动开发人员必备参考。

2017-11-09

loongson2H处理器手册

loongson2H处理器用户手册。 单核处理器,是驱动开发人员必备参考。

2017-11-09

loongson2F处理器手册

loongson2F处理器用户手册。 单核处理器,是驱动开发人员必备参考。

2017-11-09

loongson3A处理器用户手册

中科院loongson3A处理器官方手册。 4核mips架构的处理器,开发必备

2017-11-09

elf-64位标准

elf格式程序的规范。 对于理解linux重应用程序的链接,加载,运行以及其他关键段信息必备

2017-11-09

mips32位ABI标准

mips架构规定的二进制ABI标准规范。 对于汇编以及底层的驱动必备

2017-11-09

mips-programmer-manual

mips架构的官方文档,对于架构的指令以及内存等设计讲解的非常清楚。(毕竟是人家发明的)属于开发人员必备

2017-11-09

《LINUX内核修炼之道》

《LINUX内核修炼之道》。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2017-10-26

ARM GCC Inline Assembler Cookbook.pdf

介绍ARM编程中嵌入汇编的使用

2017-05-27

vxworks_kernel_programmers_guide_6.8.pdf

vxWorks内核官方文档介绍,详细介绍了实时内核的构造

2017-05-27

mips架构官方文档

mips架构官方文档

2017-05-27

gcc工具介绍

gcc工具链官方介绍文档

2017-05-27

js从入门到精通 高宏编著

配合代码看书,效果更好。 高宏编著 javascript入门到精通

2017-05-27

A Byte of Python3(中文版).pdf带源代码.rar

A Byte of Python3(中文版).pdf带源代码.rar 入门好书,配合代码,无敌了

2017-05-27

Head+First+Python(中文版+标签).pdf

python入门书籍

2017-05-27

黑客入侵事例

网络安全技术,是一位黑客自己的入侵记录,知己知彼所以也是网络安全员的必学只是

2015-03-25

空空如也

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

TA关注的人

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