自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 资源 (2)
  • 收藏
  • 关注

原创 手指机器人使用说明

手指机器人使用说明

2024-02-19 15:31:46 422

原创 树莓派基于rust编写linux驱动模块

​ 最近一直在折腾rust编写linux驱动,这个是官方仓库。官方仓库提供了基本入门文档,也可以参考我之前的文章。网上也有一些,但是基本都是基于X86的。我这里提供一份基于嵌入式Linux的rust驱动编译模块模板:https://github.com/ZechariahZheng/rpi-linux-module-rust​ 具体编译过程可以看项目中的README。​ 更多的例程在官方仓库中的sample/rust/目录下找到。​ 用rust写驱动的过程给我的感觉是,官方的例子不多,到头还是在重用C

2022-03-25 20:59:56 2155

原创 树莓派基于rust编写linux驱动模块

​ 最近一直在折腾rust编写linux驱动,这个是官方仓库。官方仓库提供了基本入门文档,也可以参考我之前的文章。网上也有一些,但是基本都是基于X86的。我这里提供一份基于嵌入式Linux的rust驱动编译模块模板:https://github.com/ZechariahZheng/rpi-linux-module-rust​ 具体编译过程可以看项目中的README。​ 更多的例程在官方仓库中的sample/rust/目录下找到。​ 用rust写驱动的过程给我的感觉是,官方的例子不多,到头还是在重用C

2022-03-25 20:58:27 1892

原创 Rust编写linux内核模块——详细步骤

以下都是在Ubuntu20.04-server环境0、下载源码git clone https://github.com/Rust-for-Linux/linux.git1、安装rustc编译器要求,rustup 1.57.0curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh #安装rustup2、安装Rust标准库的源码cd linux #打开下载的代码文件夹rustup override set 1.

2022-03-25 20:40:18 2145 2

原创 Ubuntu18.04中cURL 77 错误:error setting certificate verify locations

​ 使用curl的过程中,出现了curl(77)的错误。按照网上的做法,一直没有解决。最后重新安装ca-certificates便解决了。sudo apt install --reinstall ca-certificates​ 但是,我不能重新安装成功,最后修改了/etc/apt/sources.list中的源,将其中的https全部改为了http。然后再重新apt update便可以了。...

2022-03-25 20:38:44 1579

原创 frp服务端与客户端安装

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-03-25 20:37:06 667

原创 OpenWrt无线桥接同网段主路由的方法

OpenWrt无线桥接同网段主路由的方法注:有些版本的openwrt需要将DNS转发关闭,否则无法上网。

2021-08-22 11:35:46 6142

原创 树莓派Octoprint内网穿透

一、安装Octoprint​ 这个教程有很多,这里便不详细介绍。其实,除了树莓派任何可以跑linux系统的板子,都是可以安装Octoprint的,可以参考我之前的文章。二、内网穿透​ 内网穿透的工具有很多,我还是首推SakuraFrp,首先它的内网穿透挺稳定的,并且穿透之后的访问路径是固定的,而不像natapp之类重启之后便是另一个新的访问地址。固定的地址,方便我们将应用设置为开机启动后,访问固定的路径。配置如下:2.1 申请SakuraFrp账号并完成实名注册​ 这里便不详细说了,进入Sakur

2021-08-09 11:26:27 1495

原创 3D打印机切片配置设置

本文的设置全部使用Simplify3D切片软件一、设置打印平台的大小根据自己的打印机设置X/Y/Z轴的数据,在工具->选项->模型二、新增一个打印进程三、挤出机的喷嘴直径设置喷嘴的直径,一般为0.4mm,根据自己打印机的喷嘴进行设置。挤出倍率需要自己进行调整,一步步进行调试,倍率过高会挤出过多,倍率过低会挤出过少。四、层高/层数双击打印进程,0.1-0.2mm则是比较一般的精度,粗糙一点的设置为0.3-0.4mm即可;封顶层数一般设置2-3层即可。五、打印速度设置一般推

2021-08-02 11:02:37 9234

原创 platformio使用OTA升级esp8266固件

​ 所谓OTA,就是Over-The-Air的缩写。有人将其翻译为“空中下载”,也有翻译为“隔空传输”。无论如何翻译,对于ESP2866来说,通过OTA我们无需将ESP8266与电脑连接,而仅仅通过WiFi就可以用向ESP8266上传程序。当然,可以通过使用Arduino IDE,但是我更喜欢使用platformio,使用如下:一、使用自带的OTA升级固件#include <Arduino.h>#include <ESP8266WiFi.h>#include <ESP8

2021-07-24 13:57:43 2204 4

原创 docker使用

运行交互式的容器$ docker run -it ubuntu /bin/bash各个参数解析:-t: 在新容器内指定一个伪终端或终端。-i: 允许你对容器内的标准输入 (STDIN) 进行交互。需要确认容器有在运行,可以通过 docker ps 来查看:在容器内使用 docker logs 命令,查看容器内的标准输出:下面的命令来停止:$ docker stop <容器id>#停止的容器可以通过 docker restart 重启:$ docker re

2021-07-19 20:36:06 109

原创 python3批量转换视频为音频

输入文件格式:ffmpeg支持的视频文件输出格式格式:mp3文件使用方法:注意:使用前需要先安装 ffmpeg 才行(Python最终调用的是 ffmpeg 命令)Mac上安装 ffmpeg 命令:brew install ffmpeg使用说明:python convert.py -h输出:usage: Python批量转换 视频 为 音频MP3(即提取音频文件) [-h] [--output-dir OUTPUT_DIR]

2021-07-11 21:40:46 374

原创 黑群晖樱花sakura内网穿刺

樱花Sakura Frp老牌内网穿透,服务稳定,多种客户端可以选择。免费5个隧道,每天通过 每日签到 可以随机获得 1~4 GiB 流量。一、注册账号注册地址:https://www.natfrp.com/注册完毕后花1块钱实名认证,必须完成实名认证才允许使用 国内节点。啊啊啊!!!重点1、获得访问秘钥:啊啊啊!!!重点1、获得访问秘钥:啊啊啊!!!重点1、获得访问秘钥:二、创建隧道建议建议建议:HTTPS,本地端口:5001 目前测试:全部节点访问OK!这里附上黑群晖的常用端口:

2021-07-04 11:29:00 11505 1

原创 vue2.x适配wps加载项

**本文地址:**https://zechariahzheng.github.io/posts/vue2.x%E9%80%82%E9%85%8Dwps%E5%8A%A0%E8%BD%BD%E9%A1%B9/wps加载项概述​ WPS 加载项是一套基于 Web 技术用来扩展 WPS 应用程序的解决方案。每个 WPS 加载项都对应打开了一个网页,并通过调用网页中 JavaScript 方法来完成其功能逻辑。 WPS 加载项打开的网页可以直接与 WPS 应用程序进行交互,同时一个 WPS 加载项中的多个网页形

2021-06-26 11:04:31 3259 1

原创 树莓派FreePBX设置电话系统

title: “树莓派FreePBX设置电话系统”date: 2021-02-21T15:36:36+08:00draft: false树莓派FreePBX设置电话系统1、下载RasPBX系统,烧入到sd卡中。使用的版本raspbx-04-04-20182、在浏览器中输入树莓派的IP地址3、创建分机,按照以下步骤:先创建一个超级用户登录创建分机按照此种方式创建多个用户即可,但是测试的话最好使用手机与手机,或者手机与sip电话。手机与电脑的话,可能没有声音。测试软件linep.

2021-04-06 16:37:58 1159

原创 LeetCode_49 字母异位词分组

LeetCode_49 字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]思路:维护一个映射ans:{String->List} ...

2019-11-30 16:42:09 116

原创 LeetCode_48 旋转图像

LeetCode_48 旋转图像给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]...

2019-11-29 14:18:34 108

原创 全排列——LeetCode47

本人自建blog(www.zechariahzheng.top)全排列——LeetCode47给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mtc8ZChO-1574907479642)(C:\Users\Z...

2019-11-28 10:19:33 129

原创 Git上传代码至码云

本人自建blog(www.zechariahzheng.top)Git上传代码至码云第一步:​ 在文件夹下打开git控制台输入git init,进行git文件夹的创建,或者使用gui界面创建一个仓库[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l2grgAQN-1574907167666)(C:\Users\ZZS\AppData\Roaming\Typor...

2019-11-28 10:16:06 107

原创 shell脚本自动启动内网刺透

shell脚本自动启动内网刺透本人自建blog网站(www.zechariahzheng.top)blog运行在内网环境下,需要进行内网的穿刺,但是内网穿刺工具经常运行几天之后便挂了。思路是:利用shell脚本,得知是否穿刺成功,如果没有的话重新启动进程。最后将脚本加入到Linux的crontab任务之中便可以了内网穿刺工具Sakura_frpc_linux_arm#!/bin/bash...

2019-11-27 21:55:17 149

原创 Java父类protected变量属性

首先对于Java中的protected访问控制符,具有如下属性protected 访问控制符能被用于方法和成员变量 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样 能被该类的子类所访问,子类可以和父类不在一个包中。 另一个包中的子类只能通过子类或其子类的引用来访问父类中受保护的成员。同一包中的子类没有此限制。这样可以确保来自其...

2019-08-14 20:02:25 5282

转载 小米Git (转)

问题题目描述 git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base’&lt;–base&lt;–A&lt;–A’ ^ | — B&lt;–B’ 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树...

2018-09-05 22:43:20 275

转载 进程间通信(IPC)[转载]

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。一、管道管道,通常指无名管道,是 UNIX 系统IPC最古老的形式。1、特点:它是...

2018-08-31 15:10:20 119

转载 数据结构与算法系列 目录

&nbsp;最近抽空整理了”数据结构和算法”的相关文章。在整理过程中,对于每种数据结构和算法分别给出”C”、”C++”和”Java”这三种语言的实现;实现语言虽不同,但原理如出一辙。因此,读者在了解和学习的过程中,择其一即可!下面是整理数据数据和算法的目录表,对于每一种按照C/C++/Java进行了划分,方便查阅。若文章有错误或纰漏,请不吝指正。谢谢!&nbsp;数据结构和算法目录表...

2018-08-30 11:41:38 148

转载 B+树介绍

目录B+树B+树的插入操作B+树的删除操作&nbsp;回到顶部B+树B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有使用B树的情况了。B+树的定义十分复杂,因此只简要地介绍B+树:B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树...

2018-08-29 19:24:44 533

转载 B+树介绍

目录B+树B+树的插入操作B+树的删除操作&nbsp;回到顶部B+树B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有使用B树的情况了。B+树的定义十分复杂,因此只简要地介绍B+树:B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树...

2018-08-29 19:24:41 220

转载 Linux进程管理——fork()和写时复制

写时复制技术最初产生于Unix系统,用于实现一种傻瓜式的进程创建:当发出fork(&nbsp;&nbsp;)系统调用时,内核原样复制父进程的整个地址空间并把复制的那一份分配给子进程。这种行为是非常耗时的,因为它需要:&nbsp;·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为子进程的页表分配页面·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp

2018-08-29 15:37:08 167

转载 子进程复制了父进程的什么

如果你对代码段、数据段、栈、堆存放哪些数据还不是很清楚,请先看我写和Linux 内存管理。有时会出现父子进程变量的地址一样,但值不一样。看下面代码:#include&lt;stdio.h&gt;#include&lt;string.h&gt;#include&lt;stdlib.h&gt;#include&lt;unistd.h&gt;main(...

2018-08-29 11:19:47 357

转载 linux进程的五个数据段

进 程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。一、Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的。...

2018-08-29 10:09:24 1192

转载 从地址空间理解fork

Linux Process Address Space high address +---------------+ | | | Stack | int local_b | | ...

2018-08-29 10:07:53 429

转载 gcc/g++编译详解

转载自:https://blog.csdn.net/uisoul/article/details/60135764 GNU CC(简称gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++、Object C、Jave等多种语言编写的程序。gcc又可以作为...

2018-08-28 22:13:52 886

转载 grep命令详解

转载自:https://www.cnblogs.com/wangcp-2014/p/5146335.html1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要...

2018-08-28 22:03:50 426

转载 find命令参数大全

Linux中find常见用法示例·find&nbsp;&nbsp; path&nbsp;&nbsp; -option&nbsp;&nbsp; [&nbsp;&nbsp; -print ]&nbsp;&nbsp; [ -exec&nbsp;&nbsp; -ok&nbsp;&nbsp; command ]&nbsp;&nbsp; {} \; 转载自:https://www.c

2018-08-28 22:01:04 329

转载 linux常用命令大全

作者:蓝藻时间:2018.7.3前言本文特点授之以渔:了解命令学习方法、用途:不再死记硬背,拒绝漫无目的;准确无误:所有命令执行通过(环境为centos7),拒绝复制粘贴;实用性高:命令多为实际工作中用到的,实例讲解,拒绝纯理论;条理清晰:分类归纳,快速找到想要的命令,拒绝天马行空;总结性强:只列常用语法,易错情况强调,拒绝照搬照套。学前须知适用人群:开发、测试、运维文...

2018-08-28 21:47:47 11606 1

转载 STL 容器一些底层机制

转自:https://blog.csdn.net/TQH_Candy/article/details/52387714 1、vector 容器vector 的数据安排以及操作方式,与 array 非常相似。两者的唯一区别在于空间的运用的灵活性。arra...

2018-08-23 16:37:20 159

转载 同一进程中的线程究竟共享哪些资源

转自:https://www.cnblogs.com/baoendemao/p/3804677.html进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.&nbsp;线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如...

2018-08-22 11:54:49 4867

转载 C++中的lower_bound和upper_bound函数

转自:http://bbqub.cnblogs.com/p/7774756.html关于lower_bound和upper_bound共同点函数组成:一个数组元素的地址(或者数组名来表示这个数组的首地址,用来表示这个数组的开头比较的元素的地址,不一定要是首地址,只是用于比较的“首”地址)+ 一个数组元素的地址(对应的这个数组里边任意一个元素的地址,表示这个二分里边的比较的”结尾’地址)...

2018-08-21 23:33:11 1309

转载 C++类中静态变量和静态方法的使用

转自:https://www.cnblogs.com/ppgeneve/p/5091794.html静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。  静态数据成员  在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则...

2018-08-20 10:24:27 6882

原创 基数排序

基数排序:基数排序是桶排序的扩展,它的基本思想是:将整数按位切割成不同的数字,然后按每个位数分别比较。具体做法:将所有待比较数值统一为同样的长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序数列。 一、基数排序原理(转自:https://blog.csdn.net/lemon_tree12138/artic...

2018-08-19 19:05:12 126

转载 堆排序

转自:http://www.cnblogs.com/skywang12345/p/3602162.html&nbsp;概要本章介绍排序算法中的堆排序。目录1.&nbsp;堆排序介绍2.&nbsp;堆排序图文说明3.&nbsp;堆排序的时间复杂度和稳定性4.&nbsp;堆排序实现4.1&nbsp;堆排序C实现4.2&nbsp;堆排序C++实现4.3&nbsp;堆排序Java实现转载请注明出...

2018-08-19 11:46:58 212

wps加载项适配vue2.x代码

wps加载项适配vue2.x代码

2021-06-26

中景园电子0.96寸OLED显示屏_C51系列_带字库.zip

STM32F103C8T6中景园电子0.96寸OLED显示屏_C51系列_带字库,GT20L16S1Y字库芯片

2020-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除