![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux学习笔记
文章平均质量分 71
elaot
这个作者很懒,什么都没留下…
展开
-
设备树笔记
一.设备树的引进1.1字符设备驱动的三种写法1.1.1怎么写设备驱动?看原理图1. 确定引脚:2. 看芯片手册:确定如何操作引脚 -写驱动程序(起封装作用,不用涉及硬件)分配一个结构体:file_operation设置结构体成员:open = led_open:把led引脚设置为输出引脚write = led_write :根据App传入的值,设置引脚状态注册(告诉内核,加入驱动链表):利用注册函数 regist_chrdev(主设备号,结构体,name)入口:出口1.原创 2021-08-19 15:52:08 · 202 阅读 · 0 评论 -
Linux内核驱动 IO编写(树莓派BCM2835为例)
一.概念储备1.1微机总线地址,物理地址和虚拟地址总线地址:cpu 能够访问内存的范围物理地址:硬件的实际地址或绝对地址虚拟地址:逻辑地址(基于算法的,软件层面的,假地址),虚拟地址可以比物理地址大,当我们要运行的程序大于物理地址时,虚拟地址就起作用了,平时我们用到的地址,都是在说虚拟地址,物理地址会映射到虚拟地址。1.2树莓派的cpu型号以及底层架构树莓派3BBCM2835ARM-cotexA53架构1.3写驱动需要的东西电路图芯片手册...原创 2021-06-25 04:02:46 · 303 阅读 · 1 评论 -
寄存器相关积累
一.什么是寄存器寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成。按照功能的不同,可将寄存器分为基本寄存器和移位寄存器两大类。基本寄存器只能并行送入数据,也只能并行输出。移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移,数据既可以并行输入、并行输出,也可以串行输入、串行输出,还可以并行输入、串行输出,或串行输入、并行输出,十分灵活,用途也很广。二.并行和串行串行数据是指传输过程中各原创 2021-06-23 16:46:45 · 1659 阅读 · 0 评论 -
Linux库相关
一.先引入分文件编程思想1.1描述以main()函数作为函数的入口,main函数中包含一些功能func函数, 把这些函数单独分成若干个功能模块。1.2分模块的好处:功能划分清楚方便调用和后期修改主程序简洁1.3怎么分模块?将源程序分为main函数入口和多个功能模块的.c文件将包含main函数的.c文件中的功能模块定义实现部分去掉,只留下函数引用在包含main函数的.c文件中添加功能模块的头文件,注意用“”号,“”表示程序运行时,会先到当前文件去找 头文件(.h文件),如果找不原创 2021-06-18 16:45:43 · 44 阅读 · 0 评论 -
Linux 知识总结
xrandr:查看支持分辨率xrandr -s xxxxx:设置分辨率原创 2021-06-11 20:43:03 · 40 阅读 · 0 评论 -
Linux系统编程——线程
一.线程概述1.1什么是线程,什么是进程,它们间的联系和区别?进程:进程是程序运行的实例,而程序只是指令,数据以及组织形式的描述。同时进程是分配资源的最小单位。线程:线程是程序执行的最小单位。联系:线程被包含在进程中。一个进程至少有一个线程,表示进程同时只做一件事。线程和进程所有的数据和信息都是共享的,共用一个地址空间。区别:进程拥有自己独立的地址空间,奔溃不会对其他进程产生影响。线程有自己的栈堆和局部变量,但依赖于所属进程的地址空间,线程死掉,整个进程都会死掉。所以多进程会比多进程健壮,但耗费原创 2021-06-06 00:13:55 · 175 阅读 · 1 评论 -
Linux系统编程——进程间通信(IPC)
一. 概述1.1单机通信半双工管道 (FIFO)全双工管道 (命名全双工管道)消息队列信号量共享存储1.2多机通信:套接字STREAMS二.管道通信管道,通常指无名管道,最古老的IPC形式2.1特点半双工(数据只能在同一方向流动),有固定的读端和写端。管道中的数据,读走就没了只用于具有亲缘关系的进程之间通信可看成一种特殊的文件,但只存在于内存中2.2原型#include <unistd.h>int pipe(int fd[2]); //成功返原创 2021-06-01 23:16:12 · 253 阅读 · 0 评论 -
Linux系统编程——进程
一.进程相关概念1.1什么是程序?什么是进程?有什么区别?程序是静态的概念,gcc xxx.c -o pro,磁盘中生成的pro,叫做程序进程是程序的一次运行活动,就是程序跑起来了,系统中就多了一个进程1.2如何查看系统中有哪些进程?使用ps指令查看实际工作中,配合grep...原创 2021-05-26 22:15:15 · 188 阅读 · 0 评论 -
交叉编译工具链下载和环境变量的配置
一. 什么是交叉编译?为什么要交叉编译?1.概念 编译:生成在平台本身可执行的代码 交叉编译:在一个平台上生成另一个平台可执行的文件 如:c51在keill平台上交叉编译 stm322.为什么交叉编译? 因为有时候平台上不允许安装我们所需要的的编译器,平台上的资源不允许。 或者平台本身都还没有建立,平台搭建本身就需要交叉编译。3.宿主机与目标机 宿主机(host):编辑和编译的平台,一般是基于x86的pc机,通常称为原创 2021-05-20 00:18:47 · 481 阅读 · 0 评论 -
Linux系统编程——文件
一.文件编程概述1.重点文件编程内容超多如: 文件系统原理及访问机制 文件在内核中的管理机制 什么是文件信息节点inode 文件的共享 文件权限,各种用户对其权限 。。。。。。应用为王 实际上,我们只要关心如何用代码操作文件,实现文件的创建,打开,编辑等自动化执行。2.文件的修改Windows/Linux下手动修改文档没有任何区别: 打开/创建文档——>编辑文档——>保存文档——>关闭文档如何自动实现文件操作:原创 2021-05-18 00:36:00 · 201 阅读 · 0 评论 -
客户端服务器模型API
server(服务器)端:流程:socket创建套接字>>>bind为套接字添加信息(IP地址和端口号)>>>listen监听网络连接>>>监听到客户端接入,接受一个连接>>>数据交互>>>关闭套接字,断开连接1.socket-----create an endpoint for communication(创建通信端点,即套接字)#include <sys/types.h> /原创 2021-05-16 23:54:09 · 99 阅读 · 0 评论 -
SecuerCRT 树莓派 vi编辑器下 上下左右 变成 ABCD的 问题
1.刚开始出现这个问题时,以为是vim没有更新,后面重新更新后发现并不是。2.后面查阅相关资料,发现树莓派vim是默认兼容vi的,而vi编辑器的上下左右正好不能移动光标,所以我直接到/etc/vim/vimrc.tiny更改配置文件,把set compatible改成set nocompatible。但是发现依然不是这个问题。3。最后我用mobaxterm连接树莓派。发现vi在mobaxterm下可以正常使用,显然是我的ScureCRT设置出了问题。4.出现这个问题,只需要把选项-仿真-模式里面的初.原创 2021-02-21 16:01:39 · 317 阅读 · 0 评论 -
树莓派开发文档笔记—基础配置
树莓派开发文档笔记—基础配置树莓派刷机树莓派登录2.1 HDMI视频线 连接到显示器2.2 串口 2.2.1 设备破解默认情况,树莓派的串口和蓝牙连接。想办法断开蓝牙连接,把串口用来数据通信https://blog.csdn.net/syjsxxjy/article/details/80774262a. 观看树莓派的启动过程,字符b. 串口登录树莓派2.2.2默认账号:pi默认密码:raspberry2.3 通过网络登录树莓派2.3.1 让树莓派入网修改ht原创 2021-01-03 22:33:25 · 46 阅读 · 0 评论 -
Linux库概念及相关编程(面试重点)
Linux库概念及相关编程(面试重点)分文件编程案例好处:分模块的编程思想网络 a超声波b电机ca.功能责任划分b.方便调试c.主程序简洁库https://www.cnblogs.com/sunsky303/p/7731911.htmlhttps://blog.csdn.net/wk_bjut_edu_cn/article/details/81735956a) 静态库静态函数库,是在程序执行前(编译)就加入到目标程序中去了 ;优点: 运行快发布程序无需提供静态库,原创 2021-01-03 22:26:18 · 66 阅读 · 0 评论 -
Linux C 学习笔记 ifdef条件编译
Linux C 学习笔记 == 自定义头文件例:创建text()函数,引用自定义头文件text.h#ifdef__TEXT_H__ //前后位双划线,注意大小写#define … //以下为宏定义,根据实际需求配置,也可以定义结构体,等等…void text(void); //对应的函数名#endif //结束...原创 2020-12-29 20:12:51 · 234 阅读 · 0 评论