内核开发
文章平均质量分 78
liye0005
这个作者很懒,什么都没留下…
展开
-
执行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 · 1705 阅读 · 0 评论 -
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 · 623 阅读 · 0 评论 -
《OK6410-LED驱动程序设计》之使用ioremap实现访问CPU寄存器
Ok6410开发板LED连接电路图: 从电路图上我们可以看到,发光二极管LED 的一端连接到了ARM 的GPIO,另一端经过一个限流电阻接电源VCC3。当GPIO 口为低电平时,LED 两端产生电压降,这时LED 有电流通过并发光。反之当GPIO 为高电平时,LED 将熄灭。注意亮灭之间要有一定的延时,以便人眼能够区分出来。4个LED分别连接到核心板上的GP原创 2012-08-14 15:43:31 · 849 阅读 · 0 评论 -
《OK6410-LED驱动程序设计》之使用系统定义的宏
跟上一篇的类似,只不过这次我们使用系统定义好的宏来实现。好吧不多说直接上代码#include #include #include #include #include #include #include //下面这些头文件都是gpio中相关宏的定义#include #include #include #include #include #define DEVICE原创 2012-08-15 18:13:43 · 672 阅读 · 0 评论 -
设备Ioctl控制
1.ioctl的功能 大部分驱动除了需要具备读写设备的能力外,还需要具备对硬件控制的能力。例如,要求设备报告错误信息,改变波特率,这些操作常常通过ioctl方法来实现。 用户使用方法 在用户空间,使用ioctl 系统调用来控制设备,原型如下: int ioctl(int fd,uns原创 2012-08-10 22:16:49 · 678 阅读 · 0 评论 -
字符设备驱动程序
1.知识点 设备号、创建设备文件、设备注册、重要数据结构、设备操作2.主次设备号字符设备通过字符设备文件来存取。字符设备文件由使用 ls -l 的输出的第一列的“c”标识。如果使用 ls -l 命令, 会看到在设备文件项中有 2 个数(由一个逗号分隔) 这些数字就是设备文件的主次设备编号。(举例察看ls -l /dev) 2.1设备号作用原创 2012-08-08 19:14:47 · 386 阅读 · 0 评论 -
linux系统调用
1.定义 一般情况下,用户进程是不能访问内核的。它既不能访问内核中的数据,也不能调用内核中的函数。但系统调用是一个例外。Linux内核中设置了一组用于实现各种系统功能的函数,称为系统调用。用户可以通过系统调用命令在自己的应用程序中调用它们。2.和函数调用的区别 系统调用和普通的函数调用非常相似,区别仅仅在于,系统调用由操作系统内核实现,运行于内核态;而普通的原创 2012-08-06 22:46:31 · 507 阅读 · 0 评论 -
linux进程控制
1.定义 程序是存放在磁盘上的一系列代码和数据 的可执行映像,是一个静止的实体。 进程是一个执行中的程序。它是动态的实体。 在操作系统中的定义:可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位2.进程四要素 (1) 有一段程原创 2012-08-06 14:38:46 · 689 阅读 · 0 评论 -
内核链表基础
1.简介链表是一种常用的数据结构,它通过指针将一系列数据节点连接成一条数据链。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。通常链表数据结构至少包含两个域:数据域和指针域,数据域用于存储数据,指针域用于建立与下一个节点的联系。按照指针域的组织以及各个原创 2012-08-06 13:17:23 · 308 阅读 · 0 评论 -
Linux内核定时器基础
1.度量时间差 时钟中断由系统的定时硬件以周期性的时间间隔产生,这个间隔(即频率)由内核根据HZ来确定,HZ是一个与体系结构无关的常数,可配置(50-1200),在X86平台,默认值为1000。 每当时钟中断发生时,全局变量jiffies(unsigned long)就加1,因此jiffies记录了自linux启动后时钟中断发生的次数。驱动程序常利用jiffies来计算不同事原创 2012-08-06 13:43:43 · 364 阅读 · 0 评论 -
内核模块基础
Linux内核是个很庞大的东西,要全部了解清楚是很难的,所以我们所做的内核上的开发也是为驱动做一些基本的准备。 一、内核模块的特点 a) 不会被编译进内核之中,这样的话可以尽可能的控制Linux内核的大小。 b) 在内核运行期间,可以动态的进行加载或卸载。 二、相关函数的介绍 a) m原创 2012-08-06 12:53:23 · 592 阅读 · 0 评论 -
《OK6410-蜂鸣器驱动程序设计》之阻塞型字符设备
蜂鸣器是通过I/O 口GPF15来间接控制的,为了增加驱动能力,增加了三级管驱动电路。当三极管的基极(B)为高电平即GPF15 为高电平时,蜂鸣器会鸣叫,反之则不响。通过设置两者之间的时间(即改变频率)可以使蜂鸣器发出不同的声音,甚至播放乐曲。OK6410蜂鸣器原理图:通过I/O 口GPF15来控制:查看s3c6410芯片手册,端口M对应的三个寄存器地址:实原创 2012-08-19 15:09:56 · 1705 阅读 · 1 评论