- 博客(24)
- 收藏
- 关注
原创 GPIO简介与LED实验步骤
GPIO(General-purpose input/output)即通用型输入输出,GPIO可以控制连接在其之上的引脚实现信号的输入和输出。芯片的引脚与外部设备相连,从而实现与外部硬件设备的通讯、控制及信号采集等功能。一切可以通过高低电平控制的东西都可以通过GPIO来控制,如:LED、继电器、蜂鸣器。通过数据手册分析GPIO中哪些寄存器可以控制LED(引脚细节)通过电路原理图查找LED与开发板的连接关系(引脚)通过电路原理图分析LED的控制逻辑 (高低电平)通过程序去操控对应的寄存器完成对LED的控制。
2024-08-16 19:34:23
242
原创 ARM异常处理
处理器在正常执行程序的过程中可能会遇到一些不正常的事件发生,这时处理器就要将当前的程序暂停下来转而去处理这个异常的事件,异常事件处理完成后再返回到被异常打断的点继续执行程序。不管几级流水线,PC指向的永远是当前正在取指的指令,而当前正在执行的指令的地址为PC-8。注意:ARM的异常向量表的及地址默认在0x00地址,但可以通过配置协处理器来修改其地址。(1)拷贝CPSR中的内容到对应异常模式下的SPSR_(4)设置PC为相应的异常向量(异常向量表对应的地址)不同的线程可以运行在不同的核心中,做到真正的并发。
2024-08-11 15:27:00
394
原创 ARM寄存器组织
CPSR寄存器分为四个域,[31:24]为条件域,用F表示、[23:16]为状态域用S表示、[15:8]为预留域用X表示、[8:0]为控制域用C表示。程序计数器,用于存储当前取址指令的地址。链接寄存器,用于跳转指令时,产生异常时。栈指针,用于存储当前模式下的栈顶地址。
2024-08-11 15:24:21
244
原创 ARM工作模式
User(用户模式):非特权模式,一般在执行上层的应用程序时ARM处于该模式。Undef(指令未定义模式):当执行未定义的指令时ARM将进入这种模式。FIQ(快速中断模式):当一个高优先级中断产生后ARM将进入这种模式。IRQ(普通中断模式):当一个低优先级中断产生后ARM将进入这种模式。SVC(超级用户模式):当复位或执行软中断指令后ARM将进入这种模式。System(系统模式):使用和User模式相同寄存器集的特权模式。User为非特权模式(权限较低),其余模式均为特权模式(权限较高)
2024-08-11 15:21:14
156
原创 ARM存储模型
所有指令在内存的起始地址必须是4的整数倍,PC值由其[32:2]决定,[1:0]位未定义。所有指令在内存的起始地址必须是2的整数倍,PC值由其[32:1]决定,[0]位未定义。Halfword型数据在内存的起始地址必须是2的整数倍。注意:即数据本身是多少位在内存存储时就应该多少位对齐。注意:即指令本身是多少位在内存存储时就应该多少位对齐。Word型数据在内存的起始地址必须是4的整数倍。低地址存放高位,高地址存放低位。低地址存放低位,高地址存放高位。注意 :ARM一般使用小端对齐。
2024-08-11 15:18:53
183
原创 ARM指令集概述
能够指示处理器执行某种运算的命令称为指令,指令在内存中以机器码(二进制)的方式存在,每一条指令都对应一条汇编,程序是指令的有序集合。处理器能识别的指令的集合称为指令集,不同架构的处理器指令集不同,指令集是处理器对开发者提供的接口。机器码(二进制)一>汇编 一一对应,不可移植。C语言>>编译器1>>X86汇编语言>>机器码。C语言>>编译器2>>ARM汇编语言>>机器码。执行Thumb指令集时PC值每次自增2。执行ARM指令集时PC值每次自增4。机器码>>汇编>>高级语言C。
2024-08-11 15:15:38
194
原创 ARM处理器概述
ARM(Advanced RISC Machines)有三种含义:一个公司的名称、一类处理器的通称、一种技术。只保留常用的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定。RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领用应用极为广泛。片上系统:将一个系统中所需要的全部部件集成在一个芯片中,在体积、功耗、价格上有很大优势。
2024-08-11 15:11:16
150
原创 守护进程的创建步骤及代码实现
已脱离终端,stdin/stdout/stderr无法再使用。守护进程一直在后台运行,其工作目录不能被卸载;子进程变成孤儿进程,被init进程收养;关闭所有从父进程继承的打开文件;更改当前工作目录(不是必需的)重新设定当前工作目录cwd。创建子进程,父进程退出;子进程成为新的会话组长;子进程脱离原先的终端。文件权限掩码设置为0。关闭打开的文件描述符。
2024-02-16 09:51:28
232
1
原创 exec函数族
file 执行的程序的名称,在PATH(Linux环境变量里的路径)中查找。两个函数区别execlp不需要写文件名全路径,在PATH查找。作用:执行指定的程序,父子进程执行不同的代码。最后一个参数必须用空指针(NULL)作结束。进程当前内容被指定的程序替换,但进程号不变。成功时执行指定的程序;path 执行的程序名称,包含路径。传递给执行的程序的参数列表。第0个参数必须要写,虽然它没有使用。实现让父子进程执行不同的代码。子进程调用exec函数族;
2024-02-15 21:27:31
152
1
原创 线程的创建和线程间参数的传递
成功返回0,失败时返回错误码thread 线程对象attr 线程属性,NULL代表默认属性routine 线程执行的函数arg 传递给routine的参数 ,参数是void * ,注意传递参数格式。
2023-12-21 20:56:50
501
原创 进程的创建和回收
pid>0时,只等待进程ID等于pid的子进程,不管其它已经有多少子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去。pid=0时,等待同一个进程组中的任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬。pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用一模一样。pid
2023-12-21 20:38:14
1204
原创 CPU工作原理概述
CPU将PC寄存器中的地址发送给内存,内存将其地址中对应的指令返回到CPU中的指令寄存器(IR)译码器对IR中的指令进行识别,将指令(机器码)解析成具体的运算。控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器。注:每执行一条指令后的PC的值会自动增加指向下一条指令。一条指令的执行分为三个阶段。
2023-11-22 22:19:46
49
原创 计算机的组成、总线、DMA总线
总线是计算机中各个部件之间传送信息的公共通信干线,在物理上就是一束导线按照其传递信息的类型可以分为数据总线、地址总线、控制总线。把其他信号转换成计算机能识别和处理的信号并送入将计算机中,如键盘、鼠标、摄像头等。存储器是用来存储程序和数据的部件,是实现“存储程序控制”的基础,如内存、硬盘等。把运算结果以人或其他设备所能接受的形式送出计算机外,如显示器、音响、打印机等。CPU中负责运行算术运算和逻辑运算的部件,其核心是算数逻辑单元ALU。控制器是CPU的指挥中心,其控制着整个CPU执行程序的逻辑过程。
2023-11-22 21:52:26
94
原创 source insight保存出现unable to write to temp file for saving operation
修改项目所在目录权限。
2023-11-19 21:56:24
284
原创 标准IO的读写
fgets函数第二个参数,输入的数据超出size,size-1个字符会保存到缓冲区,最后添加’\0’,如果输入数据少于size-1后面会添加换行符。stdin也是FILE *的指针,是系统定义好的,指向的是标准输入(键盘输入);错误:Bad file descriptor很可能是文件打开的模式错误。函数返回值时int类型不是char类型,主要是为了扩展返回值的范围;打开文件后读取,是从文件开头开始读,读完一个后续写指针会后移;调用getchar()会阻塞,等待你的键盘输入。下列函数用来输入一行。
2023-10-26 21:27:52
87
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
75
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
99
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
136
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人