- 博客(72)
- 资源 (8)
- 收藏
- 关注
原创 用Python制定旅行计划
这个脚本会提示输入一些基本信息,包括目的地、旅行日期、预算、住宿偏好和活动偏好。然后,它会将这些信息整理到一个字典中,并打印出来作为你旅行的计划。编写一个Python脚本,用于制定旅行计划。这个脚本将询问关于旅行的基本问题,并根据回答生成一旅行计划。请注意,这个脚本非常简单,它不会实际上为你预订机票、酒店或活动。只是一个基本的计划制定工具,帮你组织和记录旅行计划。
2024-02-23 14:38:55
847
原创 利用python获取一部电视剧中的相关关键字台词的内容
需要使用Python的文本处理库和在线API。你可以从网上下载电视剧的字幕文件(通常是.srt格式)或剧本。如果你无法直接获取,可以考虑使用屏幕抓取技术(如Selenium)从视频流中提取字幕。使用Python的内置文件读取功能或第三方库(如pysrt)来读取字幕文件。对于剧本文件,通常可以使用普通的文本读取方法。使用Python的字符串处理功能(如str.find()或正则表达式)来搜索和提取包含关键字的台词。你可以定义一个关键词列表,并在文本中查找这些关键词。
2024-02-23 14:15:05
1321
1
原创 excel数据处理——一列数据转换为n列多行
如果只希望保留第一行的标题,然后将其他奇数行删除,可以选择一个空白列,为不同的行赋值,函数为“=mod(row(),2)”;这个是0,1 数列,如果是0,1,2就是“mod(row(),3)”。
2024-02-22 20:30:43
772
原创 .py文件如何打包为.exe可执行文件
将.py文件打包为.exe可执行文件需要使用一个名为pyinstaller的工具。参数告诉 PyInstaller 将额外的数据文件包含在可执行文件中。参数告诉 PyInstaller 将所有文件打包到一个单独的.exe文件中。这个文件就是你的.exe文件。是你要打包的Python脚本的文件名。5. 这将在同一目录下创建一个名为。替换为你的Python脚本的文件名。替换为你的数据文件的路径,将。的文件夹,其中包含一个名为。
2024-02-07 17:59:56
575
原创 LMKD、kswapd和oom killer的先后作用顺序
OOM Killer的作用是终止一些进程以释放足够的内存,从而避免系统完全崩溃。在选择要终止的进程时,OOM Killer会考虑进程的优先级、是否为守护进程等因素。综上,kswapd、LMK和OOM的先后作用顺序大致为:首先由kswapd回收页框,然后LMK根据策略选择进程进行终止,最后在必要时由OOM Killer终止进程以释放内存。LMK的作用是更精细地管理内存,选择一些不重要的进程进行终止,以释放更多的内存。当系统内存不足时,kswapd会根据一定的算法选择一些不常用的页面进行回收,以释放内存。
2024-01-10 11:23:48
670
2
原创 常用gdb调试命令
step s 执行下一条语句,若该语句为函数调用,则进入函数内的第一条语句。next n 执行下一条语句,不会进入函数内部执行。thread apply all bt 打印所有线程的调用栈。info threads 查看当前进程的所有线程。set var name=v 设置变量的值。bt 10 打印tid=10的线程调用栈。t 10 切换到tid=10的线程。info reg 查看当前的寄存器值。
2023-10-14 18:23:38
586
原创 size_t与ssize_t区分 kernel v6.1定义
在32位系统中,size_t和unsigned int的长度相同,都是4个字节;在64位系统中,size_t和unsigned long long的长度相同,都是8个字节。而ssize_t的长度则与int相同,在32位和64位系统中都是4个字节。其中,size_t通常用于表示内存大小、数组长度等非负整数,而ssize_t则通常用于表示函数返回值、文件读写等有可能出现负数的情况。需要注意的是,在使用size_t和ssize_t时,应该避免将其与其他类型进行混合运算,以免出现意外的错误。
2023-10-13 17:20:48
366
原创 Android中 dma-buf 和 ION
dma-buf 最初的原型为 shrbuf,由 Marek Szyprowski (Samsung)于2011年8月2日首次提出,他实现了 “Buffer Sharing” 的概念验证(Proof-of-Concept),并在三星平台的 V4L2 驱动中实现了 camera 与 display 的 buffer 共享问题。
2023-09-28 11:25:12
1077
原创 Valgrind 介绍和使用
Linux 下内存泄漏检测工具首选必须是 Valgrindhttps://valgrind.org/downloads/ 最新版本 Valgrind 3.21.0Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,还可以分析cache的使用等。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具
2023-09-01 22:06:42
389
原创 内存压缩算法——LZ4
LZ4 是由 Yann Collet 开发的一种追求极致压缩与解压速度的压缩算法,Yann Collet 还开发了另外一个近年大热的 zstd 压缩算法。zstd 现在属于 Facebook 的开源项目。在当前的安卓和苹果操作系统中,内存压缩技术就使用的是lz4算法,及时压缩手机内存以带来更多的内存空间。本质上是时间换空间。
2023-08-30 17:58:05
1243
原创 空指针赋值
指针的范围,那就相对来说容易了,对于在32位x86计算机上运行的windows xp sp2来说,就是从。首先解答第一个问题,在windows核心编程第四版的windows的内存结构一章中,表13-1有提到。为了保障“无论何时”这个条件,需要人为划分一个空指针的区域,固有上面。如果还有其他的值,你们这些表示空指针的值都是什么?所处的是进程的私有区间。除了NULL表示空指针,是否还有其他的值也是空指针?相关的,windows xp sp2的分配粒度是。有了上面的解答后,第二个问题就很容易解答了。
2023-08-22 20:25:27
463
原创 空指针防护
假设 有语句int a=10;那么编译器就在内存中开辟1个整型单元存放变量a,我们假设这个整型单元在内存中的地址是0x1000;那么内存0x1000单元中存放了数据10,每次我们访问a的时候,实际上都是访问的0x1000单元中的10当编译器遇到语句int *p时,它也会在内存中给指针变量p分配一个内存单元,假设这个单元在内存的编址为0x1003;此时,0x1003中的值是不确定的,(因为我们没有给指针赋值),当编译器遇到了p = &a时,就会在0x1003单元中保存0x1000。
2023-08-22 20:13:44
166
原创 Vim学习(三)—— Git Repo Gerrit
三者各自作用:git:版本管理库,在git库中没有中心服务器的概念,真正的分布式。repo:repo就是多个git库的管理工具。如果是多个git库同时管理,可以使用repo。当然使用gerrit,就必须用repo。repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。gerrit:提交审核代码,图形化的界面,简单的操作。
2023-08-12 15:00:38
546
原创 Vim学习(二)—— 编译C程序
以上就是编辑编译执行一个c程序的标准过程,至于如何在vim中设定快捷方式,一键实现这些功能,就不在本文讨论范围了。如果没有任何出错信息,ok,这样就可以执行程序了,输入。vim打开创建的文件,进入编辑模式,编辑完程序后按。保存并退出,下面进入编译阶段,我们用gcc来编译。打开终端,这里以MobaXterm为例,邮件创建新的空文件并命名,然后cd到对应路径下,用。
2023-08-11 18:22:20
2076
原创 Vim学习(一)——基本命令与三种模式
Vim全称叫Vi IMproved. 而vi则是Visual Interface的缩写,他们处理都是ASCII码字符数据;vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。熟练使用vim绝对是你成为Linux大牛不可或缺的本领,但其命令复杂,需要一定的时间。在Ubuntu终端下执行sudo apt-get install vim #安装Vim。
2023-08-11 17:11:35
1246
原创 虚拟内存 ——内存管理的妙招
磁盘 和 内存 都是用于计算机存储,但是内存是利用电流来实现存储,而磁盘是利用磁效应来实现存储,并且,从存储容量来看, 内存是高速高价,而磁盘则是低速廉价。在计算机这个系统中,与低速高容量的磁盘进行协同作业。虚拟内存是指来使用。这与磁盘缓存是假想的磁盘(实际上是内存)相对,。
2023-08-10 18:57:19
158
原创 驱动开发——嵌入式(驱动)软开基础(九)
就是新建一个文件(inode),这个文件专门用来指向别的文件(类似Windows中的快捷方式),若移动或删除原文件,则相应的软链接不可用。虚拟内存是内存管理的一种技术,使得应用程序认为自己拥有连续的内存空间,而实际上它对应的物理内存是不连续的,甚至还有一部分对应着外部磁盘存储器,在需要时再进行数据交换。:采用资源的有序分配,将所有资源进行编号,紧缺的资源采用 比较大的编号,一个进程只有获得较小编号的资源才可以申请较大编号的资源。:允许死锁的发生,但是通过系统的检测之后,采取一些措施,将死锁清除掉。
2023-05-27 23:45:00
788
原创 驱动开发——嵌入式(驱动)软开基础(八)
如果处理机正在第i队列中为某进程服务时,又有新进程进入优先权较高的队列(第1~(i-1)中的任何一个队列),则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权进程。例如,第二个队列的时间片要比第一个队列的时间片长一倍,第i + 1个队列的时间片要比第i个队列的时间片长一倍。但在其执行期间,只要又出现了另一个其优先权更高的进程,进程调度程序就立即停止当前进程(原优先权最高的进程)的执行,重新将处理机分配给新到的优先权最高的进程。
2023-05-26 23:45:00
735
原创 雷达中的无源和有源的区别
这种不发射电磁波的雷达,不容易暴露自己,不易受到敌方反侦察,不但隐蔽性好,反干扰能力强,安全性高,而且体积小,探测距离远。由于 GSM信号带宽的限制,该无源雷达的距离分辨率较差约为 1.8km,而第三代(3G)蜂窝移动通信标准 CDMA 的带宽约为 1.2MHz,相应的距离分辨率可达 122m,因此,提出 MIMO 无源相干定位雷达的概念,把 MIMO的概念及信号处理技术引入无源雷达,可增大雷达的监视范围和减少无源雷达的探测盲区。,便于和其他设备整合。如果用于反隐身,无源雷达最好的搭配就是先进的。
2023-05-25 08:00:00
2235
原创 驱动开发——嵌入式(驱动)软开基础(七)
(2)vmalloc分配连续的虚拟地址,但物理地址不一定连续。分配时实际分配了物理内存,不过这个物理内存页面是在公共的页表进行了映射,并没有在本进程的页表进行映射,当访问这段内存时,触发do_page_fault异常(缺页中断)才完成页表的同步工作。(2)中断服务程序使用的是自旋锁,原因是中断服务程序处于中断上下文,中断上下文是不参与调度的,也就没有保护现场与恢复现场,一旦睡眠就回不来了。(2)中断服务程序中不能有阻塞操作,因为中断期间是完全占用CPU的,不存在内核调度,中断被阻塞住,其他进程将无法推进。
2023-05-24 18:42:19
1070
原创 网络编程——嵌入式(驱动)软开基础(六)
(3)第三次握手:客户端收到确认报文后,检查ack是否为x+1,ACK是否为1,是则发送确认报文(将标志位ACK置1,ack=y+1,序列号seq=x+1),此时操作系统为该TCP连接分配TCP缓存和变量。(2)而关闭连接时,服务器收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接受数据,而自己未必将所有数据都发送完了,所以服务器可以立即关闭,也可以发送一些数据后再关闭,所以服务器的确认报文(ACK=1)和连接释放报文(FIN=1,ACK=1)一般分开发送,因此形成四次握手。
2023-05-22 23:45:00
438
原创 网络编程——嵌入式(驱动)软开基础(五)
如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;(3)epoll相关的系统调用有:epoll_creat、epoll_ctl、epoll_wait/epoll_pwait(可屏蔽特定信号),分别用来创建一个epoll文件描述符、添加/删除/修改需要侦听的文件描述符及事件、接收被侦听描述符的IO事件。建立连接和确认、重传、窗口、拥塞控制机制都会消耗大量时间;
2023-05-18 23:45:00
346
原创 进程与线程——嵌入式(驱动)软开基础(四)
包括浅度睡眠跟深度睡眠。(2)一个进程个拥有多个线程,线程可以访问其所属进程地址空间和系统资源(数据段、已经打开的文件、I/O设备等),同时也拥有自己的堆栈。答案:每当子进程退出,父进程都会收到SIGCHLD信号,故可在父进程中设置SIGCHLD信号的捕获函数,在捕获函数中回收子进程。(2)线程崩溃的本质就是内存出错,若出错的内存没有被其他线程访问,则不会导致其他线程出错,也就不会导致进程崩溃。(1)僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个。
2023-05-12 23:45:00
672
原创 I/O——嵌入式(驱动)软开基础(三)
(2)波特率判断:将本机波特率分别设置为2400、4800、9600、19200、38600、57600、115200,每个波特率定时1.5秒,对收到的ASCII码进行分析,将小于等于127的认为是正常的字符,将大于127的认为是乱码,当正常字符数目大于等于10倍乱码数目则认为当前波特率为正确波特率,并终止往后搜索。,是对电气特性的规定,作用于数据传输通路,但它并不包含对数据的处理方式。: 采用负逻辑传输,规定-5V ~ -15V等于逻辑“1”,+5V ~ + 15V为逻辑“0”,噪声容限为2V。
2023-05-11 23:45:00
805
原创 寄存器与存储器——嵌入式(驱动)软开基础(二)
后来 Intel 在此基础上注册了奔腾品牌,将x86 一直优化迭代更新,有了奔腾1,奔腾2, 奔腾3,等等,以及现在的新品牌。这样一来,处理器在读取缓存中的数据前,会先从内存中读取数据到缓存,保存缓存和内存中数据的一致性。强制转换数据不需要调整字节内容,因为1、2、4字节数据的存储方式一样。(1)ROM是只读存储器,速度较慢,不能直接与CPU进行交互,断电后数据不丢失,一般用来保存断电不丢失的程序。(1)SRAM:静态的随机存储器,加电情况下,不需要刷新,数据不会丢失,CPU的缓存就是SRAM。
2023-05-10 23:45:00
608
原创 电影《穿普拉达的女王》 The Devil Wears Prada——影评
The Devil Wears Prada is an inspirational film in the United States. It is mainly about a girl who has just graduated from university and hates the hypocrisy of the real society. She doesn’t want to contact people in the upper class. But the reality is cru
2023-04-18 11:43:47
1335
原创 电影《怦然心动》Flipped——影评
Based on the novel written by American writer Wendelin Van Draanen, the film Flipped tells the first love between a young girl Juli and a young boy Bryce. The film moves forward slowly in the rhythm of light joy, and the scene is smooth like flowing water.
2023-04-18 11:39:18
580
原创 Ubuntu下的VSCode终端调试运行及gdb调试
下面我分别在源码第14行,我们可以用。:断点打完后,就可以使用。关键字进行打断点,用。可以查看指定变量的信息。
2023-04-12 22:40:00
865
原创 Win 11 上在VMware 15安装时Ubuntu20.04注意事项(避坑必看)
VMware Workstation 15&16 Pro 安装避坑合集
2023-04-12 16:29:17
1948
1
柔性电子 薄膜材料领域 最新的60+篇文献
2023-04-17
FM立体声广播解调的Matlab源代码 FM LR.zip
2021-02-28
用于USRP发射的带占空比的LFM线性调频文本信号matlab源程序LFM.m
2020-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人