自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GPIO简介与LED实验步骤

GPIO(General-purpose input/output)即通用型输入输出,GPIO可以控制连接在其之上的引脚实现信号的输入和输出。芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能。一切可以通过高低电平控制的东西都可以通过GPIO来控制,如:LED、继电器、蜂鸣器。通过数据手册分析GPIO中哪些寄存器可以控制LED(引脚细节)通过电路原理图查找LED与开发板的连接关系(引脚)通过电路原理图分析LED的控制逻辑 (高低电平)通过程序去操控对应的寄存器完成对LED的控制。

2024-08-16 19:34:23 161

原创 ARM异常处理

处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件,异常事件处理完成后再返回到被异常打断的点继续执行程序。不管几级流水线,PC指向的永远是当前正在取指的指令,而当前正在执行的指令的地址为PC-8。注意:ARM的异常向量表的及地址默认在0x00地址,但可以通过配置协处理器来修改其地址。(1)拷贝CPSR中的内容到对应异常模式下的SPSR_(4)设置PC为相应的异常向量(异常向量表对应的地址)不同的线程可以运行在不同的核心中,做到真正的并发。

2024-08-11 15:27:00 321

原创 ARM寄存器组织

CPSR寄存器分为四个域,[31:24]为条件域,用F表示、[23:16]为状态域用S表示、[15:8]为预留域用X表示、[8:0]为控制域用C表示。程序计数器,用于存储当前取址指令的地址。链接寄存器,用于跳转指令时,产生异常时。栈指针,用于存储当前模式下的栈顶地址。

2024-08-11 15:24:21 209

原创 ARM工作模式

User(用户模式):非特权模式,一般在执行上层的应用程序时ARM处于该模式。Undef(指令未定义模式):当执行未定义的指令时ARM将进入这种模式。FIQ(快速中断模式):当一个高优先级中断产生后ARM将进入这种模式。IRQ(普通中断模式):当一个低优先级中断产生后ARM将进入这种模式。SVC(超级用户模式):当复位或执行软中断指令后ARM将进入这种模式。System(系统模式):使用和User模式相同寄存器集的特权模式。User为非特权模式(权限较低),其余模式均为特权模式(权限较高)

2024-08-11 15:21:14 105

原创 ARM存储模型

所有指令在内存的起始地址必须是4的整数倍,PC值由其[32:2]决定,[1:0]位未定义。所有指令在内存的起始地址必须是2的整数倍,PC值由其[32:1]决定,[0]位未定义。Halfword型数据在内存的起始地址必须是2的整数倍。注意:即数据本身是多少位在内存存储时就应该多少位对齐。注意:即指令本身是多少位在内存存储时就应该多少位对齐。Word型数据在内存的起始地址必须是4的整数倍。低地址存放高位,高地址存放低位。低地址存放低位,高地址存放高位。注意 :ARM一般使用小端对齐。

2024-08-11 15:18:53 134

原创 ARM指令集概述

能够指示处理器执行某种运算的命令称为指令,指令在内存中以机器码(二进制)的方式存在,每一条指令都对应一条汇编,程序是指令的有序集合。处理器能识别的指令的集合称为指令集,不同架构的处理器指令集不同,指令集是处理器对开发者提供的接口。机器码(二进制)一>汇编 一一对应,不可移植。C语言>>编译器1>>X86汇编语言>>机器码。C语言>>编译器2>>ARM汇编语言>>机器码。执行Thumb指令集时PC值每次自增2。执行ARM指令集时PC值每次自增4。机器码>>汇编>>高级语言C。

2024-08-11 15:15:38 136

原创 ARM处理器概述

ARM(Advanced RISC Machines)有三种含义:一个公司的名称、一类处理器的通称、一种技术。只保留常用的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定。RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领用应用极为广泛。片上系统:将一个系统中所需要的全部部件集成在一个芯片中,在体积、功耗、价格上有很大优势。

2024-08-11 15:11:16 95

原创 守护进程的创建步骤及代码实现

已脱离终端,stdin/stdout/stderr无法再使用。守护进程一直在后台运行,其工作目录不能被卸载;子进程变成孤儿进程,被init进程收养;关闭所有从父进程继承的打开文件;更改当前工作目录(不是必需的)重新设定当前工作目录cwd。创建子进程,父进程退出;子进程成为新的会话组长;子进程脱离原先的终端。文件权限掩码设置为0。关闭打开的文件描述符。

2024-02-16 09:51:28 198 1

原创 exec函数族

file 执行的程序的名称,在PATH(Linux环境变量里的路径)中查找。两个函数区别execlp不需要写文件名全路径,在PATH查找。作用:执行指定的程序,父子进程执行不同的代码。最后一个参数必须用空指针(NULL)作结束。进程当前内容被指定的程序替换,但进程号不变。成功时执行指定的程序;path 执行的程序名称,包含路径。传递给执行的程序的参数列表。第0个参数必须要写,虽然它没有使用。实现让父子进程执行不同的代码。子进程调用exec函数族;

2024-02-15 21:27:31 117 1

原创 线程池的实现

任务队列链表线程池结构体。

2023-12-21 21:32:19 300

原创 线程的同步和互斥

不能同时访问的资源外设基本上都是不能共享的资源临界资源不可以共享。

2023-12-21 21:11:06 475

原创 线程的创建和线程间参数的传递

成功返回0,失败时返回错误码thread 线程对象attr 线程属性,NULL代表默认属性routine 线程执行的函数arg 传递给routine的参数 ,参数是void * ,注意传递参数格式。

2023-12-21 20:56:50 473

原创 进程的创建和回收

pid>0时,只等待进程ID等于pid的子进程,不管其它已经有多少子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去。pid=0时,等待同一个进程组中的任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬。pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用一模一样。pid

2023-12-21 20:38:14 1178

原创 CPU工作原理概述

CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算。控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器。注:每执行一条指令后的PC的值会自动增加指向下一条指令。一条指令的执行分为三个阶段。

2023-11-22 22:19:46 33

原创 计算机的组成、总线、DMA总线

总线是计算机中各个部件之间传送信息的公共通信干线,在物理上就是一束导线按照其传递信息的类型可以分为数据总线、地址总线、控制总线。把其他信号转换成计算机能识别和处理的信号并送入将计算机中,如键盘、鼠标、摄像头等。存储器是用来存储程序和数据的部件,是实现“存储程序控制”的基础,如内存、硬盘等。把运算结果以人或其他设备所能接受的形式送出计算机外,如显示器、音响、打印机等。CPU中负责运行算术运算和逻辑运算的部件,其核心是算数逻辑单元ALU。控制器是CPU的指挥中心,其控制着整个CPU执行程序的逻辑过程。

2023-11-22 21:52:26 50

原创 Source Insight设置行数

View------>Line Numbers 打勾(√)

2023-11-21 22:19:48 213

原创 source insight保存出现unable to write to temp file for saving operation

修改项目所在目录权限。

2023-11-19 21:56:24 183

原创 标准IO的读写

fgets函数第二个参数,输入的数据超出size,size-1个字符会保存到缓冲区,最后添加’\0’,如果输入数据少于size-1后面会添加换行符。stdin也是FILE *的指针,是系统定义好的,指向的是标准输入(键盘输入);错误:Bad file descriptor很可能是文件打开的模式错误。函数返回值时int类型不是char类型,主要是为了扩展返回值的范围;打开文件后读取,是从文件开头开始读,读完一个后续写指针会后移;调用getchar()会阻塞,等待你的键盘输入。下列函数用来输入一行。

2023-10-26 21:27:52 56 1

原创 标准IO文件的打开、关闭

const char *path:地址常量,普通文件当前路径不需要加目录,其他要使用完整的路径。当一个程序正常终止时,所有打开的流都会被关闭,比如:常规文件把缓冲区内容写入磁盘。const char *mode:文件打开模式,r,r+,w,w+,a,a+fclose()函数的入参stream必须保证为非空,否则出现段错误。fclose()调用成功返回0,失败返回EOF, 并设置errno。流关闭时自动刷新缓冲中的数据并释放缓冲区。流一旦关闭后就不能执行任何操作。文件的打开:占用资源。文件的关闭:释放资源。

2023-10-26 21:24:14 41 1

原创 标准IO及缓冲区

一切IO皆文件。1.文件基础概念:一组相关数据的有序集合文件类型:常规文件r,目录文件d,字符设备文件c,块设备文件b,管道文件p,套接字文件s,符号链接文件l。2.UNIX基础知识-系统调用和库函数系统调用:操作系统提供接口不同操作系统接口不一样,引出库函数3.标准IO介绍标准IO由ANSI C标准定义主流操作系统上都实现了C库标准IO通过缓冲机制减少系统调用,实现更高的效率4.标准IO-流(stream)FILE:标准IO用一个结构体类型来存放打开的文件的相关信息;

2023-10-26 21:13:20 59

原创 位运算概念

两位同为1,结果为1,否则为0应用:清零(与0)、取位。

2023-09-20 10:40:19 62 1

原创 常用数制对应关系

十进制 二进制 八进制 十六进制 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12

2023-09-20 10:07:59 56 1

原创 Hello CSDN!!

Hello CSDN!!

2023-08-25 19:12:27 58 1

空空如也

空空如也

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

TA关注的人

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