- 博客(58)
- 资源 (2)
- 收藏
- 关注
转载 Win7安装Ubuntu11.10双系统
Win7安装Ubuntu11.10双系统之前都是用虚拟机装”友帮拓”的,也尝试着在win7里面装双系统。因为笔记本CPU是I5,4G内存,所以上64位的。下面是安装步骤。一、下载Ubuntu11.10系统镜像文件,放在C盘。下载地址:http://releases.ubuntu.com/oneiric/ubuntu-11.10-desktop-amd64.iso
2012-12-02 00:10:25
542
原创 linux内核笔记之一
1, 说出linux的进程内核堆栈是如何通过SP堆栈指针来找到当前进程的描述符的,并给出这段代码解答:先给出内核代码内核结构体里已经有pid所以,我们只要调用就可以了。根据函数名就是地址的特性,根据函数的指针传值
2012-11-20 22:12:36
481
转载 Android Layout 布局
一个Android视图有很多控件,那么怎么来控制它们的位置排列呢?我们需要容器来存放这些控件并控制它们的位置排列,就像HTML中div,table一样,Android布局也起到同样的作用。 Android布局主要有以下几种:LinearLayout,RelativeLayout,TableLayout,AbsoluteLayout.最后一种AbsoluteLayout是通过指定控件的x/
2012-11-13 17:38:11
440
转载 嵌入式 linux 驱动 ADC驱动
很懒,很久没去总结学习的东西,今天就总结下linux下的AD驱动吧,AD驱动理解的难点和注意的地方其实就只有两点。一、虚拟地址的应用,就是物理地址转换为虚拟地址,ADC驱动程序中的寄存器就是都用 到了虚拟地址了。其中最主要的转换的语句是base_addr=ioremap(S3C2410_PA_ADC,0x20);/ioremap()功能: 将一个IO地址空间映射到内核的虚拟地
2012-11-06 00:10:19
1935
转载 wifi模块:marvell-8686
一、 移植环境: 【移植环境】 1、 主机:Ubuntu 10.10发行版 2、 目标机:FS_S5PC100平台 3、 交叉编译工具:arm-none-linux-gnueabi-4.5.1 4、wifi模块:marvell-8686 5、Linux文件系统:roo
2012-11-06 00:04:39
2090
转载 端口复用服务器模型
// I/O复用服务器模型//select编程 /*************************************** 版本:**** 编写**** 修改***********************************/ 程序流程 #include /* According to earlier standards */
2012-11-06 00:02:02
437
转载 内核模块
10.2.1数据结构1.模块符号如前所述,Linux内核是一个整体结构,而模块是插入到内核中的插件。尽管内核不是一个可安装模块,但为了方便起见,Linux把内核也看作一个模块。那么模块与模块之间如何进行交互呢,一种常用的方法就是共享变量和函数。但并不是模块中的每个变量和函数都能被共享,内核只把各个模块中主要的变量和函数放在一个特定的区段,这些变量和函数就统称为符号。到低哪些符号可以被共享?
2012-11-05 23:54:25
459
转载 Linux下V4L2编程小结--吴老师
Linux下V4L2编程小结--吴老师时间:2010-04-25 14:00来源:武汉华嵌 作者:技术部 点击: 6618次一.设置采集方式,格式 常用命令标志 打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的。在 Linux 编程中,一般使用 ioctl 函数来对设备的 I/O 通道进 作者:武汉华嵌-嵌入式培训中心 吴老师
2012-11-05 23:50:29
503
转载 LM75温度芯片I2C驱动
#include #include #include #include #include #include #include #include #define I2C_RETRIES 0x0701#define I2C_TIMEOUT 0x0702#define I2C_RDWR 0x0707 /*********定义struct i2c_rdwr_io
2012-11-05 23:48:27
1728
转载 线程锁和自旋锁的比较
最近从事多线程相关的编程,对于多线程的性能比较关心,所以去网上找了一些资料。看到了并行实验室的冠诚前辈的博文 学习到了很多,下面是我的学习笔记。光荣属于前辈。 线程锁调用API如下: pthread_mutex_lock(&mutex); pthread_mutex_unlock(&mutex); 自旋锁调用
2012-11-04 23:25:46
418
转载 typedef struct与struct的区别
第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。至于typedef有什
2012-11-04 22:55:56
304
转载 STL源码剖析---红黑树原理详解
一、红黑树概述 红黑树和我们以前学过的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。不过自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更高的统计性能。这一点在我们了解了红黑树的实现原理后,就会有更加深切的体会。 红黑树和AVL树的区别在于它使用颜色来标识结点的高度,它所追求的是局部平衡而不是AVL
2012-11-04 22:44:43
459
转载 Samsung s3c6410/s3c2416 的SPI接口调试
参考资料:6410手册/2416手册Kernel部分驱动代码作 者:agan联系邮箱 beswipe@yahoo.com.cnracer.blog.chinaunix.net转载须注明出处! SPI接口简述 SPI是 Serial Peripheral Interface(串型外部接口)的缩写。SPI接口有4根PIN脚,分别是:
2012-11-04 12:46:01
989
转载 实例解析linux内核I2C体系结构
实例解析linux内核I2C体系结构一、概述 谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。 第一种方法的好处(对应第二种方法的劣势)有: ● 思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。
2012-11-04 12:34:04
448
转载 菜鸟玩云计算之六:Ubuntu Server 12.10 上安装 nodejs, zeromq
Ubuntu Server 12.10 上安装 python, nodejs, zeromqnodejs是一个基于google v8+javascript的服务端编程框架。对于搞云计算,用nj来做系统管理Web站点是非常合适的。理由是:a.足够简单。b.足够快。c.足够小巧。d.前后端一致性。下面是安装步骤:1 首先确保系统安装了python, gc
2012-11-04 11:50:29
825
转载 SPI协议及SDIO协议
(1)串行外设接口(SPI:Serial Peripheral interface)是一种串行同步通讯协议(同时读入和写出),由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成。CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通讯。 主要影响SPI通讯的两个参数是时钟极
2012-11-03 22:32:35
5585
转载 Android源码目标结构
Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts
2012-11-03 22:00:46
433
转载 epoll_create, epoll_ctl和epoll_wait & select
名词解释:man epoll之后,得到如下结果:NAME epoll - I/O event notification facilitySYNOPSIS #include DEscrīptION epoll is a variant of poll(2) that can be used either as Edge o
2012-11-03 21:05:14
581
转载 Linux系统调用列表
一、进程控制:fork创建一个新进程clone按指定条件创建子进程execve运行可执行文件exit中止进程_exit立即中止当前进程getdtablesize进程所能打开的最大文件数ge
2012-11-03 20:33:39
314
转载 Android4.0.3 显示系统深入理解
1. 简介 网上已经有很多兄弟对Android的显示系统做了深入解剖,很是佩服。可最近小弟在研究Android4.0时发现出入比较大,也许是Android4.0的修改比较多吧!因为小弟没有看Android4.0以前的代码。 面对这么复杂一个Android显示系统,如何入手呢? 根据以前的经验,不管它有多么复杂,其功能不就是以下三步曲吗?
2012-11-03 20:22:17
688
转载 悲剧的山寨采用的新芯片资料汇总(更新Rk3066)
芯片名称基友公司上市前宣传主频量产机最高主频最高主频GPU备注Rk3066原道酷比魔方1.4GHz*21.6GHz*21.6GHz*2Mali 400MP4@ 266MHz(旧固件)Mali 400MP4@ 399MHz(最新固件)特点:高频寨厂虚标主频创始人这次显得很淡定,从Rk2818时代把开始把624MHz虚标为
2012-11-03 20:11:23
3110
转载 Linux驱动设备模型之Platform
[概述]一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、IIC、SPI等的设备而言,这自然不是问题,但是在嵌入式系统中,SoC系统中集成的独立的外设控制器,挂接在SoC内存空间的外设(IIC,RTC,SPI,LCD,看门狗)等却不依附于此类总线。基于这一背景,Linux发明了一种虚拟的总线,称为platform总线,相应的设备称为platformde
2012-11-02 16:43:24
408
转载 Ubuntu下配置tftp服务和NFS服务
配置tftp方法一:(推荐方法)Ubuntu10.04 测试通过1.安装TFTP软件sudo apt-get install tftp-hpa tftpd-hpatftp-hpa是客户端,tftpd-hpa是服务器端2.建立tftpboot目录,作为服务器的目录sudo mkdir ~/tftpboot释放权限:(服务器目录,需要设置权限为777,chomd 777)
2012-11-02 12:56:49
478
转载 S5PC100的PWM定时器中断实现示例
1实验平台的介绍实验芯片是S5PC100处理器,开发平台是FSC100开发平台。2实验实现的功能使用PWM定时器的中断来产生一个占空比可调的PWM波形。3开发板原理图有图可知,PWM定时器输出TOUT1来控制一个无缘的蜂鸣器。可以用定时器的中断方式来实现一个PWM占空比可调的方波。4实验代码分析void main()
2012-11-01 16:49:19
1354
转载 S3C6410的PWM驱动实例
我们使用PWM来控制蜂鸣器,主要是两种功能,一是使能蜂鸣器,并设置其频率;二是禁止蜂鸣器。这些操作均可通过ioctl来完成。所以在pwm的设备驱动中,主要也就是ioctl这个函数。 首先,我们要定义两个命令,用在ioctl函数中的switch语句中,至于怎么来定义这两个命令呢?其实简单的做法,我们可以将其定义为两个不同的常量,能用在switch语句中即可,但是这样会造成一定的问题。例如,其
2012-11-01 16:18:15
536
转载 ARM异常中断处理概述
1.中断的概念什么是中断,我们从一个生活中的例子引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。在处理器中,所谓中断,是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中断(中止)当前程序的执行,而转去为事件服务,待服务完毕,再返
2012-11-01 11:28:28
1117
转载 ARM的SWI异常中断处理程序设计
2012-10-07 08:57:23 我来说两句 收藏 我要投稿 本节主要介绍编写SWI处理程序时需要注意的几个问题,包括判断SWI中断号,使用汇编语言编写SWI异常处理函数,使用C语言编写SWI异常处理函数,在特权模式下使用SWI异常中断处理,从应用程序中调用SWI。1.判断SWI中断号当发生SWI异常,进入异常处理程序时,异常处理程序必须提取SWI中断号,从
2012-11-01 11:25:22
1509
转载 中断分支
2012-10-07 09:03:38 我来说两句 收藏 我要投稿 7.7 FIQ和IRQ中断7.7.1 中断分支1.软件控制中断分支ARM内核只有两个外部中断输入信号nFIQ和nIRQ。但对于一个系统来说,中断源可能多达几十个。为此,在系统集成时,一般都会有一个异常控制器来处理异常信号,如图7-5所示。 这时候用户程序可能存在多个IRQ/FI
2012-11-01 11:24:12
665
转载 s5pc100中断按键驱动
下面介绍一个中断实例,该例子实现了S5PC100按键控制。当按下KEY1和KEY2时,会从终端上打印出相应的按键信息。其中KEY1对应的是EINT1中断源,KEY2对应的是EINT2中断源。1.电路原理电路原理图如图7-10所示。 2.编程流程编程流程如图7-11所示。 3.程序编写(1)相关寄存器定义如下。#define VIC0ADDRE
2012-11-01 11:20:19
1191
转载 s3c6410中断按键驱动
相关头文件的定义1.IRQ_EINT(x) 中断号 是在kernel/arch/arm/mach-s3c64xx/include/mach/irqs.h 当中定义的。2.IRQF_TRIGGER_FALLING 下降沿触发是在kernel/include/linux/interrupt.h 当中定义的。3.DECLARE_WAIT_QUEUE_HEAD(name) 生成一
2012-11-01 11:14:59
622
转载 gdb+gdbserver的方式进行ARM程序调试
Sailor_forever Sailing_9806@163.com转载请注明http://blog.youkuaiyun.com/sailor_8318/archive/2008/04/16/2295583.aspx 【摘要】:本文首先介绍了gdb+gdbserver相关的概念,然后介绍了其下载、编译、安装等过程;接着介绍了利用gdb+gdbserver调试应用程序的流程及实例等;最后分
2012-11-01 11:10:22
582
转载 linux中断之中断注册
专业的linux驱动开发离不开中断处理,在处理中断,首先要注册中断,在linux下通过request_irq来注册中断的,不同内核版本,注册中断所需要的参数也不同,本文以linux-2.6.34为例,对比老版本进行说明。 request_irq()函数在include/linux/interrupt.h中定义,原型为: static inline int __must_chec
2012-11-01 08:47:40
693
转载 Linux字符设备驱动实例
闲话少说,理论不讲,直接拷贝源码即可运行。首先是device文件:mycdev.c[cpp] view plaincopy#include #include #include #include #include #include MODULE_AUTHOR("Boatman Yang"); MODULE_LICENSE("GPL");
2012-10-31 23:26:42
391
转载 单链表操作大全(图解逆序)
如果说你经常在linux中,或者在kernel下面做事的话,一定会碰到链表的操作。如果你没有真正了解单链表,还是把基础打好吧。如下程序综合了链表的常用方面,请你下自己写出每个函数,debug并运行,直到运行正确;然后对照参考程序,比较程序的差异,有时候,可能你测试不全面,会有这样那样的错误,多思考,这样,你才记忆深刻。[cpp] view plaincopy
2012-10-31 23:18:52
771
转载 Linux C 经典题目总结
【第一部分 C基本概念】【几个关键字】1)、auto关键字: 声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。不明白?无视他好了,编译器默认的缺省情况下,所有的变量都是auto的。2)、extern关键字: 我们都知道,一个变量或函数,可以在a.c文件中定义,而在b.c文件中使用,这个时候,b.c就需要使用ext
2012-10-31 23:14:58
2049
转载 Linux IPC总结(全)
IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。Linux IPC基本上都是从Unix平台上继承而来的。主要包括最初的Unix IPC,System V IPC以及基于Socket的IPC。另外,Linux也支持POSIX IPC。System V,BSD,POSIX System V是Unix操作系统最早的商业发
2012-10-31 23:11:23
386
转载 CS8900A网卡设备驱动程序分析基于ARM平台(上)
网络驱动程序主要完成系统的初始化、数据包的发送和接收。在以前的内核版本中,网络设备的初始化主要由net_device数据结构中的init函数指针所指向的初始化函数来完成。在现在较新的2.6内核中,网络设备的初始化主要由device_driver数据结构中的probe函数指针所指向的函数来完成。数据包的发送和接收是实现Linux网络驱动程序中两个最关键的过程,对这两个过程处理的好坏将直接影响到驱动程
2012-10-31 23:09:56
560
转载 Linux中断基本介绍
中断是设备驱动中非常重要的一个概念,所以这里首先讲述中断概念,然后讲述中断请求过程、中断处理程序以及中断相关的内核函数。 1中断基本概念 中断一词的字面意思是中间发生阻隔、停顿或故障而断开,但在计算机术语中的定义是是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件引起CPU暂时停止正在运行的程序,转到为该内部/外部事件或预先安排的事件服务的程序中去,服务完
2012-10-31 22:58:59
564
转载 s3c6410 LED驱动
这两天写了个LED驱动程序,网上也看了好多的帖子。开始思路很清晰了,就是先看电路图,发现LED灯是接在GPM端口上的,然后看S3C6410数据手册,先向GPMCON口写命令字,让GPM0-5设置为输出,再向GPMDAT口写数据字,在GPM0-5引脚拉低或拉高电平,从而控制LED的亮灭。1、电路图很显然LED灯是接在GPM口引脚下面的2、数据手册3、L
2012-10-31 15:00:39
675
转载 s5pc100 LED驱动
接上文,本文记录 led工程中 driver/目录下的3个文件 s5pc100_led.h s5pc100_leddriver.c Makefiles5pc100_led.h 这个文件和上文一样,不列举了,主要是s5pc100_leddriver.c,先列出完整的函数内容:[html] view plaincopy#include linux/init.h>
2012-10-31 14:44:47
611
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人