自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux C语言 Zlib 实现解压zip文件

Linux C语言 实现解压zip文件因为在做嵌入式Linux,做OTA功能的时候需要加压zip升级包。所以需要用到zip文件的解压缩功能。就想着能不能用zlib来完成这个功能。在网上一通找以后,发现教程千篇一律,要么是打着解压文件的标题解压buff内容,要么是c++完成的。好不容易有两篇C语言解压缩文件的,结果并不能用。最后还是只能看英文文档,终于找到案例了。下面记录如何实现的,其实还是非常的简单,例程写得比较复杂,我只用到一个解压功能,我基本上取了一部分代码,没有太大改动。有需要的话,可以再进行精

2020-11-11 19:33:44 7520 1

原创 阿里云 腾讯云 设置DDNS(动态域名解析)

阿里云设置DDNS(动态域名解析)搭建内网服务器时,因为运营商分配的公网ip地址是动态的。在一段时间后或者重启路光猫后,会导致公网ip变化,此时阿里云设置DNS将失效。因此需要进行动态域名解析。阿里云没有像花生壳一样的内置到路由器的动态域名解析服务。所以,我们没办法在路由器段进行动态域名解析设置。但是,阿里云提供了DNS的API,各个语言的API都有,因此我们可以在服务器端来实现这个动态域名解析服务。下面讲一下我实现的整个过程,我是通过go语言完成的。如下。1. 设置DNS域名解析服务进入阿里云的

2020-11-03 23:19:24 105807 11

原创 makefile管理编译工程 自动生成.h头文件依赖

makefile管理编译工程工程目录结构每一个功能模块建立一个文件夹,然后该文件夹下建立include,lib,src文件夹。include存放对外接口,lib存放编译好的静态库,src存放源码.c和.h文件。每个功能模块有单独的makefile进行编译管理。顶层路径下建立一个管理所有功能模块的makefile。这个makefile负责主函数的编译链接工作。(关于.h文件更新,则重新编译包含了该头文件的所有的文件,这条规则还没实现)Makfile实现cJSONbuild = ../buil

2020-08-23 11:18:59 4716

原创 Linux系统迁移(将配置好的系统安装到其它电脑上)

Linux系统迁移说在前面:下面的有几个教程链接,我都是通过这几个链接来完成的备份与恢复系统。并且遇到过一些问题,踩过一些坑。建议先看完我的说明再进行操作,少走弯路。没有图是因为下面分享的几个链接都说得太详细。我只负责填坑。当我们再用Linux时,总是会经常性的重装系统。重装系统是一件非常简单的事情,但是装好后,对于常用软件的安装和系统配置,是一件让人非常头大的事情。装系统十分钟,配置软件24小时。因此,在我们安装好并且配置好一个系统以后,在用着非常舒服的时候,做一个系统备份。当电脑出问题时,把备份恢

2020-08-08 00:24:41 20677 15

原创 如何实现C语言通用链表

C语言通用链表实现C语言的数组有时候很好用,但在不知道数据有多少的时候,并且涉及到某个数据的删除时,操作起来很不方便,这个时候就需要用到链表。自己定义一个链表数据结构,然后实现它,此时这个链表仅能表示你要处理的相关数据,并不是通用的,这将导致你要使用的时候就得重新写数据结构的代码。这个时候,定义一个通用链表,用这个链表就能处理所有的数据类型了,因为是通用的,所以会有一部分代码需要在用户使用的时候自己完成。常见链表定义struct Student { char name[20]; int

2020-07-04 14:00:41 1118 2

原创 Linux 编译安装 openssl库

Linux 编译安装 openssl库如果是不需要特定版本的openssl库的安装非常简单。直接sudo apt install opensll即可。而且像Ubuntu这种应该是自带了openssl库的。运行openssl version -a查看版本。当这个默认版本不满足我们的使用要求时,我们需要自己编译安装需要的版本。方法如下。1、下载openssl源码openssl官网链接:https://www.openssl.org/找到需要下载的版本:https://www.openssl.or

2020-07-02 23:38:28 16902 6

原创 gsoap 远程调用举例

gsoap 远程调用举例gsoap生成Web Service框架代码。这里通过gsoap官网**Example XML SOAP server ©和Example XML SOAP client ©**例子来实现sgoap生成框架,并实现远程调用。gsoap官网例程:https://www.genivia.com/dev.html#server-c1、SOAP服务器将gsoap安装路径下的import和custom文件夹,stdsoap2.h和stdsoap2.h拷贝到需要生成文件的路径中。利用

2020-05-25 17:48:01 520 1

原创 Manjaro-Nvidia独显解决方案(外接显示器修复)

Manjaro独显外接显示器解决方案针对问题:①无法使用外接显示器②可以使用外接显示器,但是当没有外接时,笔记本开机黑屏。安装开源驱动更新系统。$ sudo pacman -Syyu在Manjaro Setting Manager中,安装Nvidia显卡开源驱动video-nvidia-430xx,并写在掉其它显卡驱动。(此时重启将黑屏,无法进入桌面,所以请进行第2步操作再重启...

2020-03-13 23:59:00 8983

转载 QLabel无法显示图片

转载于:https://blog.csdn.net/qiangzi4646/article/details/80764262。

2023-12-15 00:58:18 170

原创 gpio-export配置默认gpio

用于设置gpio的默认状态和导出用户空间借口。只需要在设备树中配置节点即可。

2023-11-21 11:14:23 490

转载 udhcpc dhcpcd 区别

参考:https://forums.gentoo.org/viewtopic-t-1072758-start-0.html

2023-11-18 22:14:33 242

原创 patch 生成合入补丁

由于需要对比的目录文件数量非常多,如果是完全比较是非常慢的,如果只是少量的修改,并且我们是知道具体路径的,那么,我们不需要完全对比这两个目录,只读取我们修改的目录即可。针对上述操作,已经针对最开始的文件夹,生成了我们修改后产生的补丁文件。通过diff命令,可以为两个的目录生成差异补丁,这样,可以对于文件夹文件的修改,我们可以得到一个修改操作的补丁文件。可以将其中一个目录软链接到另一个目录的同级目录,也可以把两个目录都进行软链接,软链接到同一个目录下即可。即合入补丁后,可以通过这个参数撤销合入的补丁。

2023-11-17 14:52:06 251

原创 配置Linux为无线路由器

将Linux配置为无线路由器。使用hostapd,可以配置无线网卡为AP模式。这里使用buildroot来生成这个工具。Wi-Fi模块使用的是 rt8188eus。

2023-11-08 16:50:34 355

原创 解决buildroot中fakeroot执行很慢的问题

在使用docker容器作为buildroot环境时,生成文件系统时,buildroot会使用fakeroot来设置一些文件权限。曾经生成文件系统是非常快的,最近使用docker容易,生成文件系统时,速度变的非常慢。尝试更换到ubuntu下,速度是没有问题,那么就是容器的问题。网上搜了一些,说是golang的bug导致的。再次测试编译打包,速度飞快。

2023-11-06 14:50:19 255

原创 hi3518ev200 从sd卡启动rootfs

板卡为 hisi 的 hi3518ev200,16M RAM,64M Flash。板卡不支持从SD卡启动,但是由于Flash空间有限,很多应用都放不下,因此考虑把 rootfs 放到 SD 卡中。先从 Flash 中启动 kernel,然后再加载 SD 卡中的 rootfs。

2023-11-05 21:31:17 245

原创 解决一个Qt程序崩溃的问题

当Qt崩溃时,使用Qt Creator调试,也无法定位到是哪个地方除了问题。只发现日志报出一个Fatal。怀疑是进程没有被kill掉,导致主线程一直阻塞,然后崩溃的。仅仅是怀疑,但我没有证据…触发的情况,就是使用QProcess同时启动多个进程时,主动退出进程导致的。是在主线程被调用的。在process主动退出前,调用这个接口,就会卡死。

2023-11-05 01:37:46 947

原创 Makefile 优化编译速度

优化 Makefile 编译速度

2023-09-28 16:45:29 323

原创 libopenssl 实现私钥加密公钥解密

在需要验证可信来源时,需要用到签名验签。因此,需要使用私钥加密,公钥解密,取得被加密的信息。这就会使用到私钥加密,公钥解密的场景了。使用 openssl-1.1.1 版本,3.x版本API不一样。

2023-09-21 22:35:15 436

原创 在 android 上使用 adb client

adb tool 分为 adb 和 adbd。adb 用作 host 使用,包含了client和server,adbd 则作为 device 端,在 android 源码目录下,共用一套源码。但 android 源码下的 adb,不支持把 adb 编译为 android 平台的 adb client。因此需要自己进行交叉编译。

2023-09-19 19:00:51 783 3

原创 Qt 鼠标右键菜单显示不超出屏幕底部

【代码】Qt 鼠标右键菜单显示不超出屏幕底部。

2023-09-18 23:54:08 345

原创 Qt 设置程序置顶

使用qprocess启动进程后,随着点击主界面,被启动的进程会显示在下层。使用代码的方式将其显示在顶层。

2023-09-14 22:02:24 393

原创 Markdown 使用html方式显示代码块

【代码】Markdown 使用html方式显示代码块。

2023-08-16 10:15:54 542

原创 Linux 查找某个目录下所有文件中是否含有某些字符串

查找当前目录下所有文件,找出含有字符串 “hello” 的文件并显示行号。

2023-08-08 14:37:22 1207

原创 letter-shell 移植适配GHS工具链

letter-shell移植适配GHS工具链

2023-07-24 18:41:02 251

原创 CMake搭建GHS工具链编译RH850/U2A16

文件,里面有每个文件的编译命令。编译参数参数可以参考该出处。链接参数参考GHS IDE工程主目标的链接命令,在最下面的command窗口中,会有完整的链接命令,链接参数可以参考该位置。工具链编译是会有问题,目前看到的现象是无法进行预处理,会导致一些不需要的符号被编译进去,导致链接失败。编译参数和链接参数,都是参考GHS IDE中编译的输出文件。在编译输出目录中,会有很多。因此的解决办法是对于这些启动文件进行单独编译,再把。后缀的汇编代码,直接修改后缀,使用。由于CMake无法识别。

2023-07-07 15:41:23 1320

原创 Mbedtls CMAC加密

mbedtls cmac 加密例程

2023-06-09 01:46:01 431

原创 Qt 编译使用Quazip库

Qt 编译使用quazip库

2023-06-08 23:39:46 1188

原创 hexview 命令行操作使用说明

hexview工具常用命令

2023-06-07 15:24:18 3702

原创 nmcli 配置IP

nmcli是NetworkManager的命令行管理工具。可以通过这个工具来配置网卡和连接。

2023-05-11 22:13:35 3248 1

原创 vscode设置代理

设置完成后,在扩展管理界面随便搜索一个插件,如果不会报错,能勾出来东西说明设置成功了。

2023-04-11 01:11:45 3341 5

原创 Qt 正则表达式匹配失败的一个原因

来匹配元字符中加了转义符号的字符。对于在元字符集中不需要加转义的字符,在需要将其匹配为普通字符的时候,只需要加一层转义,如。此时,使用模式串1去匹配发现并不能匹配成功。但是,使用正则表达式的测试工具测试,这个模式串是能匹配成功的。在正则表达式中,有很多需要元字符,是需要使用普通字符加转义符号搭配使用的。在Qt中做正则表达式时,遇到一个很坑爹的问题,还是经验不足导致。再次进行转义,某则模式串是无法识别为。

2023-03-26 11:50:39 653

原创 Qt 调试时 程序异常结束

暂时还不知道是怎么回事。在构造时,指定了parent为ui。在构造时,不指定parent可以解决这个问题。后面再看看Qt的元对象系统看是咋个回事。通过调试发现,程序结束在析构函数的地方报了段错误。在调试时,关闭窗口,应用程序输出窗口提示。

2023-03-14 21:40:07 804

原创 解决 error: no matching member function for call to ‘connect‘

原因是由于里信号被重载过,同名了,但是参数不一样,就会报这个错误。这种情况下,需要使用旧版语法。在连接信号槽时,报错。

2023-03-13 21:44:09 3291

原创 RT-Thread SPI使用教程

使用RT-Thread Studio IDE创建芯片级的工程。创建完成后,可以直接编译下载进行测试。完成bmp280的读取Device ID的代码编写,添加到文件中。这里我使用的CS Pin是PB12,注意attach接口参数。SPI从机设备使用的是BMP280温湿度大气压传感器。中被完成,注册到了ops中。工程创建完成后,在RT-Thread Studio的。实验环境使用的是正点原子的潘多拉开发板。完成后,SPI的驱动就算是添加完成了。中打开需要使用的那一路SPI的宏。完成配置后,还需要在。

2023-02-19 19:45:02 2287 1

原创 RT-Thread MSH_CMD_EXPORT分析

这里通过编译时,将这个段的起始地址给到msh,然后通过查这个表来对比命令的名称,匹配上了,就执行相应的函数指针,从而就能够执行对应的命令的函数。由于是bin文件,是相对地址,因此地址前面没有。这里可以看到,所有命令的结构体都存到这个段的,间隔也是正好是12个字节,和。看这个情况,应该是照编译时的按顺序摆放所有结构体到这个段中。命令的名称和描述字符串变量的链接地址和段位置。开始的地址表示ROM上的地址,即FLASH地址空间。,用来存放命令的名称,描述和函数指针。,和map文件中链接的地址一致。

2023-02-12 21:31:58 4232 1

原创 ipv6上网配置

一般现在的宽带都已经支持ipv6了,但是需要一些配置才能真正用上ipv6。记录一下配置过程。当前测试环境为移动宽带,光猫下面接了一个路由器,家里所有的设备都挂到这个路由器下面的。

2023-02-12 00:03:02 5811

原创 rt-thread 移植调试记录

这里移植仅仅是利用rt-thread源码目录已经移植好的文件,组建自己的工程,不需要自己编写汇编完成底层移植。我这里的基础文件是通过RT-Thread Studio创建的基础工程,直接复制使用的。根据我们使用的芯片架构,进行移植。完成上述添加,基本上就是添加了我们需要的纯rtt内核了,没有使用到rtt的组件。参考RT-Thread Studio IDE的工程,就能够发现,主要的移植工作就在libcpu目录中,主要为。再次编译,没有报错,稍留程序,LED灯点亮,串口输出正常,输出字符串“test”。

2023-02-11 15:22:28 1112

原创 Linux USB实现网络共享

在内核中,无论是配置RNDIS Host,还是RNDIS Device,驱动的依赖都是CDC Ethernet,因此默认都是使用CDC Ethernet。果然,使用USB线连接Windows后,Device使用的驱动是RNDIS。奇怪的是,设备管理器出现的是串口设备,并没有出现网络设备。这里是用imx6ull做Device,hi3518ev200做Host,通过USB连接线连接两个设备。Host在连接USB后,内核将出现以下打印,表明使用的。网卡,并进行ping测试,网络也是OK的。

2023-01-13 21:39:58 3976 3

原创 解决ubuntu虚拟机两倍缩放无法保持的问题

由于使用4K显示器,100%的UI界面显示太小了。因此需要把UI界面缩放改成200%。但是一旦调整VMware窗口大小,ubuntu UI界面就会恢复成100%。随便缩放,窗口大小也不会再改变了。

2023-01-08 14:27:31 1589 3

原创 rtl8188eus Linux驱动移植

编译驱动前,需要在内核中配置这个驱动依赖的模块,否则会在编译时报警告,一些符号未定义。在不配置相关依赖的情况下,编译好的驱动在装载时,会报和编译时一样的错误,导致装载失败。因为我开始设置了这个参数,在编译时,怎么都不生效,在Makefile中的最后面的位置加入这个参数才生效,后来就发现是被默认配置给覆盖了。注意这里需要修改Makefile中SRC变量配置,因为有默认配置,自己设置的参数会被覆盖不起作用,因此将Makefile中的都改成。并且这个仓库是带固件的,在使用无限网卡时,需要用到这个固件。

2023-01-06 00:50:45 3090

JLink_Flush_GUI_Installer.exe

JLink下载GUI软件,实现擦除,重启,下载RTT VIEW快捷打开等。可多选hex或bin进行下载

2021-09-27

JLink_Flush_GUI_Installer.exe

用qt+Jlink命令实现的烧录GUI程序,相比JFlash的繁琐操作,更加方便快捷实现设备烧录,擦除和重启。

2021-05-24

空空如也

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

TA关注的人

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