- 博客(28)
- 资源 (28)
- 收藏
- 关注
转载 为什么说在持有自旋锁时不能进入睡眠或阻塞
看LDD149页时,看到休眠的两条规则,其中之一是说,永远不要再原子上下文睡眠!为什么说,驱动程序在持有自旋锁时绝对不能进入睡眠,而在拥有信号量时就可以? 看到网上有人这么提问,这也是我读书时候自己迷惑不解的地方。但是,通过仔细研读,我理解到了这个问题的答案。我在网上也看了大家对于这个问题的回答,大都没说到点上。根据我自己的理解,应该是: 自旋锁禁止处理器抢占;而信号量
2013-06-26 20:45:09 2650
原创 (LKD3读书记录)-Chap3:进程管理
/* 学习记录 无意侵权 */--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------进程管理
2013-06-26 09:41:24 1571
转载 sourceinsight中更改函数调用关系
右下角的调用关系图 Calls默认情况下,上一级函数调用下一级函数的的出现次序是按照字母升序排列的,在查看时非常费眼力。如何让下一级函数的调用次序按照上一级的函数的调用先后次序排列呢。如下操作(1)和(2),其中(2)还能按照其他次序排列,这点非常方便。 查看被调用关系在Relation window窗口右键,选relation window prope
2013-06-23 20:35:50 3255
原创 (LKD3读书记录)Chap5:系统调用
/* LKD3 Chapter5 摘抄:(学习记录,无意侵权) */-------------------------------------------------------------------------------------------------------------------------------------------------系统调用 在现代操作
2013-06-23 17:04:41 1344
原创 (续)一种简陋的CC1100/CC1101主从通信协议
/* 热火实现了卫冕,詹姆斯背负的骂名也渐渐少去,马刺和GDP的失利,让人无限唏嘘,失败者落寞的身影让人感叹岁月的无情,马刺王朝就此解体了吗,看着呆呆满脸和满眼的遗憾,心中竟不能替热火高兴,也许人们总是对“曾经”感到留恋,曾经离冠军只有5.2秒,但从天堂到地狱也只是5.2秒。。。戏剧化的让人以为这是一部电影,一部符合美国人胃口的电影,迫入绝境,然后峰回路转,诸葛波波最后换下呆呆让人觉着这是联盟干爹
2013-06-23 12:51:41 2316 2
原创 一种简陋的CC1100/CC1101主从通信协议
/* forsakening @hdu 2013/6/18 *//* 版权所有~~^ _ ^ */---------------------------------------------------------------------------------------------------------------------------花了有15个小时完成的,还不够完善,写的
2013-06-18 16:08:04 5878 2
转载 进程间通信--信号(进程间通信唯一的异步方式)
转载地址:http://blog.chinaunix.net/uid-25120309-id-3301181.html向原作者致敬^ _ ^正文:-------------------------------------------------------------------------------------------------------------------
2013-06-18 15:25:31 1375
原创 (LDD3实践)Chapter-3:字符驱动
SCULL的模型首先明确一下scull设备的模型:scull设备有qset个scull_qset结构,每个scull_qset结构维护着qset个quantum,每个quantum默认是4000,而qset默认是1000,所以一个qset的大小是4000*1000个char源代码分析:对源码的分析:http://blog.csdn.net/liuhaoyutz/article/
2013-06-16 14:29:03 1168
转载 open系统调用在内核中的流程浅析
转载地址:http://linux.chinaunix.net/techdoc/develop/2008/12/18/1053790.shtml正文:---------------------------------------------------------------------------------------------------------------------
2013-06-16 12:50:02 1274
转载 container_of浅析
转载地址:http://blog.csdn.net/yinkaizhong/article/details/4093795向原作者们致敬^ _ ^正文:-------------------------------------------------------------------------------------------问题:如何通过结构中的某个变量获取结构
2013-06-16 10:49:53 839
原创 (LDD3读书记录)Chapter-3:字符驱动
/* 纯粹是学习记录,无意侵权~^ _ ^ *//* 感觉LDD3已经很精简了,完全不知道该删简哪些部分... *//* so,所谓的记录就是LDD3的copy!^ _ ^,只能说,处于“书越读越厚”的阶段....菜鸟一枚~^ _ ^向作者和译者致敬! */正文:介绍了字符设备开发的一般步骤及相关方法,scull设备(LDD3特有的内存设备,属于字符设备
2013-06-15 21:17:42 984
转载 THIS MODULE/struct module【需完善...】
转载地址:[1] http://blog.csdn.net/a954423389/article/details/6101369正文:结构体struct module在内核中代表一个内核模块,通过insmod(实际执行init_module系统调用)把自己编写的内核模块插入内核时,模块便与一个 struct module结构体相关联,并成为内核的一部分。下面是结构体struct
2013-06-15 15:54:06 945
原创 (LKD3)读书记录-Chapter4:进程调度
/* 还是那样,纯粹是学习记录,无意侵权~^ _ ^ *//* 大牛们的书已经很精简了,完全不知道该删简哪些部分... *//* copy了全部!只能说,处于“书越读越厚”的阶段....菜鸟一枚~^ _ ^ */------------------------------------------------------------------------------
2013-06-15 14:14:25 1929
原创 (LDD3实践)Chapter-2:建立和运行模块
X86-PC:环境是:[root@zx chap2_hello]# uname -aLinux zx 2.6.27.5-117.fc10.i686 #1 SMP Tue Nov 18 12:19:59 EST 2008 i686 i686 i386 GNU/Linux源码(hello.c):#include #include #include MODULE_LIC
2013-06-14 17:25:06 1232
原创 (LDD3读书记录)Chapter-2:建立和运行模块
/* 纯粹是学习记录,无意侵权~^ _ ^ *//* 感觉LDD3已经很精简了,完全不知道该删简哪些部分... * so,copy了全部!只能说,处于“书越读越厚”的阶段....菜鸟一枚~^ _ ^ */2.2. Hello World 模块 许多编程书籍从一个 "hello world" 例子开始, 作为一个展示可能的最简单的程序的方法. 本书涉及的是内核模块
2013-06-14 16:45:02 1320
转载 C语言编译过程总结详解
正文C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。过程图解如
2013-06-10 22:03:54 814
原创 extern "C"/C中如何调用C++
extern "C"概述被extern "C"修饰的变量和函数是按照C语言方式编译和连接的;首先看看C++中对类似C的函数是怎样编译的。作为一种面向对象的语言,C++支持函数重载,而过程式语言C则不支持。函数被C++编译后在符号库中的名字与C语言的不同。例如,假设某个函数的原型为:void foo( int x, int y );该函数被C编译器编译后在符号库中的名字为_foo
2013-06-10 20:50:50 1245
原创 TQ2440-U-BOOT-1.1.6启动流程及常用功能浅析
关于uboot的启动流程,没有去整体的进行分析,只是选取了常用的功能进行学习1. u-boot的启动流程主要参考:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html总结一下:uboot第一阶段:start.s阶段,主要是完成一些cpu及ram相关操作,如中断向量表、watchdog、sdram控制器初始化、时
2013-06-10 15:43:51 2137 1
转载 SourcInsight中添加.s文件/汇编文件
(1)做ARM嵌入式开发时,有时得整汇编代码,但在SIS里建立PROJECT并ADD TREE的时候,根据默认设置并不会把该TREE里面所有汇编文件都包含进来,默认只加了.inc和.asm后缀的, .s后缀的没有。而且用SIS打开.s的文件时,一片黑白没有色彩, 感觉回到DOS的EDIT时代里了。 解决方法是在Options->Document Options里面,点左上的Docum
2013-06-09 14:12:16 757
原创 TQ2440的U-Boot-1.1.6Makefile结构浅析
2013-6-4其实基于TQ2440开发板U-BOOT的移植,网上已经有很多教程了,我也亲手移植过,那是一年多以前的事情了,现在也已忘得差不多,当时也就是按照移植手册一步一步来,更多关注的是“怎么样”,至于具体的“为什么”要这么移植,却没有进行分析,上午面试的时候被深深鄙视,觉着还是要一步一步来,扎实点,移植不能只着眼于“怎么样”,还要经常问问自己“为什么”要这么搞,原因在哪里。还有,“实践才
2013-06-06 00:20:42 1407
原创 control C 和 control D 这类的特殊输入字符有没有对应的 ASCII 码?
Linux下:showkey -a 可以得到任意你想要的键或组合键的ASCII码! 前提是这些键有ASCII码!如:[root@zx /]# showkey -aPress any keys - Ctrl-D will terminate this program^A 1 0001 0x01^B 2 0002 0x02^C
2013-06-05 22:02:44 2984
原创 全局/静态变量初始化为0放在bss段还是data段
2013-6-4上午去面试,被鄙视了,技术公司大牛的风范,好犀利!不过我这题应该是蒙对了。。 如:static unsigned char s_test = 0;这个静态变量是放到bss段还是data段呢,以下是我编译的结果:(全局变量也是如此) 1.看这样子,即使是初始化了,但是初始化的是0,还是放在bss段的2.这里还有一个问题,即使是全局定义了一个变量,若后面程序
2013-06-04 15:51:01 11205 4
原创 sourceinsight如何显示完整文件路径
Options->Preferences->Display, 去掉勾选"Trim long path names withellipses",这样路径中的省略号就没有了,显示出完整的路径
2013-06-03 23:11:41 1296
转载 ARM Linux启动过程分析
1. 正文-----------------------------------------------------------------------------------------------------------------------------ARM Linux启动过程分析是本人要介绍的内容,嵌入式 Linux 的可移植性使得我们可以在各种电子产品上看到它的身影。对于不同体
2013-06-03 21:13:13 1244
转载 Linux内核模块/驱动编程基础
1. 正文----------------------------------------------------------------------------------------------------------------linux内核开发时需要注意以下几个问题:1.不能访问C库,内核不能使用标准库。这个可以在编译链接内核以后从内核目录下的.vmlinux.cmd可以看出:
2013-06-03 20:42:17 865
转载 嵌入式linux加载引导内核和根文件系统的方法
1. 正文-------------------------------------------------------------------------------------------------------------------总体来说,嵌入式Linux内核和根文件的引导与PC机差不多。嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我们将内核和根
2013-06-03 20:22:40 2175
原创 TQ2440裸机MMU
1. 内存管理单元MMU介绍 内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。重点就在于地址映射:页表的结构与建立、映射的过程。1)地址的分类一个程序在运行之前,没有必要全部装入内存,仅需要将那些要运行的部分先装入内存,其余部分
2013-06-02 15:25:45 1320
原创 TQ2440裸机中断(软中断swi)
(个人总结,错误在所难免,欢迎讨论)1. 引出:一般情况下,比如调用open系统调用,大家会说此时系统陷入了内核态,继而调用内核的sys_open来进行实际的open处理,但是为什么用户态调用了open就会陷入内核态呢?所谓的用户态及内核态究竟是什么呢? 2. S3C2440软中断ARM9处理器有7种工作模式,软中断,通俗的说就是为了从其他工作模式切换到管理模式(在管理模式,可
2013-06-01 19:55:36 1335
linux ipv6简单tcp/udp socket通信
2013-11-04
一种简陋的CC1100/CC1101主从通信协议
2013-06-18
U-Boot-1.16编译过程完全分析(网页文件)
2013-06-04
TQ2440-S3C2440-裸机ARM软中断
2013-06-01
TQ2440-S3C2440-裸机UART测试程序
2013-05-31
TQ2440裸机代码(定时器中断)
2013-05-31
TQ2440裸机中断(外部中断)
2013-05-31
TQ2440启动代码
2013-05-31
TQ2440启动代码测试--流水灯
2013-05-30
51单片机C语言编程入门(中科大)
2013-05-27
Accelerated C++中文版(扫描版)
2013-05-23
圈圈教你玩USB
2013-05-15
bacnet-stack-0.8.0
2013-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人