自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SIGPIPE信号 - TCP close & 防止僵尸进程

当服务器close一个连接时,若client端接着发数据。根据TCP 协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。  根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出),所以client会退出。若不想客户端退出可以把SIGPIPE设为SIG_IGN  如: signal(SIGPIPE,SIG_IGN);  这时SIGPIPE交给了系统处理。   

2022-03-05 14:06:55 3198

原创 HttpServletRequest 解析

protected void doPost(HttpServletRequest request, HttpServletResponse response)若param是json字符串用request.getParameterMap()获取到的Map key是json串,value值为空;若用request.getInputStream()来获取参数则是直接获取到json字符串若param是key=value&key=value…类型的字符串(此时传的就不是json串了)用reques.

2022-03-05 13:49:08 785

原创 重复执行shell直到成功

repeat() { while :; do $@ && return; sleep 30; done }repeat wget -c http://www.example.com/software-0.1.tar.gz

2022-01-21 16:14:02 738

原创 arm架构

2022-01-21 09:40:23 1726

原创 让word文档中的代码更美观

直接拷贝到word即可word代码格式化

2022-01-20 10:27:03 703

原创 进程返回值

获取进程返回值echo $?perror $?进程返回值对照表"OS error code 1: Operation not permitted""OS error code 2: No such file or directory""OS error code 3: No such process""OS error code 4: Interrupted system call""OS error code 5: Input/output error""

2022-01-07 09:42:20 272

原创 交叉编译libxml2

wget ftp://xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz./configure CC=aarch64-linux-gnu-gcc --host=arm-linux --prefix=/home/book/tool/libxml2-2.7.2/build_out --with-python=no --without-zlib make make install问题:–without-zlib选项很重要,如果不加此选项,make的时候会提示如下错误:.

2021-12-17 15:15:03 547

原创 关于信号SIGPIPE

tcp通信时,server端莫名退出原因是收到了SIGPIPE信号,默认处理的结束进程;对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号。解决:忽略pipe信号signal(SIGPIPE, SIG_IGN)

2021-12-02 15:21:22 123

原创 c/c++实现http 请求/响应 可做web server

java servlet容器实现web server原理c++实现web server 可依赖于 mongoose ,真的很强大,标准c实现,源码只有一个.c和.h,可移植到单片机使用!!!Mongoose是一个用C语言编写的网络库,它是一把用于嵌入式网络编程的瑞士军刀。它为TCP、UDP、HTTP、WebSocket、CoAP、MQTT实现了事件驱动的非阻塞API,用于客户机和服务器模式功能包括:跨平台:适用于linux/unix、macos、qnx、ecos、windows、android、

2021-12-02 09:45:47 5194

原创 模板应用例子

模板函数#include <iostream>#include <cstdlib>using namespace std;template<class T> //定义声明模板函数T func(T n){ T result; result = n * n + 5;}int main(){ func(5); cout << "func(5)=" << func(5) << endl;

2021-11-25 10:31:30 397

原创 vscode 过程试图写入的管道不存在

开发环境:在windows下使用vscode,ssh远程开发。解决问题:删除远程链接记录,重新连接即可此文件目录为

2021-11-16 15:35:32 1328

原创 f1c100s 调试问题汇总

编译内核编译报错$ sudo apt-get install libssl-dev分区开始分区sudo mkfs.vfat /dev/sdd4 -Isudo fdisk -l 查看存储设备查看分区删除分区创建1分区 32m创建2分区保存分区确定一下分区输入q 离开生成boot.scr拷贝到第一分区...

2021-11-02 13:01:28 1661

原创 f1c100s spi flash分区

spi flash分区u-boot-sunxi-with-spl.bin – 1Msuniv-f1c100s-licheepi-nano.dtb – 64KzImage – 4Mrootfs – 剩余dd if=/dev/zero of=f1c100s_spiflash_16M.bin bs=1M count=16 &&\dd if=/home/book/lichee/u-boot/u-boot-sunxi-with-spl.bin of=f1c100s_spiflash_1

2021-11-02 13:01:17 637

原创 f1c100s 内存卡分区

准备工作分区表第一分区格式:fat32(fat16也可以 没有尝试),bootcmd中mmc 0:1第二分区格式:ext4, bootargs中root=/dev/mmcblk0p2注意:uboot并不在第一分区中,uboot需要写入到sd卡的8k偏移处sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8开始分区sudo mkfs.vfat /dev/sdd4 -Isudo fdisk -l 查看存储设备

2021-11-02 13:01:02 556

原创 f1c100s rootfs调试记录

下载wget https://buildroot.org/downloads/buildroot-2021.08.tar.gz编译配置target options:第一个选项为架构选择,这里选择ARM架构小端模式,第二个为输出的二进制文件格式,这里选择EFL格式,第三个为架构体系,这里选择arm926t,因为F1C200S/F1C100S的架构就是这个架构,第四个为矢量浮点处理器,这里不勾选,因为对于F1C200S/F1C100S而言,其内部没有浮点运算单元,只能进行软浮点运算,也就是

2021-11-02 13:00:46 555

原创 f1c100s kernel调试记录

spi flash修改设备树arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts将原来的&spi0{…}替换为: &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_a>; status = "okay"; spi-max-frequency = <50000000>; flash: w2

2021-11-02 13:00:35 430

原创 f1c100s uboot调试记录

u-bootspi flash启动make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfigmake ARCH=arm menuconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4得到u-boot-sunxi-with-spl.bin文件修改源码在uboot源码目录下 进入 ./include/configs/,修改 suniv.

2021-11-02 13:00:23 876

原创 arm 架构体系

ARMv1就是第一代ARM11之后处理器和指令集架构ARM11芯片之后,也就是从ARMv7架构开始,ARM的命名方式有所改变。新的处理器家族,改以Cortex命名,并分为三个系列,分别是Cortex-A,Cortex-R,Cortex-M。很巧合,又是这三个字母A、R、M。参考 百度百科https://baike.baidu.com/item/arm/75182998-系列产品...

2021-11-02 12:59:38 1009

原创 protobuf入门

编译sudo apt-get install autoconf automake libtool curl make g++ unzip./configure --prefix=/home/work/tool/protobuf-3.18.0-installsudo makesudo make check(可忽略)sudo make install进入bin目录,可以看到编译出来的protoc,这个工具是用来将.proto编译成目标语言的序列化代码demo测试创建工程include

2021-10-25 21:57:42 155

原创 tftp配置

service tftp{socket_type=dgramprotocol=udpwait=yesuser=rootserver=/usr/sbin/in.tftpdserver_args= -s /var/tftpboot/disable=noper_source= 11cps= 100 2flags= IPv4}

2021-10-06 21:18:23 191

原创 vscode ssh连接失败

windows上使用vscode ssh连接到linux服务器,一直可以正常使用,但是突然就连接失败了,报错一下log原因是:vscode自己更新了,导致原有的服务器上~/.vscode-server中的文件过期了,如果服务器一直连接外网的,那么vscode会自己下载,如果服务器没有连接外网,就出现了我的情况,一直连接不成功,一直报错下面的信息。解决方法:打开服务器网络 或者 手动去下载包上传到服务器(见第二章节)[08:48:13.513] Server installation process a

2021-08-06 09:59:25 20825 12

原创 ubuntu使用gparted扩展分区

sudo gparted创建扩展分区 再创建逻辑分区(文件系统选择linux-swap)最后选择应用 即可df -h查看分区效果

2021-06-21 17:19:56 2754

原创 vi实用命令

创建新标签:ctrl+shift+p切换标签:alt + n (n=1,2,3)关闭标签:ctrl+shift+nvi的三种模式:插入模式,命令模式,末行模式i:插入模式,在当前光标前插入I:插入模式,在行首插入a:插入模式,在光标后插入A:插入模式,在行尾插入o:像下插入一行O:像上插入一行移动光标:h j k l 左下上右M:光标移动到中间行L:光标移动到最后一行行首G:移动到指定行,行号+Gw:向后一次移动一个字b:向前一次移动一个字{:按段移动,上移}:按

2021-06-13 11:10:29 141

原创 dd命令的conv=swab属性

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。obs=bytes:一次输出bytes.

2021-05-29 22:03:02 375

原创 实时动态定位(RTK)

实时动态定位:Real-Time KinematicRTK技术的关键在于使用了GPS的载波相位观测量,并利用了参考站和移动站之间观测误差的空间相关性,通过差分的方式除去移动站观测数据中的大部分误差,从而实现高精度(分米甚至厘米级)的定位。RTK技术在应用中遇到的最大问题就是参考站校正数据的有效作用距离。GPS误差的空间相关性随参考站和移动站距离的增加而逐渐失去线性,因此在较长距离下(单频>10km,双频>30km),经过差分处理后的用户数据仍然含有很大的观测误差,从而导致定位精度的降低和无

2021-05-28 13:09:59 5561

原创 Linux命令行和shell脚本大全

df 命令有时你需要知道在某个设备上还有多少磁盘空间。df命令可以让你很方便地查看所有已挂载磁盘的使用情况。$ dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda2 18251068 7703964 9605024 45% //dev/sda1 101086 18680 77187 20% /boottmpfs 119536 0 119536 0% /dev/shm/dev/sdb1 127462 113892 1357

2021-05-19 11:00:40 345

原创 消息队列

/* * @Descripttion: * @version: 1.0.0 * @Author: zhangyasheng * @Date: 2020-11-10 12:42:34 * @LastEditors: zhangyasheng * @LastEditTime: 2020-11-30 14:03:46 */#include "input_manager.h"//每个接口都对应一个输入队列InputOpr g_InputOpr_event0;InputOpr g_Inp

2021-04-05 13:56:13 149

原创 vscode免密ssh

将windos环境下的ssh公钥放到服务器上就可以没有公钥就生成$ ssh-keygen -t rsa -b 4096写入到服务器端authorized_keys文件里(没有就自己创建)

2021-04-01 08:38:43 132

原创 shell学习

有道云笔记#!/bin/bashecho `date`A=worldecho $Aecho ${A}unset Aecho $Aecho "shell name:"$0array=(aa "aa" 11 22 33 66)echo ${array[0]}echo ${array[1]}echo ${#array[*]}echo ${!array[@]}echo ${array[@]:1:2}#!/bin/bashA=123456B=${A:2:2}echo

2021-03-31 22:33:54 155 1

原创 shell字符串查找

#!/bin/bashstrA=`git remote show origin`strB="(最新)"check_git_remote(){ local result=$(echo $strA | grep "${strB}") if [[ "$result" != "" ]] then echo "包含" else echo "不包含" fi}main(){ echo `date` check_git

2021-03-29 21:58:17 481

原创 ubuntu定时任务

添加定时任务的两种方法/etc/crontab/var/spool/cron添加定时任务使用第一种方法添加一个定时任务,一分钟调用一下timer.sh输入命令crontab -e选择编辑器zhangyasheng@ybcs-virtual-machine:~$ crontab -eno crontab for zhangyasheng - using an empty oneSelect an editor. To change later, run 'select-e

2021-03-26 19:32:01 500

原创 文件IO和标准IO

文件 IO 是 Linux 系统提供的接口,针对文件和磁盘进行操作,不带缓存机制;标准 IO 是 C 语言函数库里的标准 I/O 模型,在 stdio.h 中定义,通过缓冲区操作文件,带缓存机制。Linux 系统中一切皆文件,包括普通文件,目录,设备文件(不包含网络设备),管道,fifio 队列,socket 套接字等,在终端输入“ls -l”可查看文件类型和权限。标准IO文件IO打开/创建fopenopen读getc,fgetc,getchar,fgets,gets

2021-03-16 22:29:10 174

原创 笔记

linuxdd-运维笔记dd-菜鸟greptar不压缩expr 表达式shell&& ||git分支

2021-03-15 13:40:23 94

原创 指针作为函数参数并做内存申请的误区

#include <stdio.h>#include <malloc.h>#include <stdlib.h>#define MEM_LEN 100#define DEMO 1int fun1(char *p){ p = malloc(MEM_LEN); if(p == NULL){ printf("%s:malloc err\n",__FUNCTION__); return -1; }

2021-03-11 22:41:27 251

原创 vscode避免每次ssh都输入密码

打开cmdssh-keygen -t rsa -C "xx@qq.com(换成你的邮箱)"一路回车 写yid_rsa为私钥id_rsa.pub为公钥Your identification has been saved in C:\Users\Lenovo/.ssh/id_rsa.Your public key has been saved in C:\Users\Lenovo/.ssh/id_rsa.pub.打开服务器,/root/.ssh将服务器上的authorized_keys(如

2021-03-09 22:09:21 7788

原创 vscode函数跳转失败解决

这里有本地插件和远程插件,因为我的代码在远端,所以我要把远端插件也装上。函数跳转的插件是C/C++,安装下面两个插件即可解决问题

2021-03-09 11:41:22 2477

原创 centos搭建vuepress

一、准备工作需要nodejs的支持。查一下版本这就需要搭建nodejs的环境了。nodejs环境搭建# 安装wget https://nodejs.org/dist/v12.18.3/node-v12.18.3-linux-x64.tar.xztar xf node-v12.18.3-linux-x64.tar.xzmv node-v12.18.3-linux-x64 /usr/local/# 配置系统变量vim /etc/profile.d/node.sh#!/bin/bash

2021-03-06 19:10:21 362

原创 ubuntu搭建vuepress

准备nodejs环境,VuePress 需要 Node.js (opens new window)>= 8.6zys@zys-virtual-machine:~$ nodejs -vv10.24.0zys@zys-virtual-machine:~$ npm version{ npm: '6.14.11', ares: '1.15.0', brotli: '1.0.7', cldr: '35.1', http_parser: '2.9.4', icu: '64.2',

2021-03-05 22:38:02 538

原创 ubuntu安装node.js

sudo apt install curlcurl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -sudo apt-get install -y nodejs如果你要安装12.x.x 的版本,只需要修改添加源地址中的数字即可,比如:curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -查看版本nodejs -v...

2021-03-05 20:51:36 182

原创 ubuntu 暂时不能解析域名

错误:1 http://security.ubuntu.com/ubuntu xenial-security/main amd64 curl amd64 7.47.0-1ubuntu2.18暂时不能解析域名“cn.archive.ubuntu.com”错误:1 http://security.ubuntu.com/ubuntu xenial-security/main amd64 curl amd64 7.47.0-1ubuntu2.18暂时不能解析域名“cn.archive.ubuntu.com”

2021-03-05 20:45:57 5572 3

解决boa服务器get/post请求中文乱码问题

https://blog.csdn.net/myWorld001/article/details/109261850

2020-10-27

nodemcu_yellow.zip

首先烧写固件,下载本代码,设备配网,成功以后自动连接到微信小程序物联2019,注册用户,添加设备,即可实现控制板子自带的led。 1.D1(GPIO5)引脚接地 板子上电 擦除wifi信息 2.D2(GPIO4)引脚接地 板子上电 擦除文件系统 3.如果没有wifi信息 自动生成热点(SetupGadget_FXXXXX) 手机连接热点 配置wifi信息即可 4.支持mqtt自动重连 5.wifi账号密码连接时 500ms亮500ms灭 连接成功亮1s 灭掉 6.配网状态时 250ms亮100ms灭 连接成功亮1s 灭掉 烧写文件: dht11.lua gpio.lua init.lua main.lua mqtt.lua 五个文件 本代码适用于黄色nodmcu板 黑色esp -12板 其他型号没有测试 固件信息: NodeMCU 3.0.0.0 built on nodemcu-build.com provided by frightanic.com branch: master commit: 3d917850180f67adc7f2c6b5d00f27c152e7194c release: release DTS: 202002231746 SSL: false build type: integer LFS: 0x0 modules: adc,bit,dht,encoder,enduser_setup,file,gpio,http,i2c,mqtt,net,node,ow,sjson,spi,tmr,u8g2,uart,wifi build 2020-04-16 00:58 powered by Lua 5.1.4 on SDK 3.0.1-dev(fce080e)

2020-08-18

空空如也

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

TA关注的人

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