自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 2021-04-11

8.Linux设备驱动中的阻塞和非阻塞I/O8.1.堵塞与非堵塞IO8.1.1.阻塞阻塞操作是指再执行设备操作时,若不能获得资源,则挂起进程直到满足操作所需的条件后再进行操作,被挂起的进程进入休眠状态(不占用CPU资源),从调度器的运行队列转移到等待队列,直到条件满足。8.1.2. 非堵塞非阻塞操作是指在进行设备操作时,若操作条件不满足并不会挂起,而是直接返回或重新查询(一直占用CPU资源)直到操作条件满足为止。当用户空间的应用程序调用read(), write()等方法时,若设备的资源不能被获

2021-04-11 11:12:13 77

原创 2021-04-11

7.Linux设备驱动的并发控制并发(concurrency)------指的是多个执行单元同时、并行被执行竞态(race conditions)-------并发的多个执行单元对共享资源的不合顺序地访问,两个以上线程在同一个临界区内同时执行共享资源-----硬件资源和软件上的全局变量、静态变量等解决竞态问题-------保证共享资源互斥访问互斥访问------指一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问实现互斥访问------用中断屏蔽、原子操作、自旋锁和信号量等机制对临界区进

2021-04-11 11:11:21 87

原创 2021-04-11

6.字符设备驱动6.1. Linux 字符设备驱动结构6.1.1.cdev结构体cdev结构体描述一个字符设备struct cdev {struct kobject kobj; //内嵌的kobject对象struct module *owner; //所属模块const struct file_operations *ops;//文件操作结构struct list_head list;dev_t dev; //设备号,int 类型unsigned int coun

2021-04-11 11:10:02 84

原创 2021-04-11

5.Linux文件系统与设备文件5.1. Linux文件操作5.1.1.文件操作系统的调用Linux的文件操作系统调用涉及创建、打开、读写和关闭文件。1.创建int create(const char *filename, mode_t mode)参数mode指定新文件的存取权限,它同umask一起决定文件的最终权限(mode&umask),其中,umask代表了文件在创建时需要去掉的一些存取权限。umask代表了文件在创建时需要去掉的一些存取权限。umask可以通过系统调用umask(

2021-04-11 11:08:21 66

原创 2021-04-11

4.Linux内核模块4.1.Linux内核模块Linux提供了一种被叫为模块(Module)的机制。模块具有以下特点:模块本身不被编译如内核镜像,从而控制内核大小。模块一旦被加载,它就和内核中的其他部分一样。例子:这个简单的内核模块只包含内核模块加载函数、卸载函数和对GPL v2许可权限的声明以及一些可描述信息,在编写一个Makefile函数。运行make命令就可以得到模块直接在PC上运行。(CURDIR是make的内嵌变量,自动设置为当前目录)如果模块包括多个.c文件(如file1.c、f

2021-04-11 10:53:40 39

原创 2021-04-11

3.Linux内核及内核驱动编程3.1.Linux 内核的发展与演变Linux 操作系统诞生于 1991 年 10 月 5 日(第一次正式向外公布的时间)。 Linux 操作系统的诞生、发展和成长过程依赖于 UNIX 操作系统、 MINIX 操作系统、 GNU 计划、 POSIX 标准和 Internet。3.1.1.UNIX 操作系统UNIX 操作系统是美国贝尔实验室的 Ken. Thompson和 Dennis Ritchie于 1969 年在 DEC PDP-7 小型计算机上开发的一个分时操作

2021-04-11 10:52:26 223

原创 2021-04-11

2.驱动设计的硬件基础2.1.处理器2.1.1.处理器–通用处理器目前主流的通用处理器(GPP)多采用 SoC(片上系统)的芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,ARM 主控芯片的集成度非常高,除了集成多核 ARM 以外,还可能集成图形处理器、视频编解码器、浮点协处理器、GPS、WiFi、蓝牙、基带、Camera 等一系列功能。中央处理器的体系结构可以分为两类:1.冯·诺依曼结构:ARM的ARM7、MIPS公司的M

2021-04-11 10:39:04 161

原创 2021-03-05

C与指针课后习题答案一、编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面要加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。#include<stdio.h>int main(){ int ch,n=1; while(1) { ch=getchar(); if(ch=='\n') { printf(":%d",n); n++; } putchar(ch); } return 0;}二、编写一个

2021-04-11 10:38:10 65

原创 2021-04-11

2.驱动设计的硬件基础2.1.处理器2.1.1.处理器–通用处理器目前主流的通用处理器(GPP)多采用 SoC(片上系统)的芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,ARM 主控芯片的集成度非常高,除了集成多核 ARM 以外,还可能集成图形处理器、视频编解码器、浮点协处理器、GPS、WiFi、蓝牙、基带、Camera 等一系列功能。中央处理器的体系结构可以分为两类:1.冯·诺依曼结构:ARM的ARM7、MIPS公司的M

2021-04-11 10:32:56 299

原创 2021-04-11

2.驱动设计的硬件基础2.1.处理器2.1.1.处理器–通用处理器目前主流的通用处理器(GPP)多采用 SoC(片上系统)的芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,ARM 主控芯片的集成度非常高,除了集成多核 ARM 以外,还可能集成图形处理器、视频编解码器、浮点协处理器、GPS、WiFi、蓝牙、基带、Camera 等一系列功能。中央处理器的体系结构可以分为两类:1.冯·诺依曼结构:ARM的ARM7、MIPS公司的M

2021-04-11 10:31:55 342

原创 2021-04-11

1.Linux 设备驱动概述及开发环境构建1.1.设备驱动的作用设备驱动是与底层硬件直接打交道,按照硬件设备的具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存的映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据1.2.无操作系统的驱动在单任务的系统中,虽然不存在操作系统,但是设备驱动是必须存在的。一般情况下,对每一种设备驱动都会定义为一个软件模块,包含.h文件和.c文件,前者定义该设备驱动的数据结构并声明外部函数,后者

2021-04-11 10:27:25 60

原创 2021-02-28

SPI模块设计文档一、硬件模块学习1.SPI总线概述SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多

2021-02-28 19:36:23 352

转载 2021-02-21

柔性数组(摘抄自 公众号:C语言与CPP编程)一、引言1.定长数组包在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024。:结构体如下(示例):// 定长缓冲区struct max_buffer{ int len; char data[MAX_LENGTH];};数据结构大小>= sizeof(int) + sizeof(char) * MAX_LENGTH 为了为了防止数据溢出的情况,data 的长度

2021-02-21 11:05:18 81

原创 2020-09-01

嵌入式系统知识总结本文主要记录嵌入式的一些基础知识1.嵌入式系统的定义(1) 定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)嵌入式系统发展的四个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向Internet阶段。(3)知识产权核(IP核):具有知识产权的、功能具体、接口规范、可以在多个集成电路设计中重复使用的模块,是实现系统芯片(SOC)的基本构件。(4)IP核模块有行为、结构和物理3级不同程度的

2020-09-13 15:34:15 103

原创 ARM汇编基础

ARM汇编基础GNU 汇编语法GNU 汇编语法适用于所有的架构,并不是 ARM 独享的,GNU 汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分,如下:label: instruction@commentlabel 即标号,表示地址位置,有些指令前面可能会有标号,这样就可以通过这个标号得到指令的地址,标号也可以用来表示数据地址。注意 label 后面的“:”,任何以“:”结尾的标识符都会被识别为一个标号。instruction 即指令,也就是汇编指令或伪指令。@符号,

2020-08-12 07:34:51 344

空空如也

空空如也

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

TA关注的人

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