自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 下载vscode安装包速度慢问题解决

下载vscode安装包速度慢问题解决说明,此方法只在谷歌浏览器使用,未验证其它浏览器先去VScode找到要下载的安装包,点击下载,会有如下图然后右击链接,选择复制连接如下https://az764295.vo.msecnd.net/stable/d6ee99e4c045a6716e5c653d7da8e9ae6f5a8b03/VSCodeUserSetup-x64-1.64.1.exe将链接中的“az764295.vo.msecnd.net”替换成“vscode.cdn.azure.cn”得到

2022-02-10 17:17:11 835

原创 Linux零碎知识--wc

Linux零碎知识–wcwc命令wc -l filename 统计文件里有多少行wc -w filename 统计文件里有多少个wordwc -c filename 统计文件里有多少个字节更详细用法可以用wc --help查看wc -l .c 统计目录下所有.c文件的行数wc命令本身不支持递归查看子目录下文件,可以和find命令结合使用wc -l `find . -type f` 统计当前目录下所有文件的行数wc -l `find . -name ".c"` 统计当前

2022-01-28 11:06:23 1616

原创 STM32 读保护的实现

STM32 读保护的实现读保护的实现即可以在代码中实现,也可以通过ST提供的软件实现。基于HAL库的读保护实现使用的开发板是STM32F2系列,代码如下:HAL_StatusTypeDef FLASH_EnableReadProtection(void){ FLASH_OBProgramInitTypeDef OptionsBytesStruct = { 0 }; HAL_FLASHEx_OBGetConfig(&OptionsBytesStruct); HAL_StatusType

2021-09-08 16:23:47 2706

原创 STM32CubeMX 配置网卡参数

STM32CubeMX 配置网卡参数在使用 STM32CubeMX配置网卡时,有一个参数需要配置,即 PHY Address ValueSTM32CubeMX中的PHY有三种配置参数,LAN8742,DP83848,以及User PHY,前两个是最常见的两种PHY芯片的型号,第三种为用户自定义。如果选择LAN8742,那PHY Address Value的值应该怎么配置,这个需要看LAN8720A的数据手册以下内容为转载https://www.cnblogs.com/yangxuli/p/773

2021-09-07 14:29:42 2141

原创 STM32 flash擦除读写

STM32 flash擦除读写记录一下flash的擦除和读写操作,第一次玩嵌入式的板子void flash_thread_entry(void *parameter){ uint16_t my_add = 0x0011; uint32_t SectorError = 0; FLASH_EraseInitTypeDef My_Flash; HAL_FLASH_Unlock(); My_Flash.TypeErase = F

2021-08-17 10:34:46 1526

原创 运行中修改lwip的IP

不重启修改lwip的IP最近项目上有需求要求在不重启程序的情况下完成IP地址的修改,之前都是通过写flash,重启后读flash,再把读到的配置传入lwip初始化,完成ip地址的修改事实上可以在运行中修改,初步实现方式如下,代码环境是HAL库下,STM32F2的板子void change_ip_thread_entry(void *parameter){ struct ip4_addr IP_update; struct ip4_addr Mask_update; struc

2021-08-17 10:27:59 2282 2

原创 各种路由的概念-直连路由、网关路由、主机路由、网络路由等

各种路由的概念路由的分类直连路由在添加的时候使用的是出接口(dev)网关路由在添加的时候使用的是下一跳(gw)主机路由的目的地址是一个完整的主机地址(host)网络路由的目的地址是一个网络地址(net)默认路由的目的地址是0.0.0.0,子网掩码也是0.0.0.0静态路由指由网络管理员手工配置的路由信息动态路由指路由器能够自动地建立自己的路由表,并且能够根据实际实际情况的变化适时地进行调整。策略路由还没特别明白,大体上是更高级更复杂的路由规则,会使用到ip rule上面这些路由分类是在r

2021-01-28 17:58:22 6355 1

原创 CentOS 非正常关机后,启动时卡在进度条

CentOS 非正常关机后,启动时卡在进度条装有centos系统的电脑,因为意外切断电源导致的非正常关机,重新接上电源以后,发现启动界面卡在进度条上,但是通过ssh却能连接上电脑,并且似乎没有什么问题,查了一下资料,发现网上说了很多,都是因为损坏了相关开机自启程序的文件首先在界面使用alt+Tab可以从进度条的界面切换到详细信息界面,看到是因为/etc/rc.d/rc.local 启动失败原因是我在这个文本中配置了开机自启动的相关程序,但是因为异常断电导致了问题前面提到ssh还可以正常连接上,就将

2021-01-10 15:41:16 1024 1

原创 Linux零碎知识--expect

Linux命令–expectexpect命令简单介绍就是,它可以模拟键盘输入文本,它是一个自动化交互套件,主要用在执行命令或者程序需要输入密码或者其它文本是,可以自动输入,不至于让终端处于阻塞态expect的用法,网上搜搜有很多,这里给出两个链接linux expect详解脚本ssh连接自动填密码(expect)这两个链接里都给了详细的例子,但是我在使用的时候,发现了一个需要注意的地方,也是容易出错的地方#! /bin/bash expect -c " set timeout 1;

2020-11-25 19:45:36 446

原创 Linux零碎知识-修改系统时间

centos系统时区修改安装完成的centos7默认是美国纽约时区,可以通过date -R查看时区,下图中的-0500就表示美国纽约的时区,而北京或者上海时区,应该是+0800Sun, 22 Nov 2020 22:59:34 -0500修改方式很简单,依次执行以下命令即可cd /etcln -s /usr/share/zoneinfo/Asia/Shanghai localtimereboot重启以后再查看时间Mon, 23 Nov 2020 12:00:27 +0800完成路漫

2020-11-23 12:01:31 159

原创 多线程重入ctime

ctime----多线程不可重入折腾了大半天,结果先放在最前面,ctime函数是不可重!不可重!不可重入的多线程编程,最坑的地方就是函数的是否可重入,也就是它是否线程安全的,很多时候,一些奇奇怪怪的错误都是因为一些常用函数不可重入导致的。今天出现的问题,一开始我的方向以为是printf() & fprintf()的可重入性导致的,网上都说这两个函数是不可重入的(网络结论,未做求证)问题环境如下,一个多线程的项目中,调用这个函数打印log到文件voidprint_log(int devic

2020-11-18 18:20:03 452

原创 解决ubantu共享文件以及跨系统复制粘贴问题

ubantu共享文件昨晚电脑自动重启,导致我的虚拟机被异常关闭,今天再使用的时候,发现共享文件夹不见了,/mnt/hgfs下为空,通常情况下,重装vmware-tools就行了,至于怎么装,网上有详细教程,但是我重装以后还是不行,网上的一些方法都是针对一开始设置共享文件夹,而不是共享文件夹一开始存在,后来不存在的问题。在我再次重装vmware-tools时,发现一些问题,网上都是说执行sudo ./vmware-install.pl以后,一路回车就行,其实不然,如果时是再次重装vmware-tools时

2020-11-17 12:00:22 321

原创 字符串处理常用函数2

字符串处理常用函数2strncmp & strcmpstrncmp & strcmp都是用来比较字符串的,以前经常用的函数大多是strcmp,其实它还有一个衍生的函数strncmpstrcmp头文件:string.h函数原型:int strcmp(const char* stri1,const char* str2);参数:参数 str1 和 str2 是参与比较的两个字符串。返回值:如果返回值 = 0,则表示 str1 等于 str2;否则不等strncmp头文件:str

2020-11-16 18:02:58 131

原创 读写锁和文件读写对速度的影响

读写锁和文件读写对速度的影响因项目需求,添加一个功能,要不每次都打开一个文件,并遍历它,要不是一次读取至全局变量,每次遍历全局变量加读写锁,这两钟方案的速度需要简单测试一下代码如下#include <stdio.h>#include <sys/time.h>#include <pthread.h>pthread_rwlock_t test_rwlock;void fun_lock(){ int i = 0; struct timespe

2020-11-16 15:58:15 259

原创 Linux零碎知识-tail命令

Linux零碎知识-tail命令tail命令是用来查看文件的一个命令,最大的用处是可以实时显示文件的修改情况,常用的参数有:tail -n 100 test.txt 表示查看文件的最后一百行tail -n -100 test.txt 表示从第100行开始查看至文件最后一行tail -f test.txt 表示动态追踪文件,当文件发生修改时,实时的显示在屏幕上路漫漫其修远兮,吾将上下而求索...

2020-11-11 19:55:26 223

原创 Linux零碎知识-elf文件

Linux零碎知识-elf文件可以使用readelf命令读取elf文件,例如我们在linux上编译出来的可执行文件readelf命令有很多参数可选readelf -a 显示全部信息readelf -s 显示符号表的相关信息因项目需求,需要降低固件的大小使用size 命令可以看固件代码段,数据段, bss段的大小...

2020-10-21 21:34:13 495

原创 Git命令记录(1)

Git命令记录(1)git ls-files 加文件名可以查看文件是否被追踪如果远程新建了一个分支,本地没有该分支,可以利用 git checkout --track origin/branch_name ,这时本地会新建一个分支名叫 branch_name ,会自动跟踪远程的同名分支branch_name。git 提交文件时,需要将文件和文件夹修改权限,以下是批量修改的命令chmod 755 -R ./*find . -type f -print0 | xargs -0 chmod 644.

2020-10-15 21:16:41 82

原创 GDB调试技巧(1)

GDB调试技巧(1)set logging file debug_log.txt 设置gdb调试信息保存到文件中set logging on 从此时开始保存set scheduler-locking on 这个是多线程的调试,可以锁住其它线程set print pretty on 用来打印结构体的,非常好使在文件中以如下方式写命令b multi.c:2648

2020-10-15 21:07:26 464

原创 C语言字符串相关函数以及文件读写

C语言字符串相关函数以及文件读写前言大概半年前,就有写博客的打算了,不过一直没有付诸行动,再加上开始做项目管理以后,coding以及debug的机会少了很多,最近自己给自己排的活有少量的coding预备工作,学到了不少新的东西,再者刚刚帮同事解了一个bug,晚饭前不想干活了,遂下定决心写这样一篇博客,记录一下。希望后面能坚持下去。epoll+inotify实现监听文件的修改出现这个需求,是项目中需要实时监控一个blacklist,在程序运行中根据blacklist断开指定的client。具体代码实现

2020-10-15 19:14:58 208

空空如也

空空如也

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

TA关注的人

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