自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (4)
  • 收藏
  • 关注

原创 《OK6410-蜂鸣器驱动程序设计》之阻塞型字符设备

蜂鸣器是通过I/O 口GPF15来间接控制的,为了增加驱动能力,增加了三级管驱动电路。当三极管的基极(B)为高电平即GPF15 为高电平时,蜂鸣器会鸣叫,反之则不响。通过设置两者之间的时间(即改变频率)可以使蜂鸣器发出不同的声音,甚至播放乐曲。OK6410蜂鸣器原理图:通过I/O 口GPF15来控制:查看s3c6410芯片手册,端口M对应的三个寄存器地址:实

2012-08-19 15:09:56 1689 1

转载 s3c6410 GPIO内核自带函数总结

1、查看gpio状态:头文件中int gpio_request(unsigned gpio, const char *label); ,该函数的功能是通过查看该gpio保存的记录标志是否为NULL来判断GPIO是否被占用,并把此gpio取名为*lable。                              例如:if(gpio_request(S3C64XX_GPB(0), "GPB"

2012-08-19 10:19:55 599

原创 《OK6410-LED驱动程序设计》之使用系统定义的宏

跟上一篇的类似,只不过这次我们使用系统定义好的宏来实现。好吧不多说直接上代码#include #include #include #include #include #include #include //下面这些头文件都是gpio中相关宏的定义#include #include #include #include #include #define DEVICE

2012-08-15 18:13:43 655

原创 《OK6410-LED驱动程序设计》之使用ioremap实现访问CPU寄存器

Ok6410开发板LED连接电路图:           从电路图上我们可以看到,发光二极管LED 的一端连接到了ARM 的GPIO,另一端经过一个限流电阻接电源VCC3。当GPIO 口为低电平时,LED 两端产生电压降,这时LED 有电流通过并发光。反之当GPIO 为高电平时,LED 将熄灭。注意亮灭之间要有一定的延时,以便人眼能够区分出来。4个LED分别连接到核心板上的GP

2012-08-14 15:43:31 825

原创 设备Ioctl控制

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

2012-08-10 22:16:49 655

原创 字符设备驱动程序

1.知识点  设备号、创建设备文件、设备注册、重要数据结构、设备操作2.主次设备号字符设备通过字符设备文件来存取。字符设备文件由使用 ls -l 的输出的第一列的“c”标识。如果使用 ls -l 命令, 会看到在设备文件项中有 2 个数(由一个逗号分隔) 这些数字就是设备文件的主次设备编号。(举例察看ls -l /dev)        2.1设备号作用

2012-08-08 19:14:47 373

原创 linux系统调用

1.定义       一般情况下,用户进程是不能访问内核的。它既不能访问内核中的数据,也不能调用内核中的函数。但系统调用是一个例外。Linux内核中设置了一组用于实现各种系统功能的函数,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。2.和函数调用的区别       系统调用和普通的函数调用非常相似,区别仅仅在于,系统调用由操作系统内核实现,运行于内核态;而普通的

2012-08-06 22:46:31 487

原创 linux进程控制

1.定义                     程序是存放在磁盘上的一系列代码和数据 的可执行映像,是一个静止的实体。             进程是一个执行中的程序。它是动态的实体。             在操作系统中的定义:可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位2.进程四要素           (1) 有一段程

2012-08-06 14:38:46 675

原创 Linux内核定时器基础

1.度量时间差         时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数,可配置(50-1200),在X86平台,默认值为1000。    每当时钟中断发生时,全局变量jiffies(unsigned long)就加1,因此jiffies记录了自linux启动后时钟中断发生的次数。驱动程序常利用jiffies来计算不同事

2012-08-06 13:43:43 350

原创 内核链表基础

1.简介链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个

2012-08-06 13:17:23 291

原创 内核模块基础

Linux内核是个很庞大的东西,要全部了解清楚是很难的,所以我们所做的内核上的开发也是为驱动做一些基本的准备。 一、内核模块的特点    a)        不会被编译进内核之中,这样的话可以尽可能的控制Linux内核的大小。    b)        在内核运行期间,可以动态的进行加载或卸载。 二、相关函数的介绍   a)        m

2012-08-06 12:53:23 569

原创 执行make menuconfig错误

root@ubuntu:/forlinx/linux2.6.28# make menuconfigscripts/kconfig/mconf arch/arm/KconfigYour display is too small to run Menuconfig!It must be at least 19 lines by 80 columns.make[1]: *** [menu

2012-04-06 20:52:12 1665

安徽工业大学2011年《Linux程序设计试卷》

安徽工业大学2011年《Linux程序设计试卷》

2012-06-23

UML与软件建模实验报告

安徽工业大学胡增涛老师的UML与软件建模实验报告

2012-06-23

微机原理与接口技术实验报告

安徽工业大学陆勤老师的微机原理与接口技术实验报告

2012-06-23

编译原理实验报告

王森玉老师的实验原理报告,有求FIRST集合的、FOLLOW集合的,里面有详细代码供参考

2012-06-23

空空如也

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

TA关注的人

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