自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux驱动的基本概念

交叉开发编译(Cross Compilation)是指在一个平台上生成能在另一个不同平台上执行的代码的编译过程。这是嵌入式系统开发和跨平台软件开发中的常见技术。

2025-04-01 18:48:00 116

原创 Linux驱动程序

主设备号,这里就不得不提一下linux中的 设备号了。一个字符设备或者块设备都有一个主设备号和次 设备号。主设备号和次设备号统称为设备号。主设备号用来 表示一个特定的驱动程序。次设备号用来表示使用该驱动程 序的设备。我们可以使用cat /proc/devices命令即可查看当前系统中 所有已经使用了的主设备号。在接下来的程序中,我们可以 设置一个静态的主设备号,比如200。:这是一个指向file_operations结构 体变量的指针,这个结构体里面的成员绝大多数都是函数的 指针。

2025-03-31 18:33:16 362

原创 Linux内核编程

2.把u-boot写入到nor-flash中,并设 置开发板以nor-flash启动,那么自然系统一上电就运行我们写 入在nor-flash中的u-boot了。如果程序在nand-flash中,并设置开发板以nandflash启动,2440就会把nand-flash中最前面的4KB程序拷贝到 iram中执行。1.无论哪种程序都不能存放在ram中,sdram不行,iram 也不行。程序必须提前保存在rom中,对于Mini2440来说,就 只能是nor-flash或者是nand-flash中了。

2025-03-31 18:07:27 202

原创 arm之s3c2440的I2C的用法

IC(Inter-Integrated Circuit)又称I2C,是是IICBus简称,所以中文应该叫集成电路总线。的总线的使用场景,所有挂载在IIC总线上的设备都有,一根是数据线,另一 根是时钟线。这两个信号线都是。作为一种通信方式,IIC总线在某一时刻,总线,所发生的数据被总线上所 有的设备所接收。IIC总线规定,设备在空闲时,两根总线都处于。为保证这种状态,

2025-03-24 19:53:47 990

原创 ARM之S3C2440的UART(串口)应用

S3C2440A 的通用异步收发器(UART )配有 3 个独立异步串行 I/O 端口,2440的每个UART均不占用定时器来产生波特率。并且每个UART都拥有一个独立用于收 发的缓冲区FIFO。实现一个与pc双向通信的串口程序。实现波特率为9600,n,8,1。

2025-03-24 19:24:04 694

原创 ARM汇编

学习arm汇编的主要目的是为了编写arm启动代码,启动代码启动以后,引导程序到c语言环境下运行。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。

2025-03-19 19:00:28 282

原创 单片机之STC8951学习

使用两根信号线(A和B)来传输数据,通过比较A和B之间的电压差来识别信息,电压范围分别为+7V到+12V和-7V到-12V。正电压表示高电平,负电压表示低电平。RS485的传输距离可达1200米,适用于大范围的数据传输需求。由于采用的是压差,RS485在传输数据的某一时刻,两根线都要用到,所以它是半双工的。收发主机间有三根线,分别是收、发和地,因此RS232是全双工的。要使用中断,必须要依照手册中所表示的寄存器来配合使用。逻辑1):在-3V到-15V之间。逻辑0):在+3V到+15V之间。

2025-03-18 19:43:14 892

原创 数据库---sqlite3与HTML

SQLite 教程 SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。本教程将告诉您如何使用 SQLite 编程,并让你迅速上手。本教程有助于初学者了解 SQLite 数据库引擎相关的基础知识和先进理念。阅读本教程前,你需要了解的知识..2.代码量少,1万行左右,总大小10M以内。3.文件型数据库,可以移动。SQLite 教程 | 菜鸟教程。4.数据容量最大2T。

2025-03-11 18:54:10 735

原创 TCP并发服务器

服务器在同一时刻只能响应一个客户端的需求。:服务器在同一时刻可以响应多个客户端的需求。

2025-03-10 12:00:56 520

原创 网络编程之应用层协议(http)

80;TCP;

2025-03-07 20:51:07 351

原创 网络编程之TCP协议

SOCK_DGRAM:数据报套接字 (UDP使用此类型)SOCK_STEAM:流式套接字 (TCP使用此类型)处理三次握手等待队列中的第一个请求并建立一个用来通信的新套接字。功能:将一个套接字与IP地址和端口号绑定(只能绑定自己的IP地址)domain:通信的协议族(AF_INET:IPv4协议族)套接字:通信对象的抽象, 网络通信的端口,一个通信链的句柄。sockfd:套接字文件描述符。成功返回新文件描述符(通信套接字)创建一个用来通信的接口(文件描述符)成功返回用来进行通信的文件描述符。

2025-03-05 21:46:33 974

原创 Linux网络编程之UDT协议

ping IP地址/域名测试当前主机与IP地址/域名是否连通www.baidu.com -> DNS服务器 -> IP地址查看当前操作系统中网卡信息ens33:虚拟机中的网卡lo:回环地址(127.0.0.1)inet:IPv4地址netmask:子网掩码broadcast:广播号inet6:IPv6地址ether:MAC地址。

2025-03-04 20:39:58 711

原创 网络编程相关概念

一 网络概念1.国际网络体系结构:OSI模型: open system interconnect 理论模型1977 国际标准化组织各种不同体系结构的计算机能在世界范围内互联成网。

2025-03-03 21:29:54 492

原创 linux进程间的通信

【代码】linux进程间的通信。

2025-02-26 20:11:58 173

原创 Linux软件编程之线程间通信

【代码】Linux软件编程之线程间通信。

2025-02-26 20:06:32 284

原创 Linux内核编程之线程

线程调度 :宏观并行,微观串行 设置线程分离属性的步骤

2025-02-25 20:38:55 422

原创 Linux内核之进程

pstree:查看进程间的关系 pstree -p(关系族谱可带ID号) pstree -p id号(可查看某id的关系族谱图)2.让子进程成为一个孤儿进程,让孤儿进程会被系统中的进程收养,由系统进程负责回收。回收指定进程组内的任意子进程(-100.等待GID=100的进程组中的任意子进程):父进程先消亡,由该父进程产生的子进程变为孤儿进程被系统进程收养。ps -aux:查看系统中所有进程的信息和状态。ps -ef:查看进程状态信息和父子进程ID号。:进程的ID号 PPID:父进程的ID号。

2025-02-22 19:18:39 528

原创 linux内核编程之文件IO

1 没有缓存区 (//可以认为数据直接交给了内核 ).2 操作对象不在是流(FILE *),而是文件描述符(整数).3文件描述符很小的非负的整数 int 0-1023内核每打开一个文件就会获得一个文件描述符,新生成的文件描述符永远为最小的非负整数, 最小未被占用。

2025-02-17 19:38:29 278

原创 linux软件编程-IO

向流中写入一行字符串: s要写的信息,一般是固定的字符串或者有数据的数组。stream要写入的目标文件流对象:如果操作成功,函数返回一个非负值;如果发生错误,则返回EOF即 -1;不写入 '\0'1.fputs不会自动增减\n2.puts 会多打印\n字符。

2025-02-16 21:48:59 969

原创 linux软件编程

man手册标准man手册分为8个章节:man 1 用户命令man 2 系统调用man 3 c函数库调用man 4 设备文件和特殊文件man 5 配置文件和格式man 6 游戏相关man 7 杂项,总述man 8 管理类命令。

2025-02-14 21:02:01 668

原创 Makefile的用法及算法应用

4.排序算法的稳定性:对于两个相同的数据,经过排序,两个相同数据的相对位置没有发生变化,这就是一个稳定的排序算法。将待排位置的数据和后续的数据依次进行比较,将小的存放在待排位置,经过一趟,优先排好最小值。:相邻两两比较,优先排好最大值。

2025-02-13 21:59:48 386

原创 二树形结构之二叉树

二 如下图二叉树遍历结果如下前三个遍历为:深度优先遍历算法最后一个遍历为:广度优先遍历算法

2025-02-12 21:43:36 139

原创 数据结构之队列,哈希表

哈希函数的作用是将任意长度的输入数据,转换为固定长度的输出,这个输出就是数据在哈希表中的存储位置,也叫哈希值或散列值。:将所有哈希值相同的数据存储在一个链表中,哈希表中的每个位置指向一个链表,链表中的节点存储具有相同哈希值的数据。- 数据结构类型:队列和栈都是线性数据结构,数据元素间呈线性关系,一个接一个排列,有前驱和后继(除首尾元素)。- 基本操作:都有插入和删除数据的操作,尽管操作规则和位置不同,但都是对数据的基本增删操作。- 操作位置:队列的插入操作在队尾,删除操作在队头。栈只能访问栈顶元素。

2025-02-12 10:43:56 853

原创 单链栈的应用

系统栈主要由操作系统在程序执行时自动管理,处理函数调用和返回,具有固定的内存大小限制。数据结构栈是一种常见的抽象数据结构,通常由程序员实现,支持灵活的操作,广泛应用于各种算法和应用中。

2025-02-10 20:31:00 359

原创 链表的应用

指针函数的返回类型是一个指针,表示该函数返回一个指向某个数据类型的指针。// 定义一个返回 int 指针的函数// 使用 static 来保证变量 num 在函数外部可以访问return # // 返回 num 的地址// 输出:10return 0;在这个例子中,是一个指针函数,返回一个指向int类型的指针。在main函数中,我们调用并获取返回的指针,最终通过解引用*ptr来访问值。函数指针的类型与其指向的函数的签名(返回类型和参数类型)一致。例如,指向返回int且接受两个int。

2025-02-09 23:07:48 832

原创 数据结构之链表的用法

寻找给定指定位置的结点。

2025-02-07 21:19:43 332

原创 数据结构的定义及单向链表的用法

程序的设计:将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中,并在此基础上实现某个特定的功能的操作;程序 = 数据结构 + 算法。

2025-02-06 20:13:50 720

原创 c语言学习之指针的指针与结构体学习

在使用strcpy(),strcat()时如果传入的是字符串常量区的内容,则会导致程序崩溃。而且strcpy()将自己拷给自己会越界访问。不可进行运算,因为a在字符串常量区 不可更改char s[20];//s会覆盖s+1的\0解决方法:给一个可以放的下的buffer缓冲区。

2025-01-22 20:10:28 291

原创 c语言之指针应用

使用函数的递归调用。

2025-01-21 20:22:00 369

原创 c语言灵魂之指针的用法

是指没有指向任何一个存储单元的指针。当我们需要用到指针,但不确定指针指向何处时使用。空指针不能用来赋值。

2025-01-20 20:01:58 324

原创 c语言灵魂之指针

指针是一种数据类型,指针是用来装地址的数据类型。*指针运算符,运算方向(自右向左)作用:实现间接访问。在定义指针变量时,如int*p,*只是为了定义,类型说明,说明它是指针类型,而*p则是间接访问,指的是p指向的值。有如下操作。从如下程序更好的说明指针作用。例如数字的数字的交换intt;t=a;a=b;b=t;intt;t=*a;*a=*b;*b=t;假如inta=10,b=20;

2025-01-19 18:16:43 155

原创 c语言基础之标识符和预处理命令

一般形式:1.两个如果访问的是绝对路径,则用法相同2.两个如果访问的是相对路径,则#include<>是库函数中的,而#include""是自己定义的,想要调用的。

2025-01-17 10:39:19 138

原创 c语言基础之函数扩展

一 顺序排序二 冒泡排序三 插入排序。

2025-01-16 19:49:43 310

原创 c语言基础之函数

函数特点:降低耦合性和提高复用性。 1.无参函数:可以带回或不带回函数值,以void (3) 在被定义的函数中,必须指定形参的类型。 (4) 形参与实参的类型必须相同或兼容。 (5) 在C语言中,实参向形参的数据传递是"值传递",单向传递,只能由实参传给形参,而不能由形参传给实参。 如果发生改变,并不会改变主调函数的实参的值。 用re

2025-01-15 18:55:14 135

原创 c语言基础之二维数组

二维数组行数与列数的计算:假设一个数组a[][],其中包含若干个数,求其行数与列数。行数(rows):sizeof(a)/sizeof(a[0]);列数(cols):sizeof(a[0])/sizeof(a[0][0]);

2025-01-14 18:42:57 166

原创 c语言之字符数组

还可以用puts()输出,用gets()输入。

2025-01-13 20:20:24 139

原创 c语言基础之排序与查找

逆序排列:过程如下:代码实现:也可把b[]去掉,节省空间资源,也被称为原地插入,具体代码实现如下:两者结果都是:

2025-01-13 20:11:39 166

原创 c语言基础

即len为数组a中的数据个数。

2025-01-11 20:13:55 300

原创 c语言基础之选择顺序结构和循环顺序结构

优先顺序。

2025-01-10 19:16:13 363

原创 c语言基础之输入输出

getchar()函数只能接受一个字符,其得到的字符可以赋给char变量,也可以赋给整型变量,也可以不赋,作为表达式的一部分。• %a :⼗六进制浮点数,字⺟输出为⼩写。• %A :⼗六进制浮点数,字⺟输出为⼤写。• %c :字符。• %d :⼗进制整数。• %e :使⽤科学计数法的浮点数,指数部分的 e 为⼩写。• %E :使⽤科学计数法的浮点数,指数部分的 E 为⼤写。• %i :整数,基本等同于 %d 。• %f :⼩数(包含 float 类型和 double 类型)。• %g :6个

2025-01-09 18:28:59 378

空空如也

空空如也

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

TA关注的人

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