- 博客(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
转载 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
转载 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内核链表
内核链表---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
原创 嵌入式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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人