自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

forsakening的专栏

for( level = 水平不高, reason = 学习记录; ;){ if (温故知新) level++; }

  • 博客(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

dpdk vswitch

dpdk virtual switch

2023-03-01

店铺转租转让合同样本文件.doc

转让协议样本

2021-03-29

linux ipv6简单tcp/udp socket通信

linux下ipv6简单的tcp/udp socket通信,代码测试通过,具体可以参考: http://blog.csdn.net/zhengxianghdu/article/details/14106167

2013-11-04

浙江大华2014笔试(软件、算法类A卷)

浙江大华2014笔试(软件、算法类A卷) 10/11杭州电子科大

2013-10-12

2014网新恒天校招笔试(925杭电)

2014网新恒天校招笔试(925杭电) 请大家参考!

2013-09-25

2014年阿里巴巴研发笔试题(9月22杭州)

2014年阿里巴巴研发笔试题(9月22杭州)

2013-09-22

QEMU/mini2440上运行RT-Thread源码及工具

里是我测试好的工程,包括源码及工具(RTT0.4.0 + PYTHON + SCONS)

2013-09-18

宋宝华《Linux设备驱动开发详解》随书代码

《Linux设备驱动开发详解》随书代码,从第五章开始

2013-08-11

一种简陋的CC1100/CC1101主从通信协议

一种简陋的CC1100/CC1101主从通信协议,可选址,面向连接,具体可参考http://blog.csdn.net/forsakening/article/details/9121067

2013-06-18

U-Boot-1.16编译过程完全分析(网页文件)

U-Boot-1.16编译过程完全分析.mht(网页文件) 原作者的分析,害怕丢了,保存一下 作者地址: http://www.cnblogs.com/heaad/archive/2010/07/17/1779806.html

2013-06-04

u-boot-1.1.6官方原版

u-boot-1.1.6官方原版 官方地址: ftp://ftp.denx.de/pub/u-boot/(不保证可以正常访问)

2013-06-04

TQ2440-S3C2440-裸机ARM软中断

用ADS编译测试通过,裸机ARM软中断测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9004812这里是我对代码及arm软中断的简单分析。

2013-06-01

TQ2440-S3C2440-裸机UART测试程序

用ADS编译测试通过,UART查询和中断方式测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9002514 这里是我对代码及TIMER0中断的简单分析。

2013-05-31

TQ2440裸机代码(定时器中断)

用ADS编译测试通过,TIMER0中断测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/9001059 这里是我对S3C2440代码及TIMER0中断的简单分析。

2013-05-31

TQ2440裸机中断(外部中断)

用ADS编译测试通过,外部中断按键测试程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行(因为没有开启MMU)。 http://blog.csdn.net/forsakening/article/details/8998027 这里是我对S3C2440代码及中断的分析。

2013-05-31

TQ2440启动代码

代码分析见http://blog.csdn.net/forsakening/article/details/8996343 此代码在ADS编译测试通过,下载至TQ2440开发板NAND中可正常启动,能正确引导C语言程序

2013-05-31

TQ2440启动代码测试--流水灯

用ADS编译测试通过,流水灯程序,可以通过uboot下载至NAND里运行,直接下载到SDRAM无法运行。若要在sdram可运行,将工程中的startcode删除即可。 http://blog.csdn.net/forsakening/article/details/8996343 这里是我对启动代码的分析。

2013-05-30

51单片机C语言编程入门(中科大)

51单片机C语言编程入门(中科大),51单片机虽然很简单,但是长时间不用的话,一些基本的概念还是会忘记,不熟悉的时候看看,温故而知新,不积跬步无以至千里~

2013-05-27

Accelerated C++中文版(扫描版)

Andrew Koenig, Barbara E. Moo, Accelerated C++: Practical Programming by Example 《Accelerated C++中文版》,中国电力出版社 和市面上大多数C++教程不同,本书不是从“C++中的C”开始讲解,而是始于地道的C++特性。从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件所依赖的基础概念。另外,和其他C++教材不同的是,这本书以实例拉动语言和标准库的讲解,对后两者的讲解是为了给实例程序提供支持,而不是像绝大多数C++教材那样,例子只是用作演示语言特性和标准库用法的辅助工具。

2013-05-23

LDD3英文书+源码

LDD3英文源码,非中文注释,完全配合原书

2013-05-17

圈圈教你玩USB

/* 也是从其他地方搞过来的,花了不少积分,我就1分奉献了吧,绝对是好书~ */ 第1章USB概述及协议基础 1.1USB是什么 1.2USB的特点 1.3USB的拓扑结构 1.4USB的电气特性 1.5USB的线缆、插头及插座 1.6USB的插入检测机制 1.7USB的描述符及其之间的关系 1.8USB设备的枚举过程 1.9USB的包结构及传输过程 1.9.1USB的包结构及包的分类 1.9.2令牌包 1.9.3数据包 1.9.4握手包 1.9.5特殊包 1.9.6如何处理数据包 1.10USB的四种传输类型 1.10.1USB事务 1.10.2批量传输 1.10.3中断传输 1.10.4等时传输 1.10.5控制传输 1.10.6端点类型与传输类型的关系 1.10.7传输类型与端点支持的最大包长 1.11本章小结 第2章硬件系统设计 2.1方案及芯片的选定 2.2D12引脚功能说明 2.3D12与AT89S52的连接 2.4串口部分电路 2.5按键部分 2.6指示灯部分 2.7IDE接口部分 2.8单片机部分 2.9元件安装 2.10电路调试 2.11测试程序的编写和调试 2.11.1建立一个工程 2.11.2为工程添加源文件 2.11.3KEIL工具栏及仿真介绍 2.11.4按键驱动的编写 2.11.5串口驱动的编写 2.11.6PDIUSBDl2读写函数及读ID的实现 2.12本章小结 第3章USB鼠标的实现 3.1USB鼠标工程的建立 3.2USB的断开与连接 3.3USB中断的处理 3.4读取从主机发送到端点O的数据 3.5USB标准请求 3.5.1USB标准设备请求的结构 3.5.2GET_DESCRIPTOR请求 3.5.3SET_ADDRESS请求 3.5.4SETCONFIGURATION请求 3.6设备描述符的实现 3.7设备描述符的返回 3.8设置地址请求的处理 3.9配置描述符集合的结构 3.9.1配置描述符的结构 3.9.2接口描述符的结构 3.9.3端点描述符的结构 3.9.4HID描述符的结构 3.10配置描述符集合的实现以及返回 3.11字符串及语言ID请求的实现 3.12设置配置请求的实现 3.13报告描述符的结构及实现 3.14报告的返回 3.15BusHound工具的简介 3.16本章小结 第4章USB键盘的实现 4.1USB键盘工程的建立 4.2设备描述符的实现 4.3配置描述符集合的实现 4.3.1配置描述符 4.3.2接口描述符 4.3.3HID描述符_ 4.3.4端点描述符 4.4字符串描述符 4.5报告描述符 4.6输入和输出报告的实现 4.7 USB键盘实例的测试 4.8再谈USBHID的报告描述符 4.9带鼠标功能的USB键盘(方法一) 4.10带鼠标功能的USB键盘(方法二) 4.11多媒体USB键盘 4.12本章小结 第5章用户自定义的USBHID备 5.1MyUsbHid工程的建立 5.2描述符的修改 5.3报告的实现 5.4对用户自定义的USBHID设备的访问 5.5访问HID设备时所用到的相关函数 5.5.1 获取HID设备的接口类GUID的函数 5.5.2获取指定类的所有设备信息集合的函数 5.5.3从设备信息集合中获取一个设备接口信息的函数 5.5.4获取指定设备接口详细信息的函数 5.5.5打开设备的函数 5.5.6获取HID设备属性的函数 5.5.7从设备读取数据的函数 5.5.8往设备写数据的函数 5.5.9通过控制端点O读取报告的函数 5.5.10通过控制端点O发送报告的函数 5.5.11关闭句柄的函数 5.5.12需要包含的库文件 5.6访问USBHID设备的上位机软件的实现 5.6.1上位机程序编写的思路 5.6.2查找及打开HID设备的代码 5.6.3读输入报告线程的代码 5.6.4写输出报告的代码(发送LED的状态) 5.6.5写输出报告线程的代码 5.6.6线程的创建以及设备插拔事件的注册 5.6.7对设备状态改变事件的处理 5.7软件界面以及使用方法 5.8本章小结 第6章USB转串口 6.1串口家族历史 6.2串口接头的引脚分布及功能 6.3USB转串口的实现方法 6.4设备描述符 6.5字符串描述符 …… 第7章USBMIDI键盘 第8章U盘 第9章自定义USB设备及驱动开发 第10章USB过滤驱动开发 附录第3章实例的完整调试信息 参考文献 后记 ……

2013-05-15

LDD3源码及示例

LDD3的源码,由于其他人的资源要下载积分,发扬开源精神,下载并0积分分享~

2013-05-15

xcap0.3.4报文构造发送工具

xcap0.3.4报文构造发送工具,windows上一款十分好用的报文构造发送工具

2013-05-07

bacnet-stack-0.8.0

bacnet-stack-0.8.0.zip可以移植在各种嵌入式设备上,兼容了各种平台:linux win32 pic单片机 arm7,且实现的功能较为完善,提供各种服务,对于BVLL较为详细

2013-03-21

bacnet4linux-0.3.12

bacnet4linux-0.3.12针对于linux平台的bacnet协议栈实现,主要实现了server的功能

2013-03-21

80c51动态扫描数码管 显示不同的数

80c51动态扫描数码管 显示不同的数 keil 的c语言代码

2011-09-25

空空如也

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

TA关注的人

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