自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Linux/Windows、C/C++、嵌入式开发、物联网、消费电子领域的技术博客

博客内容为博主的技术笔记,经验总结,最佳实践,开源/工具推荐,免费资源下载,关注本博客,提升你的技术能力,开阔视野

  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 VSCode实用远程主机功能

作为嵌入式开发者,经常在各种系统平台或者开发工具之间切换,比如你的代码在Linux虚拟机上,如果不习惯在Linux下用IDE,那么我尝试将Linux的目录通过samba共享出来,在windows下用网络映射盘的方式映射出来,VScode直接去打开远程文件夹,没想到速度巨慢,没有办法顺畅的浏览代码。5. 这个方式其实是Remote-SSH方式,需要你的虚拟机已经安装SSH Server,如果没有安装可以使用安装命令进行安装。1. 打开VSCode,点击“连接到按钮”,在上方弹出的选项中选择“连接到主机”

2023-11-03 13:53:50 1893

原创 从树莓派系统安装小白到系统SD卡复制克隆高手

为了快速复制克隆嵌入式设备,把当前已经调试好的设备的系统做成image系统镜像,无疑是最快捷的。对于树莓派系统来说,属于嵌入式设备,使用树莓派的imager去烧写出系统,然后安装必要的软件,当系统完全设置好之后就可以克隆了......

2022-07-08 15:19:33 4020

原创 修改Git本地仓库的远程地址

git remote set-url origin 仓库地址。

2024-01-13 22:33:28 483 1

原创 树莓派新手装机指南

如果你决定买一个树莓派,那么你一定已经了解过,不需要再做多余的介绍,由于之前就玩过树莓派,还是想弄一个属于自己的树莓派,因为它就像一个微型电脑,耗电非常低,我可以在家里24小时开机,那么就可以做很多事情,比如利用它的USB3.0外界SSD硬盘,做一个家庭存储服务器。现在已经出了树莓派5了,从性价比的角度来考虑,我还是选了树莓派4B,4G版本。

2023-12-13 01:05:18 270

原创 开源+GUI+C/C++

随着开源社区的发展,在众多的GUI开发工具中,开源、免费将变得越来越流行,但是开源的特点是很多东西需要整合,需要动手能力强的人来搭建出一套得心应手的环境,这也是开发者必备的技能之一,下面就介绍了这样一套GUI开发环境的搭建教程。MSW是微软的Visual Studio集成开发环境安装后的工程管理系统,因此使用此种编译方式,需要先把Visual Studio安装好,提供了各个版本的工程文件供编译使用。需要先下载源码,编译出库文件,在你的程序中调用它的库使用,支持多种编译库的方式。1.使用MinGW编译。

2023-11-30 16:36:12 237

原创 实用工具合集

非常实用的程序员工具合集

2022-09-28 10:32:40 165 1

原创 开源免费好用的磁盘镜像工具Etcher

有非常多的磁盘镜像,文件刻录工具,这里推荐一款开源免费,简洁实用的磁盘镜像文件刻录工具:Etcher。Etcher 是一个快速将镜像文件刻录到 USB 设备或 SD 卡中的工具,操作简单

2022-07-06 16:25:37 5780

原创 免费安装Visual Studio 2022

我使用软件的选择顺序是优先选择开源软件,其次是社区免费版本,大部分时间我都是在linux下开发,很少在windows下写代码。但是在这microsoft还是处于统治地位的时代,而且很多新手写代码开始还是倾向于在windows下,因此推荐Visual Studio 2022 社区版,即满足我的个人选择倾向,也是很多人需要的,下面介绍如何使用免费社区版的VS2022。下载地址为:打开网页,找到这个地方选择community 2022版本,这个是免费使用的,所以你不用去找破解,但是在下载前可能需要欧用邮箱注

2022-07-05 23:16:39 23738

原创 树莓派上ubuntu22.04版本安装软件错误提示

树莓派新烧写了ubuntu22.04的版本,新版本需要安装更新一些软件,发现只要一更新,就报错

2022-06-30 17:36:41 6972

原创 树莓派更新工具链

在其他环境上 编译的bin文件,在我的树莓派上竟然无法运行,原来是由于glibc的库太旧导致,所以只能升级树莓派的glibc了。

2022-06-30 17:24:10 1685

原创 Ubuntu的环境变量设置

目录1、export变量2、修改用户环境变量.bashrc文件 (对单一用户生效:永久的)3、修改系统环境变量/etc/profile文件 (对所有用户生效:永久的)4、修改系统环境变量 /etc/environment (永久的,与用户无关)5、总结1、export变量export PATH=$PATH:/usr/lib/jvm/java/jdk1.6.0/binexport CLASSPATH=.:/usr/lib/jvm/java/jdk1.6.0/libex

2022-05-16 10:41:41 767

原创 googletest单元测试框架安装及使用

1、下载googletest 介绍:现在的googletest软件包分两部分,一部分是gtest,单元测试框架,实现对单元测试用例的管理和设计,另一部分是gmock,实现打桩功能,这两个可以结合起来使用,当然如果不使用gmock,只是用googletest也可以。我就不喜欢gmock进行打桩,它使用起来太麻烦,而是使用自己实现的函数hook方式的函数拦截,这样更直接了当,相率高。 下载官网:GitHub - google/googletest: GoogleTest - Googl...

2022-05-02 16:14:17 4936

原创 申请的静态数组过大导致程序连接失败

relocation truncated to fit: R_X86_64_PC32 against symbol `s_SchedulerUtilsData' defined in COMMON section in ./target/objs/common/Scheduler/src/LINUX/xxxx.o报这个错误是由于申请的静态内存过大,编译通过,但是连接的时候失败,要么用malloc,如果malloc也失败,那还是用动态申请,一点点的去搭积木把,比如用链表或者树去管理这些数据。..

2022-04-13 19:05:22 613 4

原创 Notepad++ 删除关键词所在行

1、按组合键Ctrl + F,查找模式选择 '正则表达式',不选 '.匹配新行'2、查找目标输入 : ^.*关键字.*\r?\n (不保留空行) ^.*关键字.*$ (保留空行)3、替换为:(空)

2022-04-12 13:11:49 4888 1

原创 Discuz论坛管理员密码忘记重置

常时间不用的密码很容易忘记,那么要重置就需要很费一番周折,你想啊,你能重置,黑客也可以啊,下面就是重置的方法,前提当然是你由操作系统的root权限,如果操作系统root密码都没了,就重新装机吧(当然也有操作系统root重置方法)1、修改数据库配置文件sudo vim /etc/my.cnf.d/server.cnf2、启动论坛网站sudo systemctl start httpdsudo systemctl start mariadbsudo systemctl start p

2022-04-07 22:22:38 3731

原创 树莓派上串口TTL转RS485模块

该模块实现了TTL信号与RS485信号的互转,主要目的是拉长串口的传输距离,转成485之后,传输距离超过850米.产品特性见此说明:串口TTL转RS485模块 - 丢石头百科https://wiki.diustou.com/cn/%E4%B8%B2%E5%8F%A3TTL%E8%BD%ACRS485%E6%A8%A1%E5%9D%97通信调试注意要点:1、实验室可以不接A/B线的接地线2、3.5V和5V的电源供电可兼容3、注意接线不是以往的RT对TX,而是RX<=>RX,

2022-04-06 17:06:53 4548

原创 RS485串口驱动源代码

1、前言 串口驱动是最简单的一种驱动了,在Linux下一切设备都认为是文件,打开设备就像打开文件一样简单,直接上代码2、RS485.c//--------------------------------------------------------------------------------------------------// Include head files//---------------------------------------------------...

2022-03-29 09:02:21 4804

原创 树莓派4的串口启用设置

树莓派4共有6个串口,1个是mini UART(UART1)及其他5个PL011 UARTs (UART0, UART2, UART3, UART4 &UART5),其中mini UART没有单独的时钟芯片,受CPU运行情况的影响,会有不稳定现象,建议使用其他串口。1、树莓派的串口管脚定义UART0 GPIO14 GPIO15 这个是硬件串口,默认当成串口控制台使用UART1:mini UART 不建议使用其他可以使用的就是UART2,UART3,UART4,UART...

2022-03-21 11:41:38 3609 3

原创 树莓派Raspberry PI 交叉编译及运行

目录1、 下载2、安装3、检查4、编译5、文件查看6、运行1、 下载网上有文章说去git上下载GitHub - raspberrypi/tools这个地址是可以用,但是版本比较老,而且是32位的,现在大部分都64位了,而且多年没有维护了因此,推荐在下面地址下载最新版本https://snapshots.linaro.org/gnu-toolchain/12.0-2022.02-1/aarch64-linux-gnu/下载下面两个压缩包一个是..

2022-03-18 14:11:32 1649

原创 git 从远程仓库获取所有分支并track

远程仓库如果有很多分支,在重新建立本地仓库的时候,要把所有的分支拿下来,可以使用下面的命令,或者把命令放到自己的脚本里自动去运行,效率很高git clone xxxgit branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; donegit fetch --allgit pull --all...

2022-03-09 09:28:40 402

原创 自己搭建代码托管服务器GitLab

目录1、安装git服务器2、信任 GitLab 的 GPG 公钥3、配置镜像路径4、安装 gitlab-ce5、配置6、启动gitlab7、访问8、编辑gitlab.rb9、数据保存1、安装git服务器sudo apt-getupdatesudo apt-getinstall -y curl openssh-server ca-certificatessudo apt-getinstall -y postfix2、信任 GitLab ...

2022-03-03 23:26:14 515

原创 Ubuntu系统中配置Samba服务

1、安装samba服务器sudo apt-get install samba2、修改smb.conf配置文件[global] workgroup = WORKGROUP security=user username map = /etc/samba/smbusers [share] comment=This is samba dir path=/home/seaside create mask=0755 directory mask=07...

2022-02-06 16:13:25 2030

原创 Ubuntu上更换Git登陆设置

一、修改配置修改名称config --global user.name "Your Name"修改邮箱git config --global user.email "Your_Email@Your_Mail.com"查看修改结果config --list二、生成新的rsa秘钥ssh-keygen -C "Your_Mail@Your_Mail.com" -t rsa一路默认设置,overwrite原有的id_rsa文件查看生成的密码:cat ~/.ssh

2022-01-27 16:59:40 1957

原创 写中断服务子程序的注意事项及原因

目录一、中断服务器子程序里面不要有printf二、不要有浮点数运算三、参数几返回值一、中断服务器子程序里面不要有printf1、中断服务子程序设计原则是要快进快出,printf的实现会一直调用到底层逐个字节的打印输出,这种IO操作效率很慢,不适合放到中断里面。如果有锁机制,可能会造成死锁。2、printf是不可重入函数,对于线程来说是不安全的二、不要有浮点数运算浮点数运算需要有额外的寄存器参入计算,也是不可重入的三、参数几返回值没有操作系统的单片机上,中断服务程序

2022-01-27 09:58:56 2829

原创 Ubuntu搭建FTP服务器

一、环境本文搭建的ftp服务器是在Ubuntu20.04上搭建的vsftp服务器,运行在腾讯云上二、安装软件安装vsftp软件sudo apt-get install vsftpd设置成开机启动sudo apt-get install vsftpd启动ftp服务sudo systemctl start vsftpd确认服务是否启动sudo netstat -antup | grep ftp此时,vsftpd 已默认开启匿名访问模式,无需通过用...

2022-01-26 23:36:35 18122 9

原创 把Git服务器上提交的某个文件回退

When you push to server error, you must modify local branch, then push again git reset HEAD^ -- Panel/Tmx/all_in_one.py git checkout Panel/Tmx/all_in_one.py git commit --amend #it will combine this to last commit ...

2022-01-26 15:57:12 947

原创 撤销某次commit中的某个文件

1、查看要回退文件的commit idgit log path/file2、回退某个commit上的某个文件git reset commit_id path/file3、恢复本次提交的文件到要回退的commit id上的那个版本git restore path/file4、增加修改的那个文件git add path/file5、将本次修改合并提交,看起来像没发生过一样git commit --amend6、强推倒remote仓里git pus

2022-01-19 10:27:23 1569

转载 进程间的通信方式及优劣比较

目录一、进程的概念二、进程通信的概念三、进程通信的应用场景四、进程通信的方式1、管道2、信号量3、消息队列4、共享内存5、套接字6、几种方式的优缺点一、进程的概念进程是操作系统的概念,每当我们执行一个程序时,对于操作系统来讲就创建了一个进程,在这个过程中,伴随着资源的分配和释放。可以认为进程是一个程序的一次执行过程。二、进程通信的概念进程用户空间是相互独立的,一般而言是不能相互访问的。但很多情况下进程间需要互相通信,来完成系统的某项功能。进程通过与内.

2022-01-13 22:11:08 2635

原创 数字转二进制字符串

数字转二进制,并按照字符串打印出来,算简单,直接上代码转子转二进制的转化函数:void Num2BinStr(unsigned int num, unsigned char *pBuff, unsigned int length){ if (NULL == pBuff) { return; } memset((void *)pBuff, 0, length); for (unsigned int i = 0; i < length

2022-01-12 17:09:02 789 1

原创 scanf输入回车问题

目录0、问题1、缓冲区2、问题原因3、scanf特点4、解决办法5、正确的代码0、问题先从问题代码说起:#include<stdio.h>int main(){ char a; int b; printf("输入小写字母,输出大写,输入其他字符,输出原输入字符\n"); for (b = 0; b < 5;b++) { scanf_s("%c", &a,1); if (97 <= a && a &lt

2022-01-10 01:16:30 11659 6

原创 Windows11系统的分区调整

之前WIN10系统下的分区调整非常熟悉了,后续升级到WIN11也是必然趋势,毕竟历史车轮滚滚,技术也会不断升级换代,新买的电脑分区C盘直接给了200G,而总共500G的固态硬盘表示不能忍,调整到100G应该就可以了,WIN11的分区调整步骤如下:1、我的电脑->右键属性2、点击系统->存储->磁盘和卷(&v)->windows(c)->属性3、更改大小,在框里填写希望最终的大小,图中是100G4、保存即可5、返回上一步找到未分配,点击..

2022-01-09 23:30:15 11263

原创 不用中间变量交换两个数

在我们C语言C++的QQ群(605820538)里,讨论了一个问题:不用中间变量交换两个数,如果没有见过可能一下子还真想不出来,但是如果在网上一搜有大量的文章讲这个算法,有下面三种方法:1、加法可以交换整形、浮点型变量a = a + b;b = a - b;a = a - b;2、异或法只能交换整形变量,无法交换浮点型变量a = a^b;b = a^b;a = a^b;3、乘除法可以交换整形、浮点型变量,但b不能为0a = a * bb = a / ba

2022-01-09 01:35:43 479

原创 宏定义之-求结构体成员的偏移长度

目录一、宏定义来源二、实现原理1.0地址是不是会引起系统崩溃2.为什么从0开始,从10,或者100开始行不行三、实际应用一、宏定义来源本文介绍结构体相关的宏定义:offsetof,这个宏定义来源于Linux内核中的实现,在Linux内核中有多处头文件中定义了这个宏,都是为了各自模块自己的使用,以Linux 5.10.90 2022年最新更新的版本来说,有这么多地方定义了这个宏:如果要使用这个宏可以使用stddef.h文件里面定义的,或者直接自己定义一遍。...

2022-01-09 00:30:19 636

原创 开源软件相关的网站

在学习或者查阅资料或者下载安装软件时,我都习惯先找他的官网,从官网上下载,这样可以保证版本的真实性和权威性,下面时我收集的一些网址,并且会根据学习工程经历不断地补充更更新。网址列表 Linux内核源码 https://mirrors.edge.kernel.org/pub/linux/kernel/ Libc源码 Index of /pub/linux/libs/libc5/ ...

2022-01-08 21:39:09 837

原创 Git调整commit 的次序

由于多次的调整分支,以及调整某次commit从一个分支移到另一个分支,导致最终在这个分支上的commit次序跟实际开发的次序不一致了,对于有强迫症的程序员来说,看着很不舒服,那么我们可以把git的commit次序调整一下,git log也就跟着变了。1、先把当前未提交的修改stashgit stash save2、查找rebase的idgit logf1c5b7cbba9b11cce392011d819c9a33650b82d5 这个ID之前的两笔提交交换顺序3、调整顺序

2022-01-07 14:28:57 3549

原创 VS Code 字体设置

随着显示屏越来越大,开发人员很多都是配置大屏甚至双屏,所以代码的行数吗,宽度已经不是以前那么局促了,还是按照以前编码风格要求每行不超过80字符,已经有点怪怪的。所以我要把字体设置大一些,解放日趋退化的视力。修改代码区的字体大小按照如下图步骤进行修改:以前用source insight用的习惯了,不愿意尝试其他工具,当发现周围的人都换编辑工具时,才发现自己已经落伍了,自己还不自知。赶紧换vscode,果然非常惊艳。source insight的封闭、收费,技术和界面没有很大改观和进步必然会被超

2022-01-06 14:17:47 2259 2

原创 制作优美的库文件

目录前言一、项目工程二、制作过程1.编译选项2.符号处理总结前言本文讲的是如何制作库文件,你可能会问了,制作库文件不就是一个编译命令吗?没错,生成一个库文件就是用一条编译命令即可达到目的,但是如果制作一个接口完美封装、安全、高效的库文件,还是需要查阅很多资料,了解很多编译原理才能做到的,本文就是我查阅了很多资料,花了几天时间,做了很多次实验而实现的,下面就是我对这个功能的总结。一、项目工程设计一个数组元素的加减乘除作为库对外的接口INT32 ARRAY_ADD(

2022-01-05 16:54:42 852 9

原创 通用Makefile

目录前言一、可配置区域二、通用稳定区域1.取得目录列表2.获得编译命令3.编译依赖关系4.生成可执行文件总结前言现在编译程序已经不是很大的问题吗,编译工具也非常多,比如cmake等,但是这样的工具也需要提前学会他们的语法,按照他们的规则去写一些配置脚本才能用。其实我们完全可以利用shell以及Makefile本身的功能写出一个通用性比较好的Makefile来,下面就是我写得通用Makefile,只需要把这个Makefile放在你工程的跟目录下,然后配置...

2022-01-03 23:05:44 1207

原创 PermitRootLogin 问题解决

新装系统,登录git服务器clone,突然报这个错误,以前从来没有碰到过,解决过程如下:seaside@vmdev:~/csdn_git/mcp$ git clone git@gitcode.net:huyongfu2004/mcp.gitCloning into 'mcp'.../etc/ssh/ssh_config: line 54: Bad configuration option: permitrootlogin/etc/ssh/ssh_config: terminating, 1

2022-01-03 01:38:47 7500

原创 单元测试-从入门到精通

目录前言一、单元测试框架二、单元测试插桩1.插桩原理2.插桩实现3. 插桩实例三、单元测试度量总结前言一个软件面世应该经历哪些环节呢?简要来说,要经过概念、计划、设计、开发、测试、发布。其中测试又分为:单元测试、集成测试、系统测试、生产测试。如果有硬件还要经历中试、小批量生产测试,可见测试也不是一个简单的工作,也是蛮复杂的。 因为我是做开发的,单元测试跟开发结合最紧密,是开发者必须具备的基本素质之一。但现实情况下,哪个公司又会专门配备单元测试人...

2021-12-31 16:10:16 1646 2

CLI人机界面命令行交互程序

CLI人机界面命令行交互程序

2021-04-07

空空如也

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

TA关注的人

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