- 博客(28)
- 收藏
- 关注
原创 【yocto1】构建image,uboot,kernel
在U-Boot的配置文件(例如:mx6ull_14x14_evk_deconfig)中定义CONFIG_OF_CONTROL=y时,将采用设备树的方式来提供驱动数据,fdtdec_setup()函数位于/lib/fdtdec.c中通过设置全局变量gd->fdt_blob的值,设置设备树的存放地址为u-boot的末尾(通过对比编译生成的u-boot.bin和u-boot-nodtb.bin也可以看到在u-boot.bin的末尾增加了设备树文件)。第257行为模式分区,使用的是第0个分区。
2024-08-20 10:39:45
5098
8
原创 【net1】协议,route,iptables,macvlan
Hash散列算法(应用于哈希表和摘要密码学),是把任意长度的输入通过特定的算法变换成固定长度的输出,输出的值就是hash值。这个特定的算法就叫hash算法,hash算法并不是一个固定不变的算法。只要是能达到这个目的的算法都可以说hash算法。例如MD5,SHA,String.hashcode()都是hash算法。不同的输入可能会得出相同的hash值,那么这种现象称为hash碰撞,无论是采用那种hash算法,hash碰撞都是不可避免的,我们只能通过改进hash算法,把出现碰撞的概率降低。
2024-06-24 00:19:21
1423
1
原创 【shell1】语法,i2ctransfer,expect,环境变量
如果字符串中有空格,必须需要使用引号(str=hello world会报错)。。:显示字符串第1到第4个字符。:从左边第4个字符开始,一直到结束。:从倒数第6个字符开始的3个字符。:从倒数第6个字符开始,一直到结束。
2024-06-24 00:19:13
2931
1
原创 【driver5】pcie
如下阴影是32位寄存器即31-0对应400-403【400,401,402(存储16-9bit),403(存储8-0bit)】大端存储,devmem2…高低高是一次reset(相当于手动跳帽一次pin),System reset and PCIe reset绑定在一起,不能为低扯着,为高释放掉。主机即pci驱动程序初始化会扫描设备即读出配置寄存器,知道了是某类型寄存器和想申请多大空间。一个pci设备最多有8种功能,每种功能都有256字节的配置寄存器,怎样选中某一种功能,再怎么选中功能里哪一个寄存器?
2024-06-24 00:18:15
409
原创 【driver4】kobject,platform总线
当调用read,系统调用从文件中读取一些字节时,linux内核除了读取指定字节数据外,还会额外预读取一些数据到内核的缓存区里,下次再读取文件内容时,会先从内核缓存区里查找,如果找到,则省去等待慢磁盘定位和数据传输时间,大多数linux系统中预读取数据长度为128kb,也可根据系统可用的内存大小进行动态调整。写入文件内容时,函数将数据回写到内核缓冲区后才进行返回,(read,wtite)内核在稍后一段时间内才会将内容写入磁盘中,除了更新文件内容外,还会更新元数据(文件大小,文件最后修改的时间)。
2024-06-24 00:15:00
558
原创 【driver3】调试:调用堆栈函数,printk,动态打印,top,dstat,perf,ftrace,proc,debugfs,性能优化,内存泄漏,主频,驱动稳定性
printk会关中断影响性能,如果在usb的read/write里printk,那么usb就没法直接用了。我想加很多调试信息,但是不想影响linux性能,所以用动态打印,调试时才打开,control节点默认不输出,如下操作才输出,+p是转为printk。likely一般用在if判断里,cpu会把当前指令后面指令预取出来,等到执行时就去执行,效率提高,但是也要判断后面那条指令大概率执不执行,执行的话取出来,不执行则跳过。dmesg会显示不全,因为环形buffer会覆盖。如下案例:mpstat,perf。
2024-06-24 00:14:03
569
原创 【driver2】proc文件系统,内存分配,数据类型/移植/对齐,内核中断,通过IO内存访问外设
【这种情况多数发生在中断处理上,当一个中断发生后,在中断回调函数中希望尽可能短和尽可能快执行,所以把那些费时间的,不是很紧要的任务放稍后执行即放在中断回调函数后执行】。rmmod就没有/proc/下接口了,"hello proc"有11个字符(连空格和换行符),所以show next调用了11次。非延迟工作队列效果跟tasklet类似,把API换成没有delayed的即可。如下delta连1次jiffies值都没达到。再去执行其他操作,可使用。执行指定操作,可使用。
2024-06-24 00:13:54
1935
1
原创 【driver1】内核模块,设备号,字符驱动,设备读写,同步和互斥,ioctl,进程休眠,时间和延时,延缓
udev接到这事件后就会获取这些设备信息,这些信息大部分保存在/sys/class/xx文件系统(sysfs)中。udev获得到这些信息后就会根据获得到的信息以及udev规则在/dev下生成对应设备节点。linux系统中有一个后台程序udev(用来自动生成设备节点的软件),设备文件->设备号->cdev。如下次设备号个数不是次设备号(hello_minor)。如下测试读写设备,group改变组,mode改变权限。如下static int…只是初始化给默认值。
2024-06-24 00:13:44
2068
4
原创 【c++3】_public.h/cpp,_ooci.h/cpp,_mysql.h/cpp
文章目录1._public.h2._public.cpp3._cmpublic.h1._public.h#ifndef _PUBLIC_H#define _PUBLIC_H 1#include "_cmpublic.h"//全路径文件名,大小,时间的结构体struct st_fileinfo{ char filename[301]; int filesize; char mtime[21];};//1111111111111111111.读取某目录下的全部的文件clas
2024-06-24 00:12:24
1286
原创 【c++2】systemd,crontab,ftp
(设置被动模式的高端口范围为5500-6000,passive命令为on,完成后必须init 6重启,netstat -na --ip,firewall-cmd --list-ports,防火墙配置不好可以直接关闭防火墙):列出服务器目录中的文件名,如:nlist /home/w /tmp/tmp.list,表示把服务器上/home/w目录下的文件列出来,结果输出到本地的/tmp/tmp.list文件中,输出文件名是全路径。(dir命令可以使用通配符“*”和“?上面strbuffer[…
2024-06-24 00:03:49
1071
原创 【c++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,socket,进程,信号,dbus
文章目录1.函数重载:writetofile(),C++true和false,C0和非02.类和对象:vprintf3.引用:别名4.string类:string str,str=,str.c_str()5.vector容器:std::vector<.>.;1.函数重载:writetofile(),C++true和false,C0和非0C++动态内存分配:在C语言中,动态分配内存用malloc()函数,释放内存用free()函数。C++中new和delete。C++函数重载:C中不允许函
2024-06-24 00:03:06
3128
1
原创 【c1】数据类型,指针,结构体,main参数,static/extern,typedef,编译预处理,gdb,makefile,文件,多线程,动静态库
文章目录1.数据类型:单双引号,char(1B),int(4B),double(8B)2.常量和变量:memset,const3.输入和输出:scanf函数4.运算符:前先加1,sizeof5.if:上下,else if6.switch:选择结构7.循环:continue8.数组:存数据类型相同的数据,\0,数组下标越界导致core dump段错误9.库函数:/usr/include,libgcc.a10.指针:变量的地址,&,空指针段错误10.1 p是地址,*p是指向的内容:01指0x01(十六进
2024-06-23 21:54:21
3309
原创 【notes2】并发,IO,内存
open,read,write是文件相关,同时也是对磁盘操作,也可归到设备这类。这里我们说程序1使用200的内存,这种说法本身不太对的,因为我们没法去限定一个程序使用的内存大小,当然你可以说我估算了这程序使用的最大内存就是200,但这也代表整个200的一段内存中,程序使用的内存绝大多数时间都小于200。因为程序是写死的(操作的地址是固定的),而硬件内存条哪些地址被占用了一直变化,因为os是多进程的,当前进程需要操作的地址,其他进程在使用,这样不能使用这块地址了,所以说除非是单进程机器,否则为了。
2024-06-23 20:32:12
2104
1
原创 【notes1】VMware,linux命令,samba服务器,pip//版本/dts
apt install python3-pip --fix-missing(断开vpn,cp /etc/apt/sources.list /etc/apt/sources.list.bak,python3 -m pip install --upgrade pip,apt-get update,pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com)如下设置win账号,因为默认禁止空密码登录。
2024-06-23 20:32:07
3784
3
原创 【jenkins1】gitlab与jenkins集成
GitLab配置Access Token,用于jenkins连接GitLab获取GitLab API接口:点击右上角用户头像Edit profile,再点击左侧Access Tokens ,命名为gitlab_jenkins,Select scopes全部勾选上,点击创建产生如下字符串。官网https://www.jenkins.io/下载jenkins,可选择适合你自己系统的版本,也可选择不依赖于系统的docker(前提本机安装了docker)或war包(本机安装了java),如下开启。
2024-06-23 20:28:54
3055
原创 【docker1】指令,docker-compose,Dockerfile
文章目录1.pull/image,run/ps(进程),exec/commit2.save/load3.docker-compose3.1 link3.2 docker-compose .yml4.Dockerfile4.1 ENV4.2 LABEL5.k8s5.1.整个流程5.2 三个基础概念5.3 service之间如何互相通信5.4 service的虚拟ip到公网ip1.pull/image,run/ps(进程),exec/commitDocker是主要应用于linux和后台应用的虚拟机(和vm
2024-06-23 20:28:45
5093
1
原创 【git1】指令,commit,免密
硬还原前面回滚掉的版本,commithash因为被回滚掉了,用git log 空(每次提交commit信息)查不到,用git reflog 空(所有操作信息)查,三个区都回滚了保持一致。一般不用git commit -m,直接git commit进入vi界面(进入前要git config core.editor vim设一下vi模式),vi如下写法,注意在最上面写。(会出现Auto-merging自动合并,git pull = git fetch + git merge),进行讨论删除,再。
2024-06-23 20:28:38
2686
1
原创 【database3】oracle:数据交换/存储/收集
文章目录1.生成数据:crontab2.ftp:ftp是tcp/ip协议族中一员,分客户端和服务端2.1 安装:linux操作系统的用户也是ftp的用户,可以配置专用的ftp用户,专用的ftp用户只能用于ftp,不能登录操作系统2.2 ftp命令:get,put登录ftp服务器:linux命令行输入:ftp ip地址,然后输入用户名和密码(adduser ,passwd ),必须先开启ftp服务查看/下载/上传文件:ftp的传输模式分ASCII码和二进制两种,二进制可传输任何文件,而ASCII码方式只能传
2024-06-23 20:26:52
1711
1
原创 【database2】redis:优化/备份/订阅
1.3.小结果集适合建索引。如果占表超过50%不适合建索引,因为数据量达到一定量后会走全表扫描:原因是mysql内部有一个优化器进行最优策略即聚集索引和非聚集索引查询原理,数据量太大会先走非聚集索引,然后才走聚集索引获取数据。太频繁加个redis。4.有limit 1,查到一行就不继续往下走。5.数据库创建完一次连接后会永久处于连接状态,已经永久连接了,apache还给数据库不断发连接,给数据库增加了压力,大公司会解决这个。6.
2024-06-23 20:26:44
1143
1
原创 【database1】mysql:DDL/DML/DQL,外键约束/多表/子查询,事务/连接池
文章目录1.mysql安装:存储:集合(内存:临时),IO流(硬盘:持久化)1.1 服务端1.2 客户端2.DDL/DML:char不用动态变化,效率高3.DQL:select(相当于System.out)第一个但在倒数第二执行,备份4.约束和自增长:字段约束(字段的赋值规范)/主键约束(唯一非空且一张表只有一个主键)5.单表缺点和外键约束:多从外 引出6.三种多表关系:中间表两外键7.多表查询:表..join表on7.1 外连接:左外=左表+内连接8.子查询:优先于主查询产生结果9.事务:一组操作,要么同
2024-06-23 20:26:34
2279
1
原创 【web2】jquary,bootstrap,vue
文章目录1.案例_隔行换色2.js中的正则表达式3.案例_表单校验4.jquery框架引入5.jquery版本介绍6.jquery对象7.jquery的页面加载事件8.jquery基本选择器引入9.层级选择器10.属性选择器11.基本过滤选择器12.表单属性过滤选择器1.案例_隔行换色<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title>
2024-06-23 20:25:44
2237
1
原创 【web1】标签,css,js
File-New-Project-Static Web,右击New-HTMLFile。1.2 文本标签:字体属性1.3 a标签:anchor(锚) 超链接1.4 列表标签:list (嵌套)1.6 标签分类:div,span1.7 表格标签:快捷键,table(嵌套)1.8 合并单元格:rowspan=“2”百度服务器不会理你。2.4 css属性:背景/文本/字体/边框/浮动/展示如下7是接着6后面,看浏览器窗口大小,动态调整。
2024-06-23 20:25:37
2266
1
原创 【java2】lambda,Stream流,File类,乱码,流,tcp,class,设计模式,nginx,req/res,cookie/session,rpc
文章目录1.函数式编程引入2.lambda表达式语法3.lambda表达式解释4.lambda表达式运用1.函数式编程引入package com.itheima01.boot;/** 函数式编程 语法 (JDK8)* 函数(公式) -> 方法* 作用: 简化代码编写* 1. lambda表达式* 1. 标准语法* 2. 简略语法* 2. 运用: Stream流* 3. 方
2024-06-23 20:23:59
1626
2
原创 【java1】if/switch/for/while,数组,属性/方法,可变参数/构造器,this/super/继承,抽象/初始化,接口/多态,权限修饰符/包装类/内部类,list,map,线程
文章目录1.jdk安装:JAVA_HOME2.idea安装:全局settings3.关键字/常量/变量:javac4.数据类型/标识符/类型转换:小大自5.算术/赋值/自增运算符:前先自加1,48/65/97,ascii,转义符6.关系/逻辑/三元运算符:&&短路7.if/switch/for/while/do.while:没有break8.一维数组:int[ ] a = { }8.1 数组的内存分析(静态):数组名=首地址8.2 数组的内存分析(动态):元素默认值8.3 数组相关算法:求一
2024-06-23 20:23:28
2180
1
原创 【python4】百度人脸api,aiohttp,curl,闭包/装饰器,json/configparser/optparse,walk/split/getattr/bin//lspci/usb
basic auth:最简单的一种(户名+密码)认证方式,用base64_encode加密,安全性低,每次都需要传递用户名和密码,用户名和密码很大程度上存在被监听盗取的可能。:是一个域名,默认指向127.0.0.1这ip(本地回环地址,速度快,不会出现在主机外部网络),绑定了localhost的服务只能在本机访问。对其加密并与/etc/shaodow下用户名和加密密码段做匹配,如果一致则处理curl请求,否则返回401: Unauthorized。如下问题是发送的curl中data的json数据格式不对。
2023-11-05 18:13:59
105
1
原创 【python3】matplotlib,模块,进/线程,文件/xml,vr升级
如下耗时从小到大。:下图为数据的存储:1个int数占4个字节(char或B)(1B=8bit),如下1放在4个字节中。如下int型按顺序存放即方便查找。下图左边为基本形式,右边为元素外置形式(存地址)。分为,下图为,不用改变原数据结构,多一个加一个。构造方法:如下红框是主进程,没有等子线程结束就结束了。线程池适合需要大量线程完成任务,但实际处理时间较短。4.文件/xml:os.walk4.1 增:写入文件内容给文本文件4.2 改:批量修改图片大小4
2023-03-26 20:33:27
2068
1
原创 【python2】文本分类综合(rnn,cnn,word2vec,TfidfVectorizer),中文纠错代码解析(pycorrector)
文章目录1.中文评论情感分析(keras+rnn)1.1 需要的库1.2 预训练词向量1.3 词向量模型1.4 训练语料 (数据集)1.5 分词和tokenize1.6 索引长度标准化1.7 反向tokenize1.8 构建embedding matrix1.9 padding(填充)和truncating(修剪)1.10 用keras搭建LSTM模型1.11 结论1.12 错误分类2.新浪新闻分类(tensorflow+cnn)3.搜狐新闻文本分类(word2vec)3.1 数据的准备3.2 word2v
2021-02-19 08:29:58
9045
19
原创 【python1】图像操作,验证码识别,拼接/保存器,字符分割识别,移动物检测,ckpt转pb,keras_yolov3_gpu训练自己数据集
文章目录1.安装2.画图3.几何变换3.1 位计算3.2 遮挡3.3 通道切分合并3.4 金字塔3.5 缩放3.6 平移3.7 旋转3.8 仿射变换3.9 透视变换4.形态学5.模糊(平滑)6.色彩空间转换7.二值化8.图像梯度9.canny边缘检测10.视频操作10.1 读取摄像头视频10.2 读取视频文件10.3 视频写入10.4 视频提取指定颜色11.直方图12.模板匹配13.直线/圆/轮廓检测14.人脸检测15.数字验证码识别16.图像拼接/保存器1.安装pip install opencv-
2020-06-01 14:35:21
3119
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人