- 博客(44)
- 收藏
- 关注
原创 linux驱动编程(一)
其中字符设备驱动是使用最多的一种,从点灯到IIC,SPI,音频设备等的驱动都是字符设备驱动。块设备和网络设备驱动要比字符设备驱动复杂,所谓的块设备驱动就是存储器设备的驱动,比如 EMMC、NAND、SD 卡和U 盘等存储设备,因为这些存储设备的特点是以存储块为基础,因此叫做块设备。网络设备驱动就更好理解了,就是网络驱动,不管是有线的还是无线的,都属于网络设备驱动的范畴。一个设备可以属于多种设备驱动类型,
2025-02-21 23:19:47
1389
原创 linux 驱动编程配置(minis3c2440)
SDRAM(同步动态随机存取存储器),同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写,简单的说,它就是cpu使用的外部内存,即我们常说的内存条。SRAM是英文Static RAM的缩写,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据,速度比SDRAM快,一般用作高速缓冲存储器(Cache)。
2025-02-20 23:56:58
1737
原创 day 41 51中断系统以及定时器
1.寄存器:具有固定地址值的内存空间,对于soc来说具有特殊的功能的变量。2.中断:当cpu处理事件时,外界发生紧急请求,要求cpu暂停当前工作去处理这个紧急事件,处理完之后回到原来中断的地方,继续原来的工作。3.中断源:产生中断请求的事件本身4.中断向量表:中断函数的入口地址的数组(函数指针数组)
2025-02-07 19:17:30
525
原创 day 40 复习makefile以及51单片机
1.将源文件和头文件以及库分别放在src include lib中2.在源码目录下创建一个名为makefile的文件3.编写makefile代码。4.make编译。
2025-02-06 21:49:50
872
原创 day38 tcp 并发 ,linux下的IO模型----IO多路复用
由于tcp协议只能实现一对一的通信模式。为了实现一对多,有以下的的处理方式开销大效率低创建线程需要耗时多线程模型创建线程耗时问题,提前创建在不创建进程和线程的前提下,对多个文件描述符进行同时监测IO:fd读写, 共用一个进程。
2025-01-11 00:19:51
733
原创 day37
对网站上的天气数据进行查询分析, 最终使客户能够通过简单的操作快速准确的获取目标天气数据。主要包括两部分的功能, 第一部分是实时天气数据查询;第二部分是未来天气数据查询。并且可以由用户选择城市。
2025-01-09 01:01:57
328
原创 day 32 进程间的通信方式---管道
无名管道 :只能给有亲缘关系进程通信(pipe)有名管道 :可以给任意单机进程通信(fifo)共享内存*消息队列信号量集网络通信。
2025-01-03 01:03:23
568
原创 day 30 线程创建回收,线程属性,指针函数
线程是轻量级的进程定义:正在执行的程序;进程是操作系统资源分配的最小单位;线程是轻量级进程。线程一定属于进程。与同一进程中的其他线程共用进程的堆区,数据区,文本区线程是cpu任务调度的最小单位。资源消耗:进程消耗的资源空间大消耗的资源空间小,只需分配栈区效率角度:创建线程比创建进程效率高任务切换跨进程效率低于跨线程安全角度:由于进程空间独立,所以安全性比线程高。通信角度:进程间不能直接通信,需要使用进程间通信方式(IPC)实现。
2025-01-01 20:45:24
635
原创 day 29 进程exec函数族 ,进程实现无人机模块,exec实现minishell
第一个参数可以是编译后的文件的地址例l:参数以列表形式传递v:参数以指针数组形式传递p:在系统路径下找要执行的代码。
2024-12-31 00:39:54
536
原创 day28 多任务——进程
进程就是正在执行的程序;执行过程中需要消耗内存和cpu内存就是存在硬盘 的的源文件,以及可执行文件,开始执行就是进程。
2024-12-29 03:22:37
639
原创 day26 文件io
标准io是在文件的基础上增加了缓冲区,提高对普通文件操作的效率。文件对底层操作,速度快,一般操作硬件对应的设备文件。文件描述溢出就是文件使用完没有及时关闭文件。:系统为用open打开的文件分配的标识符。使用完时及时释放,避免文件描述符溢出。
2024-12-27 21:37:57
546
原创 day22 栈,队列,二叉树
栈顶有元素是满栈,反之是空栈。入栈向高地址移动是增,反之减。满增栈:入栈数据时,栈顶先移,后入栈数据,且栈顶向高满增栈地址移动;出栈数据时,先数据出栈后移栈顶,且栈顶向低地址移动。满减栈:入栈数据时,栈顶先移后入栈数据,且栈顶向低地址满减栈移动:出栈数据时,数据先出栈后移栈顶,且栈顶向高地址移动。空增栈:入栈数据时,先入栈数据后移动栈顶,且栈顶向高地址空增栈移动;出栈数据时,先移动栈顶后出栈数据,且栈顶向低地址移动。空减栈:入栈数据时,先入栈数据后移动栈顶,栈顶向低地址移空减栈动;
2024-12-18 00:17:53
713
原创 day19————————单链操作
逻辑:把链表切为两个链表,让从新的链表一个一个取数据在旧的里面排序;(1)切链表(注意不能掉链子,以及切完旧的最后给NULL)(2)大循环是一个一个从新链表里拿,一次循环拿一个,注意拿完数据,最后停在空里面;(3)进入大循环,要从新链子里拿数据插到别的地方,为了不断链子,定义新的保存他的下一个地址,然后进入小循环找在那里插入(4)????????(怎莫找逻辑不清楚)(5)找到之后插入pinsert(注意先连后面再连前面)
2024-12-13 02:03:32
672
原创 day 18——————数据结构单向链表
常用的逻辑关系和物理结构逻辑关系指的是数据之间的关系1.集合2,线性结构:一对一(数组,链表,栈等)3.树形结构:一对多(二叉树)4,图形,多对多物理结构:顺序结构(数组),内存空间连续链式结构(链表),不连续散列结构(哈希存储):将储存位置与关键码之间确立对应关系进行查找的储存方式索引:通过索引表顺序存储结构和链式存储结构的区别,什么场景使用链式结构:在内存中选取一段非连续的内存空间(链表)
2024-12-12 01:18:28
433
原创 day16
typedef:给现有的数据类型创造一个新的名字#define:定义一个宏名与宏值,在预处理阶段进行替换1.修饰变量,变量不能被赋值,但是通过初始化或者指针间接访问去修改2.修饰指针变量分两种情况,就近原则,char const *p :不能通过指针间接访问去修改值char * const p: 不能修改p1.修饰局部变量扩大他的生命周期,到程序结束。2.全局变量作用域限制在本文件内,防止命名冲突3.函数同上4.匿名变量(临时变量)
2024-12-09 23:54:46
530
原创 day 15
1.结构体的定义放在.h文件中,相当于声明(没开空间),头文件在哪里用放哪里2.结构体相关的四种传参3.\r回到行首刷新4.fflush(stdout)立即刷新控制台5.sleep()延迟。
2024-12-08 01:13:04
465
原创 day14
要点1.对于传入数组地址的函数,a[i],a+i,*(a+i)等都可以使用。2.了解其各个参数,以及compare的含义注意comapar参数是void*类型,需要进行强转才能使用。主管要调用程序员模块,程序员又反过来调用主管写的。通过函数指针的方式进行函数调用 – 叫做回调指针结束。
2024-12-06 23:48:33
562
原创 day-8
1.下载数据集2. 查看第一个数据的参数,以及数据集分类,六代表青蛙3.打印图片属性5,想使用他,需要转换为tensor类型compose是合并两个操作,此时只使用转换为tensor一个操作。6,之后便可以使用tensorboard了日志文件放在p10循环展示十张图片img已经是tensor类型7 打开网站。
2024-11-30 00:12:22
354
原创 day 5
[在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fff124f6f2c9445592c6d01ec0c26bc8.png可知取值在01之间。
2024-11-26 23:51:51
842
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人