自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ryze的博客

无极之道

  • 博客(48)
  • 资源 (11)
  • 收藏
  • 关注

转载 高级Bash脚本编程指南(2):Shell特殊字符

高级Bash脚本编程指南(2):Shell特殊字符成于坚持,败于止步注释表示注释在引号中间和#等表示#本身3.echo ${PATH#*:} # 参数替换,不是一个注释4.echo $(( 2#101011 )) # 数制转换,不是一个注释; 分隔1.命令分隔,在一行中写多个命令 echo “aa” ; echo “bb”2.在条件中的if和then如果放在同一行,也...

2019-04-30 14:03:39 508

转载 高级Bash脚本编程指南(1):从一个简单的script出发

高级Bash脚本编程指南:从一个简单的script出发成于坚持,败于止步开始shell脚本编程学习,路途遍布荆棘啊,O(∩_∩)O~,开始吧,这是“高级Bash脚本编程指南”为我们量身打造的“HelloWorld”,其实也不算,因为这个只是我们无比熟悉的命令的堆叠嘛!O(∩_∩)O清除/var/log下的log文件清除,当然要使用root身份来运行这个脚本.cd /var/logcat...

2019-04-30 13:56:28 255

转载 Linux设备驱动开发详解-Note(19)---Linux 设备驱动中的异步通知与异步 I/O(2)

Linux 设备驱动中的异步通知与异步 I/O(2)成于坚持,败于止步Linux 2.6 异步 I/OAIO 概念与 GNU C 库函数Linux 系统中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解决方案,因为调用应用程序在等待 I/O 请求完成时不需要使用任何中央处理单元(CPU)。但是在某些情况下,...

2019-04-30 13:38:28 291

转载 Linux设备驱动开发详解-Note(18)---Linux 设备驱动中的异步通知与异步 I/O(1)

Linux 设备驱动中的异步通知与异步 I/O(1)成于坚持,败于止步异步通知的概念与作用阻塞与非阻塞访问、poll()函数提供了较好的解决设备访问的机制,但是如果有了异步通知整套机制就更加完整了。异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步 I/O”。信号是在软件层次上对中...

2019-04-30 13:37:40 256

转载 Linux设备驱动开发详解-Note(17)---Linux 设备驱动中的阻塞与非阻塞 I/O(2)

Linux 设备驱动中的阻塞与非阻塞 I/O(2)成于坚持,败于止步轮询操作轮询的概念与作用在用户程序中,select()和 poll()也是与设备阻塞与非阻塞访问息息相关的论题。使用非阻塞 I/O 的应用程序通常会使用 select()和 poll()系统调用查询是否可对设备进行无阻塞的访问。select()和 poll()系统调用最终会引发设备驱动中的 poll()函数被执行,在 2....

2019-04-30 13:37:01 164

转载 Linux设备驱动开发详解-Note(16)---Linux 设备驱动中的阻塞与非阻塞 I/O(1)

Linux 设备驱动中的阻塞与非阻塞 I/O(1)成于坚持,败于止步阻塞与非阻塞 I/O阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。被挂起的进程进入休眠状态,被从调度器的运行队列移走,直到等待的条件被满足。而非阻塞操作的进程在不能进行设备操作时并不挂起,它或者放弃,或者不停地查询,直至可以进行操作为止。驱动程序通常需要提供这样的能力:当应用程序...

2019-04-30 13:36:26 191

转载 Linux设备驱动开发详解-Note(15)--- Linux 设备驱动中的并发控制(2)

Linux 设备驱动中的并发控制(2)成于坚持,败于止步信号量信号量的使用信号量(semaphore)是用于保护临界区的一种常用方法,它的使用方式和自旋锁类似。与自旋锁相同,只有得到信号量的进程才能执行临界区代码。但是,与自旋锁不同的是,当获取不到信号量时,进程不会原地打转而是进入休眠等待状态。 Linux 系统中与信号量相关的操作主要有如下 4 种。1.定义信号量下列代码定义名称为 ...

2019-04-30 13:35:39 295

转载 Linux设备驱动开发详解-Note(14)--- Linux 设备驱动中的并发控制(1)

Linux 设备驱动中的并发控制(1)成于坚持,败于止步并发与竞态并发(concurrency)指的是多个执行单元同时、并行被执行,而并发的执行单元对共享资源(硬件资源和软件上的全局变量、静态变量等)的访问则很容易导致竞态(race conditions)。例如,对于 globalmem 设备,假设一个执行单元 A 对其写入 3000个字符“a”,而另一个执行单元 B 对其写入 4000 ...

2019-04-30 13:34:57 291

转载 Linux设备驱动开发详解-Note(13)--- 字符设备驱动(2)

字符设备驱动(2)成于坚持,败于止步globalmem程序源码#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/errno.h>#include <linux/mm.h>#include <lin...

2019-04-30 13:32:40 261

转载 字符设备驱动(1)

字符设备驱动(1)成于坚持,败于止步Linux 字符设备驱动结构cdev 结构体在 Linux 2.6 内核中使用 cdev 结构体描述字符设备,cdev 结构体的定义如代码所示。1 struct cdev2 {3 struct kobject kobj; /* 内嵌的 kobject 对象 */4 struct module *owner; /所属模块/5 ...

2019-04-28 10:11:08 198

转载 Linux 文件系统与设备文件系统(3)

Linux 文件系统与设备文件系统(3)成于坚持,败于止步sysfs 文件系统与 Linux 设备模型1.sysfs 文件系统Linux 2.6 内核引入了 sysfs 文件系统,sysfs 被看成是与 proc、devfs 和 devpty 同类别的文件系统,该文件系统是一个虚拟的文件系统,它可以产生一个包括所有系统硬件的层级视图,与提供进程和状态信息的 proc 文件系统十分类似。s...

2019-04-28 10:10:21 440

转载 Linux 文件系统与设备文件系统(2)

Linux 文件系统与设备文件系统(2)成于坚持,败于止步Linux 文件系统目录结构进入 Linux 根目录(即“/”,Linux 文件系统的入口,也是处于最高一级的目录),运行“ls –l”命令,可以看到 Linux 系统包含以下目录。1./bin包含基本命令,如 ls、cp、mkdir 等,这个目录中的文件都是可执行的。2./bootLinux 系统的内核及引导系统程序所需要的...

2019-04-28 10:09:27 258

转载 Linux 文件系统与设备文件系统(1)

Linux 文件系统与设备文件系统(1)成于坚持,败于止步文件操作的相关系统调用Linux 的文件操作系统调用(在 Windows 编程领域,习惯称操作系统提供的接口为 API)涉及创建、打开、读写和关闭文件。1.创建int creat(const char *filename, mode_t mode);参数 mode 指定新建文件的存取权限,它同 umask 一起决定文件的最终权限...

2019-04-28 10:08:38 198

转载 Linux 内核模块(2)

Linux 内核模块(2)成于坚持,败于止步模块加载函数Linux 内核模块加载函数一般以_ _init 标识声明,典型的模块加载函数的形式如代码所示:1 static int _ _init initialization_function(void)2 {3 /* 初始化代码 */4 }5 module_init(initialization_function...

2019-04-28 10:07:52 271

转载 Linux 内核模块(1)

Linux 内核模块(1)成于坚持,败于止步Linux 内核模块简介Linux 内核的整体结构非常庞大,其包含的组件也非常多。我们怎样把需要的部分都包含在内核中呢?一种方法是把所有需要的功能都编译到 Linux 内核。这会导致两个问题,一是生成的内核会很大,二是如果我们要在现有的内核中新增或删除功能,将不得不重新编译内核。有没有一种机制使得编译出的内核本身并不需要包含所有功能,而在这些功...

2019-04-28 10:07:08 167

转载 Linux 内核及内核编程(2)

Linux 内核及内核编程(2)成于坚持,败于止步Linux 下的C编程举例零长度数组GNU C 允许使用零长度数组,在定义变长对象的头结构时,这个特性非常有用。例如:struct var_data{int len;char data[0];};char data[0]仅仅意味着程序中通过 var_data 结构体实例的 data[index]成员可以访问 len 之后的第 i...

2019-04-28 10:06:28 208

转载 Linux 内核及内核编程(1)

Linux 内核及内核编程(1)成于坚持,败于止步Linux 2.6 内核的特点Linux 2.6 相对于 Linux 2.4 有相当大的改进,主要体现在如下几个方面。1.新的调度器2.6 版本的 Linux 内核使用了新的进程调度算法,它在高负载的情况下执行得极其出色,并且当有很多处理器时也可以很好地扩展。2.内核抢占在 2.6 版本的 Linux 内核中,内核任务可以被抢占,从而...

2019-04-28 10:05:00 129

转载 驱动设计的硬件基础(2)

驱动设计的硬件基础(2)成于坚持,败于止步接口与总线串口RS-232、RS-422 与 RS-485 都是串行数据接口标准,最初都是由电子工业协会(EIA)制定并发布的。 RS-232 在 1962 年发布,命名为 EIA-232-E。之后发布的 RS-422 定义了一种平衡通信接口,它是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。RS-422 改...

2019-04-28 10:03:25 171

转载 驱动设计的硬件基础(1)

成于坚持,败于止步处理器分类不做过多说明,处理器类型很多,大同小异存储器存储器可分为只读储存器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光介质存储器和磁介质存储器。ROM 还可再细分为不可编程 ROM、可编程 ROM(PROM)、可擦除可编程 ROM(EPROM)和电可擦除可编程 ROM(E2PROM),E2PROM 完全可以用软件来擦写,已经非常方便了。目前 ROM ...

2019-04-28 10:02:24 225

转载 驱动设计的硬件基础(2)

驱动设计的硬件基础(2)成于坚持,败于止步接口与总线串口RS-232、RS-422 与 RS-485 都是串行数据接口标准,最初都是由电子工业协会(EIA)制定并发布的。 RS-232 在 1962 年发布,命名为 EIA-232-E。之后发布的 RS-422 定义了一种平衡通信接口,它是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A 标准。RS-422 改...

2019-04-26 11:26:48 326

转载 驱动设计的硬件基础(1)

驱动设计的硬件基础(1)成于坚持,败于止步处理器分类不做过多说明,处理器类型很多,大同小异存储器存储器可分为只读储存器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光介质存储器和磁介质存储器。ROM 还可再细分为不可编程 ROM、可编程 ROM(PROM)、可擦除可编程 ROM(EPROM)和电可擦除可编程 ROM(E2PROM),E2PROM 完全可以用软件来擦写,已经非...

2019-04-26 11:23:41 249

转载 设备驱动概述(2)

设备驱动概述(2)成于坚持,败于止步Linux 设备驱动设备的分类及特点计算机系统的硬件主要由 CPU、存储器和外设组成。随着 IC 制造工艺的发展,目前,芯片的集成度越来越高,往往在 CPU 内部就集成了存储器和外设适配器。ARM、PowerPC、MIPS 等处理器都集成了 UART、I2C 控制器、USB 控制器、SDRAM 控制器等,有的处理器还集成了片内 RAM 和 Flash。...

2019-04-26 11:22:59 239

转载 设备驱动概述(1)

设备驱动概述(1)成于坚持,败于止步设备驱动的作用任何一个计算机系统的运行都是系统中软硬件协作的结果,没有硬件的软件是空中楼阁,而没有软件的硬件则只是一堆废铁。硬件是底层基础,是所有软件得以运行的平台,代码最终会落实为硬件上的组合逻辑与时序逻辑;软件则实现了具体应用,它按照各种不同的业务需求而设计,满足了用户的需求。硬件较固定,软件则很灵活,可以适应各种复杂多变的应用。可以说,计算机系统的软...

2019-04-26 11:21:40 360

转载 Daily-C-Study(24):C语言内存管理

Daily-C-Study(24):C语言内存管理成于坚持,败于止步欢迎您进入这片雷区。我欣赏能活着走出这片雷区的高手,但更欣赏“粉身碎骨浑不怕,不留地雷在人间”的勇者。请您不要把这当作一个扫雷游戏,因为没有人能以游戏的心态取胜。把它称作雷区,赞一个,O(∩_∩)O~那到底什么是野指针呢?怎么去理解这个“野”呢?我们先看别的两个关于“野”的词:野孩子:没人要,没人管的孩子;行为动作不守规...

2019-04-26 10:56:27 195

转载 Daily-C-Study(23):C语言数组应用

Daily-C-Study(23):C语言数组应用成于坚持,败于止步一、数组的内存布局先看下面的例子:int a[5];所有人都明白这里定义了一个数组,其包含了5 个int 型的数据。我们可以用a[0],a[1]等来访问数组里面的每一个元素,那么这些元素的名字就是a[0],a[1]…吗?看下面的示意图:如上图所示,当我们定义一个数组a 时,编译器根据指定的元素个数和元素的类型分配确定大...

2019-04-26 10:55:30 144

转载 Daily-C-Study(22):C语言指针

Daily-C-Study(22):C语言指针成于坚持,败于止步一、指针的内存布局先看下面的例子:int *p;大家都知道这里定义了一个指针p。但是p 到底是什么东西呢?还记得第一章里说过,“任何一种数据类型我们都可以把它当一个模子”吗?p,毫无疑问,是某个模子咔出来的。我们也讨论过,任何模子都必须有其特定的大小,这样才能用来“咔咔咔”。那咔出p 的这个模子到底是什么样子呢?它占多大的...

2019-04-26 10:54:51 177

转载 Daily-C-Study(21):C语言#和##运算符

Daily-C-Study(21):C语言#和##运算符成于坚持,败于止步#也是预处理?是的,你可以这么认为。那怎么用它呢? 别急,先看下面例子:#define SQR(x) printf(“The square of x is %d.\n”, ((x)*(x)));如果这样使用宏:SQR(8);则输出为:The square of x is 64.注意到没有,引号中的字符x 被当...

2019-04-26 10:54:01 146

转载 Daily-C-Study(20):C语言#pragma预处理

Daily-C-Study(20):C语言#pragma预处理成于坚持,败于止步在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma 指令对每个编译器给出了一个方法,在保持与C 和C ++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。...

2019-04-26 10:53:23 133

转载 Daily-C-Study(19):C语言#line预处理

Daily-C-Study(19):C语言#line预处理成于坚持,败于止步#line 的作用是改变当前行数和文件名称,它们是在编译程序中预先定义的标识符命令的基本形式如下:#line number[“filename”]其中[]内的文件名可以省略。例如:#line 30 a.h(其中,文件名a.h 可以省略不写)#line指令改变__LINE__和__FILE__的内容。__LINE...

2019-04-26 10:52:34 287

转载 Daily-C-Study(19):C语言#line预处理

Daily-C-Study(19):C语言#line预处理成于坚持,败于止步#line 的作用是改变当前行数和文件名称,它们是在编译程序中预先定义的标识符命令的基本形式如下:#line number[“filename”]其中[]内的文件名可以省略。例如:#line 30 a.h(其中,文件名a.h 可以省略不写)#line指令改变__LINE__和__FILE__的内容。__LINE...

2019-04-25 13:25:50 122

转载 Daily-C-Study(18):C语言#error预处理

Daily-C-Study(18):C语言#error预处理成于坚持,败于止步#error 预处理指令的作用是,编译程序时,只要遇到#error 就会生成一个编译错误提示消息,并停止编译。其语法格式为:#error error-message注意,宏串error-message 不用双引号包围。遇到#error 指令时,错误信息被显示,可能同时还显示编译程序作者预先定义的其他内容。该预处...

2019-04-25 13:25:10 171

转载 Daily-C-Study(17):C语言文件包含#include

Daily-C-Study(17):C语言文件包含#include成于坚持,败于止步文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。C语言提供#include 命令来实现文件包含的操作,它实际是宏替换的延伸,有两种格式:一、#include 其中,filename 为要包含的文件名称,用尖括号括起来,也称为头文件,表示预处理到系统规定的...

2019-04-25 13:24:40 380

转载 Daily-C-Study(16):C语言条件编译#ifdef

Daily-C-Study(16):C语言条件编译#ifdef成于坚持,败于止步在讲define预处理指令的时候,忘记去说明预处理指令在c语言中到底担当的是什么样的角色,这里花点时间说一下:预处理过程扫描源代码,对其进行初步的转换,产生新的源代码提供给编译器。可见预处理过程先于编译器对源代码进行处理。在C语言中,并没有任何内在的机制来完成如下一些功能:在编译时包含其他源文件、定义宏、根据条...

2019-04-25 13:24:06 175

转载 Daily-C-Study(15):C语言宏定义#define

Daily-C-Study(15):C语言宏定义#define成于坚持,败于止步一、数值宏常量#define 宏定义是个演技非常高超的替身演员,但也会经常耍大牌的,所以我们用它要慎之又慎。它可以出现在代码的任何地方,从本行宏定义开始,以后的代码就就都认识这个宏了;也可以把任何东西定义成宏。因为编译器会在预编译的时候用真身替换替身,而在我们的代码里面却又用常常用替身来帮忙。看例子:#defi...

2019-04-25 13:23:23 166

转载 Daily-C-Study(14):C语言sizeof关键字

Daily-C-Study(14):C语言sizeof关键字成于坚持,败于止步常年被人误认为函数。sizeof 是关键字不是函数,其实就算不知道它是否为32 个关键字之一时,我们也可以借助编译器确定它的身份。看下面的例子:int i=0;A),sizeof(int); B),sizeof(i); C),sizeof int; D),sizeof i;毫无疑问,32 位系统下A),B)的...

2019-04-25 13:22:40 174

转载 Daily-C-Study(13):c语言变量及命名

Daily-C-Study(13):c语言变量及命名C 语言包含的数据类型如下图所示:一、数据类型与“模子”short、int、long、char、float、double 这六个关键字代表C 语言里的六种基本数据类型。怎么去理解它们呢? 举个例子:见过藕煤球的那个东西吧?(没见过?煤球总见过吧)。那个东西叫藕煤器,拿着它在和好的煤堆里这么一咔,一个煤球出来了。半径12cm,12 个孔。不...

2019-04-25 13:21:42 156

转载 Daily-C-Study(12):C语static关键字

Daily-C-Study(12):C语static关键字成于坚持,败于止步不要误以为关键字static 很安静,其实它一点也不安静。这个关键字在C 语言里主要有两个作用,C++对它进行了扩展。一、修饰变量第一个作用:修饰变量。变量又分为局部和全局变量,但它们都存在内存的静态区。静态全局变量,作用域仅限于变量被定义的文件中,其他文件即使用extern 声明也没法使用他。准确地说作用域是从...

2019-04-25 13:20:57 114

转载 Daily-C-Study(11):C语言register关键字

Daily-C-Study(11):C语言register关键字成于坚持,败于止步这里还是稍微先一下auto这个关键字吧auto:它很宽恒大量的,你就当它不存在吧。编译器在默认的缺省情况下,所有变量都是auto 的。一语代过。。。register:这个关键字请求编译器尽可能的将变量存在CPU 内部寄存器中而不是通过内存寻址访问以提高效率。注意是尽可能,不是绝对。你想想,一个CPU 的寄存器...

2019-04-25 13:20:19 129

转载 Daily-C-Study(10):C语言关键字有哪些

Daily-C-Study(10):C语言关键字有哪些成于坚持,败于止步C 语言标准定义的32 个关键字:auto 声明自动变量,缺省时编译器一般默认为autoint 声明整型变量double 声明双精度变量long 声明长整型变量char 声明字符型变量float 声明浮点型变量short 声明短整型变量signed 声明有符号类型变量unsigned 声明无符号类型变量...

2019-04-25 13:19:41 118

转载 Daily-C-Study(9):C语言void关键字

Daily-C-Study(9):C语言void关键字成于坚持,败于止步void 有什么好讲的呢?如果你认为没有,那就没有;但如果你认为有,那就真的有。有点像“色即是空,空即是色”。一、void avoid 的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据。void 几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void 变量,看看下...

2019-04-24 17:46:37 128

python的核心编程

里面讲述了python应用中的核心开发教程。

2017-09-23

Python高手之路(法Danjou 2015)清晰完整中文扫描版

Python高手之路(法Danjou 2015)清晰完整中文扫描版

2017-09-23

QuadRS232_hs驱动

RS232驱动,里面有各种平台的usb转多串口驱动

2016-01-24

gif图片分离工具

很好用的图片分离工具,软件小好操作,不用photoshop就可以实现!

2016-01-24

指纹识别书籍

里面介绍了指纹识别的原理从粗到细,从代码例程到应用程序 都有涉及!

2016-01-24

rt_thread实时系统

国内开源的 硬实时系统 例程代码 方法 都在 !

2016-01-24

0.96OLED资料大全

里面是OLED的全部开发资料,很全

2016-01-24

notepad+代码查看工具

很好用的 代码查看工具!C代码关键字和一些与发会高亮显示!

2016-01-24

docklight+license

很好用的串口检测功能 可以设置 双串口的 发送和接受 单串口的发送和接收!

2016-01-24

空空如也

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

TA关注的人

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