自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (56)
  • 收藏
  • 关注

转载 Linux内核自旋锁

自旋锁 自旋锁(spinlock)是用在多个CPU系统中的锁机制,当一个CPU正访问自旋锁保护的临界区时,临界区将被锁上,其他需要访问此临界区的CPU只能忙等待,直到前面的CPU已访问完临界区,将临界区开锁。自旋锁上锁后让等待线程进行忙等待而不是睡眠阻塞,而信号量是让等待线程睡眠阻塞。自旋锁的忙等待浪费了处理器的时间,但时间通常很短,在1毫秒以下。自旋锁用于多个CPU系统中,在单处理器系统

2012-02-22 14:33:41 11337

原创 linux驱动current,引用当前进程,及task_struct

尽管内核模块不象应用程序一样顺序执行, 内核做的大部分动作是代表一个特定进程的. 内核代码可以引用当前进程, 通过存取全局项 current, 它在 中定义, 它产生一个指针指向结构 task_struct, 在 定义. current 指针指向当前在运行的进程. 在一个系统调用执行期间, 例如 open 或者 read, 当前进程是发出调用的进程. 内核代码可以通过使用 current

2012-02-22 12:00:04 1735

转载 linux KBuild MakeFile介绍 之二

从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这同过去的编译系统有很大的不同, 尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的 Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。Linux内核Makefile分类·

2012-02-22 10:57:09 13525

转载 Linux内核Makefile文件

=== 目录     === 1 概述     === 2 角色分工     === 3 内核编译文件        --- 3.1 目标定义        --- 3.2 内嵌对象 - obj-y        --- 3.3 可加载模块 - obj-m        --- 3.4 导出符号        --- 3.5 库文件 - lib-y

2012-02-21 17:42:21 2243

原创 Linux 2.6内核Makefile浅析

1 概述Makefile由五个部分组成:Makefile:根目录Makefile,它读取.config文件,并负责创建vmlinux(内核镜像)和modules(模块文件)。.config:内核配置文件(一般由make menuconfig生成)。arch/$(ARCH)/Makefile:目标处理器的Makefile。scripts/Makefile.*:所有kbuild Makef

2012-02-21 17:17:15 16471 1

原创 SDIO总线 驱动

SDIO卡      SDIO卡是在SD内存卡接口的基础上发展起来的接口,SDIO接口兼容以前的SD内存卡,并且可以连接SDIO接口的设备,目前根据SDIO协议的SPEC,SDIO接口支持的设备总类有蓝牙,网卡,电视卡等。      SDIO协议是由SD卡的协议演化升级而来的,很多地方保留了SD卡的读写协议,同时SDIO协议又在SD卡协议之上添加了CMD52和CMD53命令。由于这

2012-02-21 16:36:24 11064 2

原创 linux 等待队列 PK linux 等待队列头

Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型的域作为"连接件"。它通过一个双链表和把等待tast的头,和等待的进程列表链接起来。从上图可以清晰看到。所

2012-02-20 16:06:38 2563 1

原创 cat /proc/meminfo

cat /proc/meminfo   读出的内核信息进行解释:MemTotal:       507480 kBMemFree:         10800 kBBuffers:         34728 kBCached:          98852 kBSwapCached:        128 kBActive:         304248 kBInac

2012-02-17 15:15:14 1860

转载 Linux-Android启动 之 (zImage生成过程)

可以看到,在顶层makefile的第278行,包含了scripts/Kbuild.include文件,在这里定义了大量的函数和变量,供顶层makefile和其他makefile文件使用。  在顶层makefile文件的第412行,包含了arch/arm/Makefile。这个是体系结构相关makefile文件。它定义了体系结构相关的一些变量及规则。   当执行”make”时,arc

2012-02-17 10:58:40 1052

转载 Linux/Android启动 之 (module_init和machine-init函数)

Linux/Android启动之Machine-Init函数一. 基础知识1. Linux启动过程中驱动模块初始化的位置Linux OS的启动过程中将会去创建线程kernel_init,该线程负责Driver初始化等一系列工作。线程kernel_init将会依次调用do_basic_setup() -->do_initcalls()-->do_one_initcall(

2012-02-17 10:25:07 2701

原创 深入理解linux内核链表

一、 深入理解linux内核链表            通常,链表数据结构至少应包含两个域:数据域和指针域,数据域用于存储数据,针域用于建立与下一个节点的联系。但在Linux内核链表中,不是在链表结构中包含数据,而是在各种特定数据结构中包含链表节点。在linux中许多大规模的数据就是通过内嵌链表,将数据很好的组织起来的,给遍历,查询的相关处理提供了方便。 1、定义所在文件:./in

2012-02-13 13:25:03 1916

原创 从编译和链接来看kernel驱动注册的过程

=============================================================================================================先不管编译,我们先看看kernel的链接过程。在这里我们使用arm-eabi-ld来进行链接,链接过程需要使用到一个链接脚本,这个脚本就是vmlinux.lds了。vmlin

2012-02-07 17:01:35 2041

原创 Android Building System 总结

Android以模块的形式来组织各个系统中的部件,Eng专业点的词汇就是Module,就是各位在几乎每个目录下都能看到的Android.mk。可以简单地把Android所有的Make文件分为4种:      1、For config      这类文件主要来配置product,board,以及根据你的Host和Target选择相应的工具以及设定相应的通用编译选项:      build

2012-02-07 13:51:19 947

转载 Kobject overview

sysfs是kobject的表达,所以这里翻译了Documention下的kobjct.txt,并加上了一些自己的注释,这样基本就对kobject和sysfs有了一个比较深刻的理解,我们可以简单的将sysfs看成最bottom的操作,然后kobject的想关操作是架构在sysfs之上,再然后kobject和attribute所嵌入的结构体再构成上一层结构来操作kobject,最后就实现了kerne

2012-02-07 11:26:29 797

转载 Sysfs overview

最近想把驱动模型彻底整明白,翻译了几篇文档,这篇sysfs是Patrick Mochel 2003年写的,现在代码有些变化,不过可以让我们基本了解sysfs这个东西。发现个有趣的事情,一般看kernel的东西都会在文件头部看到作者的信息,然后google.com搜这些大侠的名字和相关模块都能找到相关的知识~~ sysfs说穿了是kernel和userspace打交道的一个借口,kernel

2012-02-07 11:24:17 1511

原创 ARMlinux kernel 启动之start_kernel (二)

了解完kernel启动以前的汇编之后我们来看看正式的c语言启动代码,也就是我们的start_kernel函数了。start_kernel相当大,里面每一个调用到的函数都足够我们伤脑筋了,我这里只是浅尝辄止的描述一下函数的功能,从而对kernel启动的过程有一个比较直观的了解。很多函数真正理解需要对linux相关体系有很深的了解,暂时没有时间深入,留待以后了。       说实话启动的代码看到现

2012-02-07 11:17:48 3075

原创 ARM linux kernel启动流程 head.S(一)

1. kernel运行的史前时期和内存布局在arm平台下,zImage.bin压缩镜像是由bootloader加载到物理内存,然后跳到zImage.bin里一段程序,它专门于将被压缩的kernel解压缩到KERNEL_RAM_PADDR开始的一段内存中,接着跳进真正的kernel去执行。该kernel的执行起点是stext函数,定义于arch/arm/kernel/head.S。在分析st

2012-02-07 11:11:17 20328 1

原创 Linux 内存

一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用实际物理内存;一级是具体的物理页面,它对应我们机器上的物理内存。这 里要提到一个很重要的概念,内存的延迟分配。Linux内核在用户申请内存的时候,只是给它分

2012-02-06 18:19:52 1497

转载 QCT AMSS BUILD SYSTEM

http://blog.csdn.net/yili_xie/article/details/5656608总算把AMSS这套Makefile整完了,比起Android来QC这套Makefile还是比较烂的,架构不清晰,很多重复的规则,一个模块要不要加入需要判断三次,模块的路径上判断一次,模块的*.min要判断一次,模块的OBJ文件上还要判断一次,而且基本target都加了强制目标作为依

2012-02-06 18:13:45 1598

UNIX环境高级编程

UNIX环境高级编程

2012-01-31

android内核移植文档整理

android内核移植文档整理,我移植时参考过的文档,论文,资料,等待资料.学习andoid内核移植的好文章

2011-12-26

Uboot启动和移植

Uboot启动和移植

2011-12-25

uboot分析和笔记

uboot分析和笔记 详细的分析 uboot分析和笔记 详细的分析

2011-12-25

Android面试题

Android面试题

2011-12-25

android底层相关模块介绍

android底层相关模块介绍供14章 包括android驱动所有模块,学习的好资料啊

2011-12-25

Android核心分析

Android核心分析 Zygote Service - maxleng的专栏 Service深入分析 IPC框架分析 Binder,Service,Service manager

2011-12-25

Android编译系统

Android_build_systemAndroid_build_systemAndroid_build_system

2011-12-25

android编译大全_完全指南

android编译大全_完全指南

2011-12-25

Android的编译系统

Android的编译系统

2011-12-25

FPGA学习经验

FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享FPGA学习经验共享

2011-12-25

matlab书籍整理

matlab书籍整理

2011-12-25

超声波测距资料打包

超声波测距资料

2011-12-25

嵌入式系统设计开发流程

嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程嵌入式系统设计开发流程

2011-12-25

ucos 2内核结构

ucos 2内核结构

2011-12-25

嵌入式操作系统介绍

嵌入式操作系统介绍

2011-12-25

任务管理 时间管理 内存管理

任务管理 时间管理 内存管理

2011-12-25

uCOSII移植

uCOSII移植

2011-12-25

C语言实现FFT

C语言实现FFT

2011-12-25

C2000与单片机对比分析

C2000与单片机对比分析

2011-12-25

基于DSP的FFT算法实现

基于DSP的FFT算法实现

2011-12-25

TMS320C2000 DSP硬件结构

TMS320C2000 DSP硬件结构

2011-12-25

TMS320C2000 DSP指令系统

TMS320C2000 DSP指令系统

2011-12-25

CCS的技术概述

CCS的技术概述

2011-12-25

做DSP最应该懂得157个问题

做DSP最应该懂得157个问题

2011-12-25

基于TMS320C240湿度传感器测试系统设计

基于TMS320C240湿度传感器测试系统设计

2011-12-25

Jabber(XMPP)服务协议的概述中文版

Jabber(XMPP)服务协议的概述中文版

2011-12-25

AVR实现MP3,歌曲放在U盘.

AVR实现MP3,歌曲放在U盘,原理图,代码都有,还有说明哦

2011-12-25

XMPP协议简介

XMPP协议简介

2011-12-25

佛山网通EPON的FTTH工程方案设计

如今,更多用户关注多样化、个性化的通信服务,宽带服务的需求已经上升到了一个新的台阶。随着IPTV视频组播、点播业务的全面展开,对接入网提出了更高的带宽需求。 现有宽带接入方式,如xDSL,已越来越不能满足用户高带宽、多业务接入的需求。随着光接入技术的发展,光纤到户的综合成本比以前有大幅度下降。目前进行FTTH技术和业务的试验条件已经具备。 本文主要讨论了佛山网通EPON的FTTH工程设计方案,对工程涉及的试验业务、网络结构、小区布线、带宽设计、IP地址规划、VLAN划分、设备特性、ODN设置等进行了详细的描述,并对该工程采用EPON的FTTH技术进行了详细的分析。本次试验工程为佛山进行大规模的FTTH商用奠定了基础。

2011-12-25

03_Android的Linux内核与驱动程序

03_Android的Linux内核与驱动程序

2011-12-25

BootLoader_与Linux_内核的参数传递

BootLoader_与Linux_内核的参数传递

2011-12-25

linux 内核启动过程以及挂载android 根文件系统的过程

linux 内核启动过程以及挂载android 根文件系统的过程

2011-12-25

Eclipse_OpenOCD_OpenJTAGv3嵌入式开发教程

Eclipse_OpenOCD_OpenJTAGv3嵌入式开发教程Linux

2011-12-25

超宽带无线通信技术 ppt

超宽带无线通信技术 超宽带无线通信技术

2022-09-11

ARM---Cortex-A8处理器

ARM---Cortex-A8处理器, PPT版本, 非常好的参考资料。 欢迎下载 Cortex-A8处理器 技术特点; Cortex-A8内部 功能及特点; Cortex-A8内核工作模式; Cortex-A8存储系统。

2022-09-11

opencl SVM例程

opencl SVM例程

2016-08-16

linux设备启动char_dev2

linux设备启动char_dev2

2012-01-31

linux设备启动char_dev1

linux设备启动char_dev

2012-01-31

linux字符设备驱动

linux字符设备驱动

2012-01-31

空空如也

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

TA关注的人

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