Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux模块编程机制之hello kernel

Linux模块编程机制之hello kernel

看了那么多理论知识,可能还是一头雾水,是啊,纯理论分析本来就不好理解。为了更好的理解Linux内核各种内部机制以及其运用,在接下来的学习中将采用理论+实验+源码注释的方式进行。包括算法、原理的实验,内核的局部扩展与修改等。Linux内核编程有很多方法,最方便的方式是使用内核提供的模块编程机制,另一种方式是以补丁的方式,这种方式只需要编译一次内核,当然也可以直接修改内核源码,但是每次修改后都需要重新编译、引导、重启,很麻烦,也很费时。首先,我们看看最方便快捷...
写出健壮的 Bash 脚本

写出健壮的 Bash 脚本

许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分。不幸的是,shell脚本在运行异常时会受到非常大的影响。在写脚本时将这类问题最小化是十分必要的。本文中我将介绍一些让bash脚本变得健壮的技术。使用set -u你因为没有对变量初始化而使脚本崩溃过多少次?对于我来说,很多次。chroot=$1...rm -rf $chroot/usr/share/doc如果上面的代码你没有给参数就运行,你不会仅仅删除掉chroot中的文档,而是将系统的所有...
Play 2.0 的完整演示过程记录

Play 2.0 的完整演示过程记录

介绍 Play 框架最好的方法就是给一个完整的演示步骤让你看看 Play 到底有多简单。本演示使用最新的 Play 2.0 Beta 版。本文是在 Linux 环境下进行,如果你使用的 Windows,那会有一些小区别,例如路径和环境变量的设置等等,请自行解决。废话少说,下面我们开始:1. 下载并安装1$ wget http://download.playframework.org/releases/play-2.0-beta.zip 2$ unzip -...
C语言经典题目:水仙花数

C语言经典题目:水仙花数

题目:打印出100-999以内的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。可以用3个数分别代表水仙花数的百位、十位、个位。程序源代码:#include<stdio.h> intmain(){inti,j,k;for(i=1;i<=9;i++)for(...
C语言经典题目:百钱买百鸡

C语言经典题目:百钱买百鸡

百钱买百鸡问题公元钱五世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?分析:假设公鸡有x只,母鸡y只,小鸡z只。那x+y+z==100,且根据价格5*x+3*y+z/3==100。只要满足上面的两个等式的数量就行。我们可以利用C语言3重循环来穷举所有的答案。但是鸡的数目都是正整数,z/3可能会产生小数。所以不妨设买小鸡所用的钱为变量。不妨设公鸡数为int cock...
C语言文件定位相关函数

C语言文件定位相关函数

文件中有一个位置指针,指向当前读写的位置,在顺序读写一个文件的过程中,没读写一个字符,位置指针自动滑向下一个字符位置。可以移动这个位置指针,达到随即读写目的。下面是几个和文件定位有关的函数。1.rewind(fp);fp为文件指针。返回值为void 即无返回值该函数的作用是使位置指针重新返回文件的开头。2.feek(fp,位移量,起始点);fp是文件指针;位移量:以起始点为基准向前滑动的字节数。位移量小于0则表示向后滑。ANSI C和大多数C版本要求位移量...
一步一步实现Linux下Ping命令

一步一步实现Linux下Ping命令

ICMP协议是Internet控制报文协议,通常被认为是IP层的组成部分。它传递差错报文以及其它需要注意的信息。ICMP协议通常被IP层或更高层协议使用。Ping命令是ICMP协议的一个使用范例。Ping命令主要是用于测试一台主机和另外一台主机之间的网络连通性。主要的过程就是Ping程序通过发送回显请求报文,然后接收远程主机的回显应答报文,通过分析回显应答报文就可知道两台主机的网络连通性。 ICMP数据报首部如下 | 类型(0或8) | 代码(0)...
S3C6410的PWM驱动实例

S3C6410的PWM驱动实例

我们使用PWM来控制蜂鸣器,主要是两种功能,一是使能蜂鸣器,并设置其频率;二是禁止蜂鸣器。这些操作均可通过ioctl来完成。所以在pwm的设备驱动中,主要也就是ioctl这个函数。首先,我们要定义两个命令,用在ioctl函数中的switch语句中,至于怎么来定义这两个命令呢?其实简单的做法,我们可以将其定义为两个不同的常量,能用在switch语句中即可,但是这样会造成一定的问题。例如,其他的设备也有支持设个命令的,例如串口支持设置波特率等,很有可能在写代码...
S3C6410的PWM部分

S3C6410的PWM部分

在分析PWM驱动的实现之前,我们需要看看6410的芯片手册中有关PWM章节,知道PWM的产生方式和控制方法,知道相关的一些寄存器才能知道设置那些寄存器,都应该赋什么值,下面就是其中的一部分,主要是芯片手册的内容,没写有关PWM的全部,主要是我们稍候的PWM驱动主要是针对蜂鸣器的使用,所以选取了相关的内容,感兴趣的可以自己去阅读芯片手册。这一章主要是讲述S3C6410X RISC微处理器内部的PWM TIMER的功能和用法。相关阅读:S3C6410的PWM驱...
<< 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 >>