自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

原创 shell脚本入门

在一行上显示和添加提示 需要加上-p 数值计算:$((表达式))test condition 或[ condition ]shell编程首行需要 #!/bin/bash 开头。再使用 chmod命令修改文件权限,把文件变为可执行。test命令:用于测试字符串、文件状态和数字。read 从键盘输入获取变量 $使用变量。使用方括号时,要注意在条件两边加上空格。shell脚本的文件名以 .sh结尾。查看当前目录下的文件是否存在。判断2个字符串 是否相等。

2025-02-21 20:04:50 225

原创 嵌入式八股文

在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。

2024-11-18 23:29:22 1214

原创 驱动程序--AD转换器、GPIO

Gpiolib 汇总了 GPIO 的通用操作,根据 GPIO 的特性,Gpiolib 对上(其他 Drivers)提供的一套统一通用的操作 GPIO 的软件接口,屏蔽了不同芯片的具体实现。对下,Gpiolib 提供了针对不同芯片操作的一套 framework,针对不同芯片,只需要实现 Specific Chip Driver ,然后使用 Gpiolib 提供的注册函数,将其挂接到 Gpiolib 上,这样就完成了这一套东西。因此,下半部不会被立即执行,而是由系统自行安排在适当的时机以异步的方式执行。

2024-10-15 20:59:02 1135

原创 Platform 内核定时器

主要用于定义具体设备占用的硬件资源(如:地址空间、中断号等;其中 flags位表示该资源的类型start和end分别表示该资源的起始地址和结束地址;要注意的是,这里的platform_device设备的注册过程必须在相应设备驱动加载之前被调用;即执行platform_driver_register()之前,原因是驱动注册时需要匹配内核中所有已注册的设备名。

2024-10-15 17:28:28 866

原创 内核编译 设备驱动 驱动程序

3、更改Kconfig的配置后,make menuconfig菜单也会被更改(1、创建一个新的目录,在该目录下写一个新的Kconfig。配置完成后,可以保存更改,这些更改将反映在当前目录下的。2、在该目录的上一级目录的Kconfig里加入。命令的作用是将一个预先配置好的内核配置文件。块设备:数据访问是随机的,一般是存储设备。计算机组成:软件(图上)、硬件(图下)高12位:主设备号,区分不通类型的设备。低20位:次设备号,区分同类的不通设备。应用层的程序demo_app.c的内容。

2024-10-09 21:19:15 1096

原创 Linux的启动流程、移植到开发板

norflash接在0地址,程序放在 norflash,上电后pc指向0地址,程序刚好可以运行。提供的API和服务,而裸机驱动则是在没有操作系统支持的情况下直接与硬件交互。加载完后先启动init进程(内核里的进程),init退化到应用层,init再创建其他进程(shell nfs等)Linux系统驱动和裸机驱动的主要区别在于运行时的环境和依赖。bootloader放在nandflash里时:系统上电后,会自动搬移nandflash。5.修改环境变量中的服务器ip,改为虚拟机的ip。

2024-10-08 00:33:48 1245

原创 UART通信协议

同步:就是双方使用同一个时钟同步通信要求通信双方共用同一时钟信号,在总线上保持统一的时序和周期完成信息传输。优点:可以实现高速率、大容量的数据传输,以及点对多点传输。缺点:要求发送时钟和接收时钟保持严格同步,收发双方时钟允许的误差较小,同时硬件复杂。而异步通信不需要时钟信号,而是在数据信号中加入开始位和停止位等一些同步信号,以便使接收端能够正确地将每一个字符接收下来,某些通信中还需要双方约定传输速率。优点:没有时钟信号硬件简单,双方时钟可允许一定误差。缺点:通信速率较低,只适用点对点传输。

2024-10-05 22:09:32 2091

原创 中断控制器

中断控制器中断控制器1、中断处理框图S3C2440A中的中断控制器接受来自60 个中断源的请求。提供这些中断源的是内部外设,如 DMA控制器、 UART、IIC等等。在这些中断源中,UARTnAC97和EINTn中断对于中断控制器而言是“或”关系。处理完后,中断标志要清除,中断挂起标志、源挂起标志。要先清除源挂起标志一个源可能有多个中断次级源。

2024-10-03 19:06:02 720

原创 ARM 架构、cpu

ARM是一种基于精简指令集()的处理器架构.ARM芯片的主要特点有以下几点: 精简指令集:ARM芯片使用精简指令集,即每条指令只完成一项简单的操作,从而提高指令的执行效率和处理器的性能。相比之下,复杂指令集(CISC)的指令可以完成多项复杂的操作,但是需要更多的硬件资源和执行时间。 负载/存储架构:ARM芯片使用负载/存储架构,即只有专门的负载和存储指令可以访问内存,其他指令只能在寄存器之间进行操作。这样可以减少内存访问的次数和延迟,提高数据处理的速度。相比之下,寄存器/内存架构的处理器可以直接在内存

2024-10-02 23:35:05 5220 1

原创 在开发板上运行流水灯的详细步骤

unsigned long:无符号是因为地址都为正数,long是因为32位操作系统long为4个字节,64位操作系统,long为8个字节,如果写int 32位64位都是4字节,不同操作系统地址存放也不一样,所以为unsigned long型。关键字是 C 和 C++(以及某些其他编程语言)中的一个重要修饰符,它用于告诉编译器该变量的值可能会在程序的控制之外被改变。变量的代码时,会生成代码来确保每次访问该变量时都直接从其内存地址中读取它的值,而不是使用可能已经缓存在寄存器中的值。丝印找对应原理图引脚。

2024-09-28 00:51:13 1072

原创 将sqlite3移植到开发板上

把lib/文件夹下的libsqlite3.so.0.8.6 下载到板子目录/lib下(libsqlite3.so和libsqlite3.so.0都是libsqlite3.so.0.8.6的软链接文件)1、bin文件夹下的sqlite3,是sqlite可执行应用程序,下载到板子Linux系统下的/bin目录。有./bin/sqlite3,./include/sqlite3.h以及./lib/下的库文件。–prefix: 指定安装目录, 编译后生成的文件放在此目录, 必须是绝对路径。执行make后,再执行。

2024-09-21 20:05:06 1011 1

原创 数据结构 队列、树

​树是n(n>=0)个结点的有限集当n=0时称为空树树 其实也是一种递归的实现,即树的定义之中还用到了树的概念。

2024-09-17 21:41:58 1048

原创 linux:数据结构

数据结构:相互之间存在一种或多种特定关系的数据元素的集合。集合,所有数据在同一个集合中,关系平等。线性,数据和数据之间是一对一的关系树, 一对多图,多对多在内存当中的存储关系)顺序存储,数据存放在连续的存储单位中。逻辑关系和物理关系一致链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。

2024-09-12 00:05:41 1037

原创 网页、html

二姐 (er) (jie)下载

2024-09-05 20:34:30 521

原创 数据库有关c语言

SQL(Structured Query Language)是一种专门用来与数据库进行交互的编程语言,它允许用户查询、更新和管理关系型数据库中的数据。关系型数据库是基于表(Table)的数据库,其中表由行(Row)和列(Column)组成,每一行代表一个记录(Record),每一列代表一个字段(Field)。

2024-09-05 00:30:03 1423

原创 linux:IO多路复用

定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标的输入、中断信号等等事件,再比如web服务器如nginx,需要同时处理来来自N个客户端的事件。

2024-09-02 23:42:28 1439

原创 Linux:HTTP协议

基本介绍:HTTP(Hyper Text Transfer Protocol): 全称超文本传输协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP 是一种应用层协议,是基于 TCP/IP 通信协议来传递数据的,其中 HTTP1.0、HTTP1.1、HTTP2.0 均为 TCP 实现,HTTP3.0 基于 UDP 实现。现主流使用 HTTP1.0 和 HTTP3.0。

2024-08-30 17:18:07 2591 1

原创 linux:网络编程之TCP

B/S模型是一种网络架构模式,其中用户通过网页浏览器(如Chrome、Firefox等)来访问和使用服务器上的应用程序或数据。

2024-08-29 15:56:14 1390

原创 Linux:网络编程之TCP/IP模型,UDP协议

在点分十进制的表示方法中,IP地址是一个32位的二进制数,通常被分割为4个8位二进制数(也就是4个字节),每个字节的十进制取值范围是0-255,各字节之间用点(.)分隔。它定义了网络通信的七层结构,每一层都执行特定的功能,并且每一层都使用下一层提供的服务,同时向它的上一层提供服务。函数用于初始化一个套接字,并返回一个与该套接字关联的文件描述符(file descriptor),该描述符随后可用于进一步的套接字操作,如绑定地址、监听连接、接受连接、发送和接收数据等。函数调用成功,它返回接收到的字节数。

2024-08-28 01:15:01 2147

原创 linux:进程间的通信 信号通信 共享内存

自定义信号处理:1、必须事先定义自定义函数,必须是如下格式:void fun(int sig) ////sig 接收到的信息编号2、在所有的信号中有如下两个特列:10 SIGUSR112 SIGUSR2专门预留给程序员使用的未定义信号。练习 SIGUSR1的使用。

2024-08-27 00:38:33 1493

原创 linux:进程间的通信

IPC(Interprocess Communication,进程间通信)是指在不同进程之间传播或交换信息的一种机制。它允许多个进程在同一操作系统中协同工作,实现数据的共享和同步。IPC主要包括三大类通信方式:古老的通信方式、IPC对象通信以及socket通信。

2024-08-24 10:05:14 885

转载 linux:线程的控制 互斥、同步、死锁

pthread_mutex_t mutex; 功能:将已经定义好的互斥锁初始化。 参数:mutex 要初始化的互斥锁 atrr 初始化的值,一般是NULL表示默认锁 返回值:成功 0 失败 非零int pthread_mutex_lock(pthread_mutex_t *mutex); 功能:用指定的互斥锁开始加锁代码 加

2024-08-22 20:16:43 848

原创 linux:线程及其相关函数,线程的回收

它用于释放线程在运行过程中申请的资源,确保程序不会出现资源泄漏,在大型项目中子线程申请的资源可能会在别的函数里使用,所以不可能该子线程结束了就清除资源,应该在其它地方使用后,统一清除这些资源才用这2个函数清除资源pthread_cleanup_push 和 pthread_cleanup_pop。线程的传参的类型为void **retval,在这里传的是**retval,这个是指针的指针,含义大多为改变指针的指向,对于函数传参来说,一个*代表传值,而**代表传一个指针的指向。本质上是一个函数的名称即可。

2024-08-22 01:20:49 1013

原创 linux:进程空间的回收,exec族

这个说法在概念上是正确的,但实际上,子进程并不是父进程的完全物理副本。在Unix和类Unix系统中,fork()系统调用创建了一个与父进程几乎完全相同的子进程,包括环境变量、打开的文件描述符、当前工作目录等。但是,子进程和父进程在内存中的物理表示是不同的,它们各自拥有自己的地址空间。:子进程和父进程的正文段(text segment,即程序代码)在物理上是共享的(通过操作系统的内存管理机制,如页表),但它们是只读的。

2024-08-21 09:07:36 953

原创 Linux:进程的概念,进程相关函数

分析:fork()它返回值有两种情况,大于0,等于0,&&如果左边为1,右边执行,如果为0,右边不执行,|| 如果左边为1,右边不执行,如果左边为0,右边执行,按照这个思想去分析。进程上下文切换是操作系统内核在CPU上对于进程(包括线程)进行的一种活动,主要目的是在多个进程之间共享CPU资源。(进程控制块)的缩写,即进程控制块,是操作系统中用于存储进程管理所需信息的数据结构。子进程复制父进程的0到3g空间和父进程内核中的PCB,但id号不同。克隆的进程称为子进程,原有的进程称为 父进程。

2024-08-20 00:29:45 927

原创 linux:有关目录、链接文件的函数 Makefil、gdb的使用

功能:根据用户id到/etc/passwd文件下解析获得结构体信息参数:uid:用户id返回值:成功返回id对应用户的信息失败返回NULLpasswd结构体的定义通常如下所示。

2024-08-15 20:29:14 1141

原创 linux:对目录的操作

1,打开目标目录2.读取目录,,3.关闭目录目录 当文件看,只不过操作函数和操作文件函数不一样。

2024-08-14 18:56:06 1128

原创 linux 高级编程:文件IO

清除一个流出错的标记。

2024-08-14 00:10:50 1053

原创 linux 文件编程

它主要通过标准C库中的函数来实现,提供了丰富的接口用于数据的输入和输出。7种,d为目录 ,-为普通文件,l为软链接(符号链接,类似于快捷方式),p管道文件,s套接字文件, ,c为字符设备,b块设备。文本文件是一种计算机文件,它包含的是人类可读的文本数据,而不是二进制代码或机器语言。第一部分为用户权限,即后面的第一个linux,第二个为小组权限,即第二个linux。文件用来存储数据(数据,指令);ASCII码数据的流 \n \t。流对象 ===》头 《===数据====》尾。r为读,w为写,x可执行。

2024-08-13 09:21:13 357

原创 枚举类 typede fmalloc 函数   free 函数 位运算

enum 枚举名列举各种值1, //枚举元素//枚举常量列举各种值2,enum fire列举各种值,之间用逗号隔开,不需要写类型名2.注意1. 表示 定义了一种 枚举类型2.枚举中逐个列举的值,默认是从0开始如果有给定的值,则后续没有给值的 枚举元素 依次 加13. 枚举类型的本质 实际是一个int类型的数据4. 枚举类型的变量 与 整型类型的变量通用的与 宏定义对比区别:使用阶段不同 宏定义 --- 预处理阶段。

2024-08-11 18:07:51 1330

原创 结构体 共用体 枚举 位运算

形式1 先定义类型,然后定义变量{ };形式2 定义类型的同时,定义变量}d;形式3 定义类型的同时,定义变量,可以省略 结构体名struct}d;//如果,结构体类型只用一次。

2024-08-09 23:13:46 1418

原创 二维数组指针,指针数组,指针函数

定义://p指向二维数组s练习:输入三个字符串 ,排序输出。

2024-08-08 19:54:07 2245

原创 学习指针第三日

const //只读//a 此时是一个只读的变量。

2024-08-07 20:50:35 982

原创 快速排序:

具体代码:

2024-08-06 20:13:31 262

原创 学习指针第二日

地址(指针)传递 //传的是地址 --可以实现被调修改主调。//定义时候的 * 修饰变量名的 表示定义的是一个指针类型的变量。值 --- 数组首元素的地址 --- 是一个常量。形参 -- 指针类型 变量 ,用来接收实参 (实参是要操作的内存空间的地址)//&a[0] 地址的类型 -- int *//此时表示定义了两个 int*类型的变量 p 和q。//NULL 0号地址 --- 空指针。//a[0]的数据类型 -- int型。形参 -- 数组形式 //本质上是一个指针类型变量。

2024-08-06 20:10:06 639

原创 c语言:预处理 初学指针

语法:// #define 标识符 字符串#define 宏名 宏值注意:1. 预处理命令 都是以 # 开头的2. 宏名 命名规则 和 之前标识符命名规则一致注: 宏名一般都写大写 ,以区别与普通变量名3. 预处理 实际上 是将 宏名 用 宏值(预处理阶段的 字符串) 原样替换//文本替换注意: c语言字符串中出现的 "宏名" 不会被替换4. 应用a. 提高代码可读性b. 一改全改,方便代码修改5. 宏名的 作用域#undef 宏名。

2024-08-05 21:11:29 970

原创 static、extern等关键字 作用域 字符数组

一维字符型数组 --- 用来存放字符串因为处理的是字符串数据,字符串操作的 依据,主要看结束标志 '\0'而不是 数组长度注意:一维字符型数组做函数参数形参 数组形式实参 数组名。

2024-08-04 14:36:56 1040

原创 c语言:函数

能拆成函数的尽量拆成函数函数设计时尽可能考虑健壮性扩展性。

2024-08-02 21:06:26 900

原创 用C语言完成奇数阶魔方阵

【代码】用C语言完成奇数阶魔方阵。

2024-08-02 00:05:22 536

原创 c语言:函数、二维字符数组

类型标识符 函数名 (形式参数)函数体代码(1)类型标识符数据类型 //表示函数要带出的结果的 类型注意:数组类型 不能做 函数返回结果的类型返回结果的类型。注意:a.如果函数不需要带出什么结果,此时返回结果的类型说明符 一般设计为void如果类型为void,一般不写return如果要写,return;b.如果 返回结果的类型 与 类型说明符不一致,以 类似说明符 为准。最终结果的类型,都会转为类型说明符表示的类型。

2024-08-01 20:31:26 773

基于网络爬虫技术的天气数据查询 有需求文档 流程图 要求分析以及全部代码

本程序是一个基于C语言编写的天气查询工具,它通过网络请求(HTTP GET请求)从api.k780.com这一天气预报API接口获取特定城市的实时天气、一周天气预报以及生活指数信息。用户可以通过命令行界面(CLI)与程序交互,选择想要查询的天气类型(实时天气、一周天气预报、生活指数)以及输入想要查询的城市名称(默认为成都)。程序会向服务器发送相应的HTTP请求,并解析返回的JSON格式数据,最后将用户关心的天气信息格式化输出到控制台。

2024-09-11

基于网络爬虫技术的天气数据查询

本程序是一个基于C语言编写的天气查询工具,它通过网络请求(HTTP GET请求)从api.k780.com这一天气预报API接口获取特定城市的实时天气、一周天气预报以及生活指数信息。用户可以通过命令行界面(CLI)与程序交互,选择想要查询的天气类型(实时天气、一周天气预报、生活指数)以及输入想要查询的城市名称(默认为成都)。程序会向服务器发送相应的HTTP请求,并解析返回的JSON格式数据,最后将用户关心的天气信息格式化输出到控制台。

2024-09-09

C语言输入三个正整数a, b, c. 若此三数构成三角形,则输出三角形面积

输入三个正整数a, b, c. 若此三数构成三角形,则输出三角形面积

2022-07-10

空空如也

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

TA关注的人

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