自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux驱动编程——等待队列

可实现调用read函数时阻塞等。

2024-09-30 22:37:42 538 1

原创 linux驱动编程——标准、混杂、中断

设备号类型:①主设备号 ②子设备号 类型:unsigned int dev_t12 major(主设备号)(子设备号)(1)申请设备号的函数为:(设备号)(设备号起始地址)(申请该设备个数)(设备名称)(次设备号个数)(4)归还设备号(5)创建设备节点(带参宏)(设备类型 名字)注:①owner指向模块的指针,这里只需传THIS_MODULE。②该函数返回struct class *,用宏IS_ERR判断是否合法。(6)添加节点。

2024-09-29 16:40:51 776

原创 linux驱动设备程序(内核层、应用层)

字符设备(驱动)、块设备(驱动)、网络设备(驱动)。

2024-09-28 18:16:49 546

原创 Linux驱动编程——根文件系统

TFTP为简单文件传输协议,底层基于UDP。

2024-09-28 13:21:44 345

原创 s3c2440——ADC模数转换器,Linux驱动编程——u-boot

模拟:连续;数字:离散。模拟信号一般指连续变化的电压值。转换的步骤:采样、量化。分辨率:nbit;表示一个电压比较器比较10次,得到十位数字信号。因此得到的数字信号范围:0~2^10-1,最大数字信号为:2^10-1。常用分辨率为:8bit、10bit、12bit、16bit。采样后取平均值:称为中值滤波。查表:ADCCON、ADDCDATO。

2024-09-25 22:02:48 407

原创 s3c2440——I2C

(Inter-Integrated Circuit)SOC与芯片间通信。属于方式。

2024-09-24 20:17:06 568

原创 s3c2440——UART串口通信

1、并行通信:一次可收发2bit/2bit以上。通信效率高;但对SOC硬件资源占用率太高。串行通信:一次通信传递1bit。降低对硬件占用率;但通信速率低。2、单工通信:只能A发送,B接收。半双工通信:A、B均可收发,但不能同时通信。全双工通信:A、B可同时收发。eg:USB(统一串行总线)、串口均属于串行通信。

2024-09-23 21:44:37 760

原创 s3c2440时钟、pwm定时器

1、晶振 ,在不外加电源的情况下,增加频率,使其从12MHZ到400MHZ。锁相环PLL:MPLL = (2*m*Fin)/(p * 2 ^s);m = MDIV(分频值M的值)+8,p = PDIV +2,s = SPIV查表:MPLLCON、CLKCON、CLKDIVN、CAMDIVN.

2024-09-23 10:39:31 337

原创 s3c2440各部分应用

按位与&:清零,清零位&0;如:0xFFFF &( ~(1 << 7)), 将第7位清零。按位或 | :置1,置1位 | 1;如:0xFFFF | (1 << 5) , 将第5位置1。按位异或^:翻转,翻转位 ^ 1。如:0xFFFF ^ (1 << 3),将第3位翻转。

2024-09-23 00:02:17 364

原创 汇编语言(模式切换)

最高位1至最低位1之间的二进制数序列:1001 1001 从第一个1开始到最后一个1之间没有超过8位末尾1的右边有1个0,不满足第二条,所以0x132不是立即数。ARM中将这 12bits 分为 8bit 常数(0~255)和 4bit 循环右移位值(0~15)。8bit 常数范围(0~255),位移的步进值是以2为单位(即实际位移 2 * rotate 位),可以表示循环有以(0~30)偶数位: 0、2、4、6、8、10、12、14、16、18、20、22、24、26、28、30。

2024-09-19 20:23:39 1031

原创 硬件开篇——体系架构

裸机驱动(无操作系统)——由寄存器控制;Linux驱动。硬件:计算机系统:计算机架构:①冯诺依曼(指令、数据一起)②哈佛(指令、数据分开)

2024-09-19 00:56:39 1095

原创 线性结构——栈与队列

内核:内核是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统等等,决定着系统的性能和稳定性。是连接应用程序和硬件的桥梁。一、内存五分区作用?堆区:该区由程序员申请后使用,需要手动释放否则会造成内存泄漏。 如果程序员没有手动释放,那么程序结束时可能由OS回收。栈区:存放函数形参和局部变量(auto类型),由编译器自动分配和释放。静态/全局区:存放全局变量和静态变量(包括静态全局变量与静态局部变量),初始化的全局变量和静态局部变量放在一块,未初始化的放在另一块。文

2024-09-11 20:40:27 567

原创 链表——内核链表

是一个。相比与之前的单向链表与双向链表,它不再将存储的数据放在节点中;而将放在要存储的数据中,。

2024-09-06 18:52:04 323

原创 链表——单向链表续、双向链表

当while(1)一直运行时,操作系统一直被申请空间,最终;造成内存泄漏。避免方法如:堆区手动申请的空间,都在用完后。测试是否存在内存泄漏:安装命令:sudo apt-get install valgrind;执行命令:valgrind ./a.out。

2024-09-04 19:43:53 467

原创 数据结构——开篇

用来保存一种或多种的数据的集合(组织和存储数据)。程序 = 数据结构+算法。

2024-09-03 20:02:43 846

原创 sqlite数据插入效率

时间相关接口:功能:得到从1970年1月1日0时0分0秒到现在的秒数。<可以利用该函数来计算一个程序的运行时间,只需就可以。注意单位的转变。精度到微秒结构体: struct timeval {/* seconds */ 秒/* microseconds */ 微妙 1s=1000000us结构体: struct timezone {/* minutes west of Greenwich */ 格林威治向西的分钟数。

2024-08-30 19:25:24 2511

原创 数据库——开篇

1、当程序运行结束,掉电,数据丢失。(数组、链表、变量等)2、程序运行结束,掉电,数据不丢失。(1)文件:对数据管理(增删改查)效率低。(2)数据库:专业存储数据,可存大量数据。对数据管理效率高,使用方便。

2024-08-29 19:03:50 1383

原创 三种tcp并发服务器实现程序

都需先进行tcp连接

2024-08-28 21:08:19 685

原创 IO多路复用

多个IO复用一个进程,不创建新进程和线程,效率高;不适合处理比较耗时的任务。

2024-08-28 18:17:26 642

原创 TCP并发服务器

在之前我们写过。并发服务器则是在。

2024-08-27 21:13:52 640

原创 http应用层协议

注:DNS (domain name server)称为域名解析:将域名转换为IP地址。eg:<协议>://192.168.1.112:80/;http 只是协议中一种。<主机>:<端口>/<路径> //表示了资源所在的路径。其中为了传输除了文本以外的图像、视频等内容,有。1、如何在万维网中表示一个资源?2.站点 与 站点之间资源传输时,该。用来存放各种资源的网络。

2024-08-24 13:24:03 713

原创 TCP系列相关内容

loop——本地回环测试地址。void *memset(void *s,int c,size_t n)——给一个变量设定一个值。

2024-08-23 20:21:19 2159

原创 续——网络通信编程

------server——服务端——被动角色-------

2024-08-22 18:43:43 686

原创 进程间的通信3——IPC对象通信->共享内存、网络通信

网络通信需要在物理层面、软件(逻辑)层面都有通路。局域网、城域网、广域网;因特网。最初APAR Net //阿帕网便是将众多局域网连接,形成因特网雏形。之后为解决不同体系结构网络互联问题,1981年国际标准化组织ISO制定了开放系统互连模型(OSI网络模型)。

2024-08-21 20:12:49 1305 1

原创 进程间的通信2——有名管道、信号

是一种(内核/内存中)特殊的文件。<系统层面有名字>信号是一种异步的通信方式;本身并不能传递大量数据。也称软中断;<软件层面上实现一个类似中断的过程>

2024-08-17 18:33:58 603

原创 资源竞争——信号量、进程共享问题——进程间通信方式

sem_t(信号量类型)sem(信号量变量)//造了一类资源;

2024-08-16 18:59:58 926

原创 线程退出——资源回收

(互斥锁类型)mutex(互斥锁变量(内核对象))

2024-08-15 18:24:51 808

原创 linux系统编程——线程

轻量级的进程。进程就相对的变成了重量级的进程(单个控制线程)。

2024-08-14 18:35:03 537

原创 进程结束——资源回收

两种特殊状态:(1)孤儿进程:没有危害,不需要处理。(2)僵尸态进程:占用pcb,要处理。即回收资源。

2024-08-14 14:47:53 372

原创 进程的执行、终止

fork前后:例如:文件的拷贝,父进程拷贝前一半,子进程拷贝后一半。

2024-08-13 21:58:15 642 1

原创 linux系统编程——进程

进程(process)是指正在运行中的程序,即是程序的一次执行过程(也可以说是程序的一个实例)。

2024-08-12 18:35:32 1721

原创 链接、报错、Makefile工程管理工具

sprintf 拼接字符串。快捷命令:【vi -t 待查宏或结构体名称】进入窗口查找;【:ts 宏或结构体名称】在窗口内实现最初查找;【ctrl +]】实现追踪;【ctrl + t】返回上一级;【df -h】查看硬盘空间;【ll -i】文件存储编号。

2024-08-08 19:46:17 1124

原创 fp与fd转换、目录操作

char *getcwd(char *buf,size_t size(本次接收的最大长度)) <类pwd命令>步骤:打开(opendir)、读取(readdir)、关闭(closedir)。注意:read 都当二进制看,不会自动补零;fgets会自动补零。功能:FILE *fp —转换—> int fd。功能:int fd —转换—> FILE *fp。DIR *目录流指针;FILE * 文件流指针。<类stat、ll命令>

2024-08-07 18:21:08 690

原创 标准IO——文件定位、文件IO

续:feof、ferror(检测一个流是否出错)、clearerr(清除一个流出错的标记)。

2024-08-06 18:09:08 1063

原创 标准IO操作

1、标准输入(intput)设备:键盘;标准输出(output)设备:显示器。

2024-08-05 17:42:16 1210

原创 linux系统编程开篇——shell脚本

脚本中,为弱类型语言,不用定义变量。read(相当于scanf);echo(打印输出):(1)当echo后跟"双引号",遇到$变量,则输出变量中的值;(2)当echo后跟'单引号',遇到$变量依然打印$变量;(3)当echo后跟`反单引号`,将中间的字符串按照命令打印。写变量时不加$,读变量时要加$。定义的变量仅在该命令窗口、文件下应用(类似于局部变量)。想在其他窗口下应用,可变为环境变量,用PATH命令。例如:实现+ - * /运算 注意:乘号要用/*,不能用*;

2024-08-03 19:16:31 887 1

原创 链表(续)、共用体、位运算

除了单向链表,还有双向链表(后继指针、前驱指针)、循环链表。

2024-08-02 19:56:30 396

原创 结构体、链表

struct 类型名 变量进行的是变量的赋值。变量的初始化:struct 类型名 变量 = {...,...,...};与结构体中声明的成员次序一致。可部分成员初始化,例如: 其他的未初始化的为0。

2024-08-01 18:22:42 424

原创 指针——数组与指针(进阶版)

表示只能指向int型参数、返回值为int型的函数。“指针函数名 = 函数名;”表示为指针变量赋值,函数名后面不跟参数时,为函数的入口地址。降低程序耦合性。

2024-07-31 18:30:52 727

原创 指针——数组与指针

1、借助指针变量begin、end进行数组遍历。可自定义遍历开始元素。

2024-07-30 17:50:03 795

空空如也

空空如也

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

TA关注的人

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