- 博客(39)
- 收藏
- 关注
原创 嵌入式s3c2240: ADC
10位CMOS ADC(模数转换器)是一个8通道模拟输入的再循环类型设备。其转换模拟输入信号为10位二进制数字编码,最大转换率为 2.5MHz A/D转换器时钟下的500 KSPS。模拟:连续信号数字:离散信号。
2024-09-06 22:08:07
898
原创 关于位结构体及位操作总结
在执行i=*((short *)&test);时,取从地址&test开始两个字节(short占两个字节)的内容转化为short型数据,即为0x0032,再转为int型为0x00000032,即50。输出的结果就是50。当然,这里还涉及到字节及位的存储顺序问题。在定义结构体的时候,分配的成员a 4位的空间, b 5位,c7位,一共是16位,正好。两个字节为 0000 0000 0011 0010。
2024-09-03 22:01:19
317
原创 ARM体系结构
(多线程)栈:局部变量函数参数函数返回地址堆:程序员自己管理的内存区域,使用时需要动态申请,----释放bss: 初始化为0和未初始化的全局及静态变量bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小;data:初始化不为0全局及静态变量data段(已手动初始化的数据)则为数据分配空间,数据保存在目标文件中;(全局变量初始化不为0会增加代码所占空间)bss和data段整个区段被称为数据区。
2024-09-02 21:02:31
2825
原创 数据结构:树
只有一个前驱,但是可以有多个后继根节点:最顶层节点(没有前驱)分支节点:有前驱也有后继叶子节点:没有后继的节点层:根节点所在为第一层,每过一个分支节点,层数+1深度: 从根节点出发到达节点的分支节点个数称为该节点的深度高度:从叶子节点出发到该节点最大的节点个数称为该节点的高度树的高度:整个树形结构中高度最高的节点的高度称为树的高度树的深度:整个树形结构中深度最深的节点的深度称为树的深度树的层数 == 树的高度 == 树的深度节点的度: 叶子节点度数为0。
2024-08-30 20:30:29
1941
原创 数据结构:单向链表
pTmpNode负责遍历后面的节点,当找到比pMinNode节点更小的值时,更新pMinNode,然后比较pSwapNode与pMinNode值的大小,将小的值存放在pSwapNode节点的数据中,pSwap再指向像一个节点,进行下一轮比较。将一个指针从第一个节点向后走,将一个指针从相遇点向后走,两个指针相遇的位置即为环入口的位置。快指针每次走2步,慢指针每次走1步,快慢指针相遇则说明有环。慢指针和快指针每次走1步(快指针总是领先慢指针k步)快指针到达末尾时,慢指针所在的位置即为中间位置。
2024-08-28 19:22:50
662
原创 数据结构:顺序表
/当找到元素后,FindFun返回1,ForeachSeqlist函数检测到返回值不为0,跳出while循环。(这里将4更新为60)(也可以用arg传参)printf("修改元素为4为60\n");printf("查找元素10的位置\n");(这里找元素10) (也可以用arg传参)printf("元素内容:\n");(存满返回1,没满返回0)(为空返回1,否则0)
2024-08-27 20:15:05
837
原创 TCP并发服务器模型
监听文件描述符集合,将所有要监听的事件加入集合中,使用select监听所有事件,当集合中有事件发生, select不再阻塞,同时select会将产生事件的文件描述符留在集合中,而把没有产生事件的文件描述符从集合中踢出,所以留在集合中的文件描述即为产生事件的文件描述符,对其处理即可。read.c:当管道或者终端某一个有时间发生时,留下发生事件的那个文件描述符,其余删除,检测哪个文件描述符还在文件描述符集合中,就处理哪个。read.c:将管道设定为异步IO,当管道中有数据写入时发送信号,执行处理函数。
2024-08-20 20:43:34
768
1
原创 TCP编程
发端: 收端:socket (创建套接字) socket(创建套接字)bind (本机地址绑定)listen (监听)connect(请求连接) accept (处理连接)
2024-08-16 18:48:10
1236
原创 Linux中进程的通信方式一:管道
只能用于具有亲缘关系的进程间通信无名管道创建后,进程会获得操作管道的两个文件描述符,创建子进程时,子进程会拷贝得到父进程的操作无名管道的两个文件描述符,
2024-08-09 19:01:14
444
原创 Linux中线程相关概念,函数接口,互斥锁,死锁,信号量
线程是一个轻量级的进程1.线程的创建1.线程必须位于进程空间内部2.线程独享栈区,剩余的文本段、数据段、堆区与进程共享2.线程的调度和进程调度完全相同宏观并行,微观串行3.线程的消亡线程代码执行结束,空间不回收会成为僵尸线程,需要回收线程空间。
2024-08-07 21:43:25
1184
原创 Linux中进程的创建,调度,状态及接口函数
程序:保存在磁盘空间中的的一段代码的集合,是死的进程:是一个程序动态执行的过程,包括进程的创建、调度和消亡的过程。
2024-08-06 20:40:29
806
原创 Makefile文件
3.makefile维护文件时间戳,需要编译的重新编译,不需要重新的编译则省略编译的时间。1.Makefile是一个文件,工程代码编译规则写在makefile文件中。= 之前没被赋值则赋值,之前被赋值不再重复赋值。文件名:makefile Makefile。要生成的文件:所有依赖的文件。$< :第一个依赖文件。$^ :所有依赖文件。= 赋值。+= 追加。:= 覆盖。2.makefile语法规则。
2024-08-05 17:42:53
245
原创 Linux的目录文件函数接口,链接文件函数接口,获得文件详细信息
mkdir功能:创建目录参数:pathname:目录文件的路径mode:目录文件的权限返回值:成功返回0失败返回-1注意:1.r 决定是否目录下可以查看其余文件信息2.w 决定在目录下是否能够新建文件3.x 决定是否能够进入该目录文件。
2024-08-02 19:53:27
1176
原创 文件IO函数接口,Linux中当前时间的获取,标准IO和文件IO的区别
open功能:打开文件,返回文件描述符参数:pathname:文件路径flags:打开方式必须包含:O_RDONLY、O_WRONLY、O_RDWR 三个其中之一O_CREAT 文件不存在创建O_TRUNC 文件存在清0O_APPEND 追加O_EXCL 文件存在报错O_NONBLOCK 非阻塞O_ASYNC 异步IO..mode:权限。
2024-08-02 08:58:49
819
原创 Linux系统,标准IO函数接口
w 只写 如果文件存在则清0,只写打开。w+ 写读 如果文件存在则清0,读写打开。如果文件不存在则创建。如果文件不存在则创建。a 追加只写 如果文件存在则追加只写打开。如果文件不存在则创建。a+ 追加读写 如果文件存在则追加读写打开。如果文件不存在则创建。r 只读 如果文件存在则只读打开。r+ 读写 如果文件存在则读写打开。
2024-07-30 20:00:03
1178
原创 内存管理,链表
(定义一个新的指针指向头结点,从头结点开始向后遍历,只要p!=NULL,p就等于p->pnext)指针域:存放下一节点的首地址 pnext。4.单向链表、双向链表、内核链表、循环链表。数据域:存放各种实际的数据data。1.数组是有限个元素的集合。3.数组的插入和删除效率低。2.链表元素个数没有上限。2.数组的空间必须连续。1.链表空间不需要连续。5.插入和删除效率很高。最后一个节点的指针域为NULL。3.链表存储空间变大。创建一个空的单向有头链表。链表插入元素(头插法)
2024-07-28 15:56:52
611
原创 结构体,共用体,枚举,位运算,大小端,实现两个数交换的三种方法
1.内存对齐:1.存放结构体成员变量,必须保证前面的长度为成员变量所占空间大小的整数倍2.结构体整体的大小必须为最大类型长度的整数倍(1)定义了一个的结构体变量d,d所占空间空间大小为12个字节(2)定义了一个的结构体变量d,d所占空间空间大小为12个字节。
2024-07-26 18:16:39
1263
原创 指针数组,二维数组,函数指针,指针函数,结构体
struct 结构体名数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;...(1) .定义了一个student的结构体,成员变量有name,age,sex三种。
2024-07-25 19:10:39
943
原创 指针数组,数组指针,二级指针
pstr指针数组存放str[0],str[1],str[2],str[3],str[4],只改变pstr中str[0]~str[4]的顺序,原字符型二维数组存储的字符串顺序没变。2.指针数组的数组名是指向数组第一个元素的指针,即指向指针的指针也就是二级指针。&a:值为&a[],但是int(*p) [5]类型,表示是整个数组的首地址。1.函数体内想修改函数体外指针变量值的时候,传指针变量的地址即二级指针。&a+1为这个数组加20字节(数组长度)的地址。*&a降级为数组首地址,表示&a[0]
2024-07-24 20:58:12
272
原创 数组和指针的关系,const修饰指针
/报错,不能改变字符串常量,当指针指向字符串常量时要加const,表示不能改变*p,即写成 const char *p="hahaha";//"hahahaha"是字符串常量;不能改变*p的值,可以改变p的指向。不能改变p的指向,可以改变*p的值。const修饰*( const在 * 前)const修饰p(const在 * 后)当指针指向字符串常量时,不能修改字符串常量的值。总结:const修饰谁谁就不能变。
2024-07-23 19:22:48
463
原创 函数传参,递归函数(汉诺塔,裴波那契数列),预处理
斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89……这个数列从第3项开始 ,每一项都等于前两项之和。获得斐波那契数列的第n项的值。
2024-07-20 22:25:05
373
原创 字符型二维数组,函数,全局变量,局部变量,静态变量,实现strcmp的功能
/这行代码只执行一次,第一次为b开辟空间,后面就略过此行代码向下执行。当全局变量与局部变量重名时,起作用的的是局部变量,全局变量会被屏蔽掉。
2024-07-19 20:20:51
242
原创 c语言常用输入输出函数printf及scanf详解,流程控制,关系运算符以及逻辑运算符,if简单分支
【代码】c语言常用输入输出函数printf及scanf详解,流程控制,关系运算符以及逻辑运算符,if简单分支。
2024-07-15 19:18:36
296
原创 gcc编译器、C语言基本数据类型、进制转换
学习感悟:第二天比第一天感觉内容更多了,而且学到了以前学习c语言时没有注意到的东西,感觉现在的学习就是对以前知识的扫盲。
2024-07-12 18:44:47
688
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅