自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

君子当自强不息

大多转载,只为学习

  • 博客(69)
  • 资源 (6)
  • 收藏
  • 关注

转载 进程上下文与中断上下文

进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。 处理器总处于以下状态中

2011-07-30 20:06:32 982

转载 C语言中使用静态函数的好处:

静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 使用内部函数

2011-07-30 10:41:19 7972

转载 BSS段、数据段、代码段、堆与栈

BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的

2011-07-30 09:47:46 691

转载 阻塞型设备驱动

阻塞型设备驱动----当设备无法满足用户的读写请求时应当如何处理?例如:调用read无数据可读,但以后会有;或者一个进程试图向设备写入数据,但设备暂时没有准备好接受数据。应用程序通常不关心这种问题,应用程序只是调用read,write并得到返回值。驱动应当缺省的阻塞进程,使他睡眠

2011-07-28 17:19:14 513

转载 自动创建设备文件

在linux2.6内核,使用udev(mdev)自动创建设备文件,它们存在于用户空间的应用层。创建---在驱动初始化的代码里调用class_create为该设备创建一个class,再为每个设备调用device_create创建对应的设备。范例----在busybox中配置udev

2011-07-28 16:17:23 502

转载 C语言中的位运算

一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。  位运算符C语言提供了六种位运算符:  & 按位与  | 按位或  ^ 按位异或  ~ 取反    >>

2011-07-28 15:50:36 390

转载 poll设备方法

poll设备方法----系统调用----用户空间               驱动----------内核空间open                                          openclose

2011-07-28 14:36:04 680

转载 linux设备号之操作

作者:李强,华清远见嵌入式学院讲师。   在Linux设备驱动中,设备号设一个很重要的概念和变量。不论是主设备号,还是次设备号,在设备驱动中都占据了很重要的地位。那么他在Kernel中是如何操作的?这个数据结构都是通过那些函数可以很容易的在我们写Linux设备驱动模块时被我们所使

2011-07-27 20:49:12 1165

转载 转]C语言,指针与内存分配

指针变量与内存分配=================================================================================               1。char * str1;//str1 只是一个指针,指针指向的空间

2011-07-27 17:43:21 1105

转载 c语言中静态变量和静态函数

1.  static 变量静态变量的类型 说明符是static。 静态变量当然是属于静态存储方式,但是属于静态存储方式的量不一定就是静态变量。 例如外部变量虽属于静态 存储方式,但不一定是静态变量,必须由 static加以定义后才能成为静态外部变量,或称静态全局变量。2. 静态局

2011-07-27 17:17:27 2521

转载 内核等待队列

在linux驱动程序设计中,可以使用等待队列来实现进程的阻塞,等待队列可以看做保存进程的容器,在阻塞进程时,将进程放入等待队列,当唤醒进程时,从等待队列中取出进程。linux2.6内核提供了以下关于等待队列的操作1定义等待队列wait_queue_head_t my_queue2

2011-07-26 09:52:08 514

原创 ioctl设备控制

ioctl功能-----大部分驱动程序除了需要具备读写设备的能力外,还需要具备对硬件的控制能力。例如,要求设备报告错误信息,改变波特率,这些操作常常通过ioctl方法来实现。用户使用方法-----在用户空间,使用ioctl系统调用来控制设备,原型如下:int ioctl(int

2011-07-25 16:48:44 801

转载 并发控制

并发与竟态并发---多个执行单元同时被执行。竟态--并发的执行单元对共享资源(硬件资源和软件上的全局变量等)的访问导致的竞争状态。处理并发的常用技术是加锁或者互斥,即确保在任何时间只有一个执行单元可以操作共享资源。在linux内核中主要通过semaphore机制和spin_loc

2011-07-25 15:03:39 413

转载 驱动程序调试技术

调试技术分类-----1--打印调试--可以全局打开或关闭的printk#ifdef PDEBUG#define PLOG(fmt,args....) printk(KERN_DEBUG"scull:"fmt,##args)#else#define PLOG(fmt,args..

2011-07-25 14:03:34 507

原创 字符设备驱动程序设计

设备号---主设备号,次设备号字符设备通过字符设备文件来存取。字符设备文件由使用ls -l的输出的第一列的c标识。其中的两个数字,分别为主设备号和次设备号。 设备号作用-----主设备号----字符设备文件通过主设备号和字符设备驱动对应。此设备和--被驱动程序用来辨别操作的是哪

2011-07-24 21:09:58 688

转载 驱动程序介绍

驱动分类----1--字符设备--按字节来访问,有顺序,不能随机。2--网络接口设备--一个接口通常是硬件设备如:eth0,但也可以为一个软件如回环lo。3--块设备---一般一个块512的整数倍,linux中无限制。在linux中字符设备与块设备的区别仅仅是驱动与内核的接口不同

2011-07-24 19:33:09 509

转载 proc文件系统

proc文件系统

2011-07-24 15:04:28 459

转载 linux进程调度

调度---从就绪的进程选出最适合的一个来执行。知识点-----1---调度策略2---调度时机3---调度步骤调度策略--------SCHED_NORMAL(SCHED_OTHER):普通的分时进程SCHED_FIFO---先入先出的实时进程SCHED_RR---时间片轮转的实

2011-07-22 17:28:14 528

原创 linux进程管理子系统-----进程控制

进程--一个执行中的程序。它是动态的实体。进程四要素-------1--有一段程序供其执行。这段程序不一定是某个进程所专有,可以和其它进程共用。2--有进程专用的内核空间堆栈。3--在内核中有一个task_struct数据结构,即进程控制块。有了这个数据结构,进程才能成为内核调度

2011-07-22 13:32:09 817

原创 linux内核定时器

度量时间差

2011-07-22 12:52:15 503

原创 linux内核链表

内核链表---include/linux/list.h链表数据结构定义struct list_head{ struct list_head *next,*prev; }内核链表具备双链表功能,实际上,通常它都组织成双向循环链表。链表操作---初始化链表头INIT_LIST

2011-07-22 12:34:18 639

原创 linux内核空间

内核空间----是由内核负责映射,它并不会跟着进程改变,是固定的。高端内存--896M以上的部分称之为高端内存。3G--------------------------------------------------------------------4G直接映射区---8M-动

2011-07-22 10:28:31 975

原创 linux进程空间

虚拟内存---linux操作系统采用虚拟内存管理技术,使得每个进程都有独立的进程地址空间,该空间是大小为3G,用户看到和接触的都是虚拟地址,无法看到实际的物理地址。利用这种虚拟地址不但能起到保护操作系统的作用,而且更重要的是用户程序可使用比实际物理内存更大的地址空间。linux将

2011-07-22 10:03:54 3820 1

原创 linux内存管理

linux内存管理----内存管理子系统。地址类型----1--物理地址---是指出现在cpu地址总线上 的寻址物理内存的地址信号,是地址变换的最终结果。 2--线性地址(虚拟地址)---在32位cpu架构下,可以表示4G的地址空间,用16进制表示就是0x00000000---

2011-07-22 08:29:47 858

转载 嵌入式文件系统

嵌入式文件系统----linux支持多种文件系统类型,包括ext2,ext3,vfat,jffs,ramfs,nfs等,为了对各类文件系统进行统一管理,linux引入了虚拟文件系统vfs(virtual file system),为各类文件系统提供一个统一的应用编程接口。文件系统

2011-07-21 20:29:17 3644

转载 内核启动流程

内核启动流程---三个阶段1--解压缩2--初始化3--启动应用程序

2011-07-21 15:50:46 555

原创 嵌入式linux内核与根文件系统制作

制作嵌入式平台使用的linux内核,方法和制作pc平台的linux内核基本一致,下面使用对比的方法介绍如何制作用于mini2440开发板的内核。1--清除原有配置和中间文件x86-make distcleanarm-make distclean2--配置内核x86-make me

2011-07-21 14:46:01 994

原创 bootloader介绍

bootloader介绍软件层次---嵌入式系统从软件的角度看1--引导加载程序包括固化在固件(firmware)中的boot程序(可选)和bootloader两个部分。2--linux内核3--文件系统包括系统命令和应用程序

2011-07-21 09:28:09 990

原创 嵌入式linux系统架构

嵌入式linux系统架构开发流程1--硬件开发flash                    触摸屏嵌入式处理器网卡                    按键开发流程2--bootloader移植开发流程3--linux内核移植开发流程4--制作供内核启动的根文件系统应用程序

2011-07-21 09:16:38 1427

转载 内核模块

内核模块----linux内核的整体结构庞大,其中包含的组件也很多,如何使用需要的组件?1--把所有的组件都编译进内核文件,即zImage,bzImage,但这样会导致两个问题:一是生产的内核文件过大,二是,如果要添加或删除某个组件要重新编译整个内核。内核模块机制---提供一种机

2011-07-20 18:25:37 3305 1

转载 linux内核配置与编译

嵌入式系统---以应用为中心,软硬件可裁剪,对功耗,体积,成本,环境等有严格要求的专用计算机系统。定制linux内核过程---1--清除临时文件,中间文件,配置文件。make cleanmake mrpropermake distclean2--确定目标系统的软硬件配置情况,比如

2011-07-20 17:12:29 817

原创 linux简介

linux系统体系结构(linux系统构成)linux系统由两部分组成用户空间和内核空间。用户空间又由用户的程序和c库组成。内核空间有由系统调用接口,狭义内核,体系相关代码组成。分为两个空间的原因----很多嵌入式处理器,如arm实现了不同的工作模式。用户模式,快速中断,外部中断

2011-07-20 16:18:18 1272

转载 arm-linux-gcc/ld/objcopy/objdump参数总结

arm-linux-gccarm-linux-gcc -Wall -O2 -c -o $@ $ -o 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件也就是.o的目标文件 -Wall 指定产生全部的警告信息 -O2 编译器对程序提供的编译优化选项,在编译的时候使用该选项

2011-07-19 16:04:10 1389

原创 readelf/arm-linux-readelf

ELF = Executable and Linkable Format,可执行连接格式,是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。扩展名为elf。NAME       readelf

2011-07-19 16:01:27 2504

转载 块设备驱动程序

设备描述---定义于linux/genhd.hstruct gendisk{int major;主设备号int first_minor;次设备号int minors;char disk_name[DISK_NAME_LEN];驱动名struct block_device_oper

2011-07-18 10:45:14 1371

原创 块设备简介

块设备----将数据存储在固定大小的块中,每个块的大小通常在512字节到32768字节之间,磁盘,sd卡都是常见的块设备。块设备和字符设备区别---读写数据的基本单元不同,一个是块,一个是字节块设备能够随即访问,字符设备只能顺序访问。体系结构-------------------

2011-07-18 09:57:31 1014

原创 终端控制台体系

数据通信--并行通信串行通信异步通信--以一个字符为单位,通信中两个字符间的时间间隔不固定的,然而同一个字符中的两个相邻位之间的时间间隔是固定 的。通信协议----是指通信双方约定的一些规则。在使用异步串口传送一个字符的信息时,对数据格式有如下约定

2011-07-16 18:40:42 913

转载 pci驱动程序设计

驱动描述struct pci_driver{.........................const struct pci_device_id *id_table;一个pci驱动可以支持很多pci设备。驱动所支持的设备都放在这个表中。它其实是个数组,数

2011-07-16 14:32:51 3184

原创 pci总线概述

总线---是一种传输信号的信道;由电气接口和编程接口组成。体系结构----系统的各个部分通过pci总线和pci-pci桥连接在一起。cpu和ram通过pci桥连接到pci总线0(即主pci总线),而具有pci接口的显卡直接连接到主pci总线上。pci-pci桥是一个特

2011-07-16 14:00:05 1794

转载 触摸屏驱动

触摸屏分为电阻式,电容式,声表面波式和红外线扫描式等类型。使用的最多的是4线电阻式触摸屏。s3c2440触摸屏由横向电阻比和纵向电阻线组成,由nYPON.YMON...nXPON...XMON四个控制信号控制4个MOS管(s1,s2,s3,s4)的通断。控制器----s3c244

2011-07-16 11:36:32 1027

嵌入式开发工具

好用的串口工具,非常不错,适用单片机 嵌入式开发

2014-01-27

vim 配置文件 和插件

vim 配置文件 和插件 代码编辑工具 神器

2013-09-09

蓝牙书籍 很不错的资料

蓝牙书籍 很不错的资料 值得拥有 bluze 协议栈 arm 嵌入式

2013-06-26

bluez 文档

bluez 说明文档 很不错的东西 蓝牙协议栈

2013-06-26

资料 linux kernel

linux kernel knowledge

2013-05-26

headset profile

很全面 官方的资料 bluez headset profile开发文档

2013-04-05

空空如也

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

TA关注的人

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