- 博客(41)
- 收藏
- 关注
原创 关于ARM的一些问题
User:非特权模式FIQ:高优先级中断进入IRQ:低优先级中断进入Supervisor:当复位或软中断指令进入Abort: 当存取异常时Undef:当执行未定义指令时会进入这种模式System:使用和User模式相同寄存器集的特权模式Cortex-A:特有模式Monitor:为了安全而扩展出的用于执行安全监控代码的模式,特权模式。
2024-04-10 18:43:55 515
原创 栈和队列的学习
创建空栈,创建节点,入栈(单向链表的头插),出栈(单向链表的头删,但是要将链表的数据传出来),销毁。队列:只允许从一端进行数据插入,另一端进行数据删除的线性表:先进先出 FIFO。栈:只允许从一端进行数据插入和删除的线性表:先进后出 FILO。存储方式分两类:顺序存储和链式存储。
2024-03-21 23:28:28 323
原创 进程间的通信 - 消息队列 & 共享内存
利用消息队列的步骤:1.创建struct msgbuf结构体类型 ---> ftok/ 生成key值 --->通过key值生成消息队列的id(用msgid接)--->msgsnd 向消息队列中发送消息 / msgrcv 从消息队列中接收消息。操作方式:ftok得出一个与共享内存的有关的key值 -> shmget 创建共享内存(通过key创建一个共享内存,返回值为共享内存的id号) -> shmat 将一个地址映射到共享内存中 -> 共享内存操作 -> 解除映射 -> 删除共享内存。
2024-03-04 17:18:59 1354
原创 进程的学习
重新设定一个正在运行的进程的优先级 eg:renice -n 优先级 进程PID。进程的父进程先结束,此时该进程称为孤儿进程,被系统进程收养,进程再结束时,会被系统进程回收进程空间。创建一个子进程,新创建的进程称为原来进程的子进程,原来的进程称为新进程的父进程。父进程调用fork创建子进程,子进程拷贝父进程的文本段、数据段、系统数据段。杀死进程名对应的所有进程任务 eg:killall -9 进程名。进程:是一个程序动态执行的过程,包括进程的创建、进程的调度、进程的消亡。
2024-02-25 16:22:19 1103
原创 关于函数接口的认识和学习
注意:全缓存的缓存区大小为4k,所以定义了一个4096字节的char数组。打开两个目标文件和源文件,定义两个指针指向他们。从流中读取nmemb个对象,每个对象size个字节,存放到ptr指向的空间中。向流中写入nmemb个对象,每个对象size字节大小,在ptr指向的空间中。将格式化字符串输出到stream指向的流中。ptr:存放数据空间的首地址。size:每个数据对象的大小。nmemb:数据对象的个数。nmemb:读取对象的个数。练习:从终端输入一个单词,获得单词的含义。size:读取对象的大小。
2024-02-05 17:54:35 920
原创 fgetc和fputc的用法
2.fgetc/fputc与getchar/putchar的区别。成功返回读到字符的ASCII码值。成功返回存放字符串空间的首地址。size:最多读取字符的个数。stream:文件流指针。stream:文件流指针。s:存放字符串空间首地址。stream:文件流指针。读到文件末尾返回NULL。读到文件末尾返回EOF。从流中读取下一个字符。向流中写入一个字符串。从流中读取一个字符串。
2024-02-04 22:10:24 301 1
原创 链表的删除和预处理
struct Node head - - - 创建了头链表,内部不储存数据,地址为null,空间开在栈上(在main函数里创建新的节点,一般都开在堆上)。eg:a<<1 : 0010 0011 ----> 0100 0110(左移一位,对于十进制x10,对于16进制x2)若是将a(0xff):1111 1111 第三位清零(从右往左,从0位开始)----- a & ~(1<<3)无符号位,右移最高位补0。编辑程序 --vi ,编译程序 --gcc ,运行文件。
2024-02-02 22:12:51 449
原创 指针+一维数组/二维数组
---- n < strlen(src) 就是只拷贝前n个字符,最终dest中不会有‘\0’const char *s=“字符串” -- -- -- 获取字符串常量区的地址。----- n>strlen(src) 拷贝够次数后,剩余拷贝全部补‘\0’----- n>=strlen(src) src拼完就结束 src=='\0'----- n<strlen(src)拼n下就结束 n==0。----- n== strlen(src) 正常拷贝。函数指针(指向基类型-为函数类型) 函数类型的指针。
2024-01-30 22:46:56 673 1
原创 指针+一维整型数组的基本运用 和 指针+一维整型数组的初步学习
指针变量的给值:int *p --- 野指针,没有初始化,被当作了地址,所以要避免野指针,一般初始化为 NULL。快速排序本质就是定义一个基准值,通过从右向左找最大值,再从左向右找最小值,交换,然后循环直至begin和end相等时,此时划分两个部分,然后分别定义基准值重复找数换位的步骤,直至begin>end的时候结束。1.指针的概念:指针就是地址(内存单元的编号),是一个数据类型(指针类型)* : *定义的是一个指针类型的变量,修饰指针变量名的。p---指针变量--本身的类型int*
2024-01-29 23:18:26 435
原创 三种排序以及二分查找的总结和二维数组的学习
插入排序的本质就是为合适的数字找到合适的位置,也就是说需要在a数组中从a[0]项开始依次提出到变量t中(此时需要一个大循环,用来依次从数组中提出元素)。拿提出的元素和前面那一项比较。小循环:用j(下标的意思)来代表准备放入的位置。条件1:j>0的原因是因为,a[0]项已经是最前面的一项,不能越界。条件2:用t和j的前一项比较(t和j-1,比较),若是t
2024-01-24 22:32:45 370
原创 插入排序和字符型数组的初步认识
找到mid时,等于x(想查找的值),else的语句执行,此时else存在寻找的值不存在情况,所以要在后面重新给一个条件语句,在范围的时候输出mid,不在范围提示查找值不存在。这段程序的含义是:s数组中的某一项为'\0'的时候,循环停止。时间复杂度 ---- 大O计法:O(n)=n^2--粗略计算出冒泡排序和选择排序的时间复杂度,发现两者所耗费的时间差不多。从算法稳定性和效率,耗费的时间(CPU执行代码的数量),用的空间考虑。2.处理字符串时,常常用'\0'作为结束的标志(循环的结束位)
2024-01-23 22:44:01 361 1
原创 小阶段总结(关于嵌入式基础,数据类型,关系运算,输入输出,流程控制)!
全是干货!!!主要关于嵌入式基础,数据类型,关系运算,输入输出,流程控制。整理前面六天的知识性总结和中重点突出以及容易出错的点。
2024-01-21 15:53:09 444
原创 主要关于输入输出的认知和运用
当混合赋值时:左右两边的匹配右边的精度低于左边的精度,精度丢失 : 右边的字节小于左边的字节,否则发生高位截断;短类型给到长类型,若是有符号,在二进制中最高位会有0/1的判断,为1出现符号位的拓展,出现输出值的改变 --------低精度=高精度,发生精度丢失;短类型=长类型,发生高截断(存低位);长类型=短类型,会发生符号位的拓展(高位都为符号值)
2024-01-18 20:42:13 1156
原创 主要关于运算符和表达式
---------培养清晰的运算思维准备数据(定义清晰‘类型’的变量)--------处理数据(分别整理所需数据,公式)-----------输出结果流程图: start(开始-----Data(准备数据)-----Process(处理数据)----Terminator(输出结果)编译时的问题:错误 --- 语法错误 ; 警告 --- 语法不合适运行时的问题:逻辑问题 --- 调整思维首先关于“%c”输出以及char存储变量的问题。
2024-01-17 21:01:58 927 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人