自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 通过github action完成自动多平台编译和docker推送

因为一个小项目,之前一直是手动制作镜像,现在需要用docker部署,然后还要基于arm64编译,想着不如实践一下,学习一下github action和Dockerfile的编写。Dockerfile是可以通过docker提供的最小系统镜像,通过编写指令可以自动配置运行/编译环境,避免之前每次发布一个版本就得手动pull系统自己安装环境和导入项目程序的无意义劳动。......

2022-06-25 02:18:18 1952 1

原创 ubuntu20.04 下使用cgroup 限制内存

本实践的主要操作请参照参考链接进行。由于在实践中主要想完成的目标是限制服务器中用户/用户组的内存使用,防止某个用户占用过多的cpu/内存导致其他用户无法正常使用甚至服务器宕机,因此需要手动加cgexec指令的实验1 就不在我的考虑范围中,主要针对的是实验2,即写入系统配置文件的处理方式。由于参考连接中的系统是CentOS,所以部分操作不一样,走了写弯路,特此记录。首先ubuntu下使用如下指令安装:sudo apt install libcgroup*安装完成后,需要增加配置文件,但ubun

2022-02-27 01:52:23 3110 3

原创 vitis HLS 在进行C simulation时遇到工程csim/build/csim.exe not found 报错的问题排查

在进行HLS设计学习时,想对写好的东西进行C代码模拟,但最后提示存在错误,如下:查看错误信息的话,只有抽象的ERROR: [SIM 211-100] CSim file generation failed: compilation error(s).这种提示,并不能定位到具体问题。这是因为之前的开发思路局限了,认为工作的错误都会全部集中在错误栏,从而一头雾水,其实在C simulation时其所有警告和错误都会在_csim.log中体现,图中第5行则表明了本质错误为找不到头文件这种简单的问题。而

2022-02-20 17:03:40 3144

原创 ESXi 7.0主机 查看硬盘SMART健康信息

前言:最近新整了一个工控机,拿来做All in one机器,装了Esxi7.0 系统,挂上了一块机械硬盘,由于机械硬盘是旧笔记本拆下来的,服役有一段时间了,想着偶尔检查一下健康情况,因此查了一下如何在Esxi系统中查询SMART的信息。直奔主题,实际上有效命令只有两句:esxcli storage core device listesxcli storage core device smart get -d YourDeviceName第一句用来列出当前所有的存储设备,然后第二句则用来得到对应设

2021-03-21 22:51:47 3378

原创 ADIS16470从到手到读出完整数据,附例程

前言本文章本来是作为ADIS16470的测评报告的,写于2018年,近期整理数据的时候发现这篇文章,而与此同时网上还没有太多的相关的资料,因此整理一下发到本博客上。鉴于当时水平不足,完成度只做到了驱动起来读出简单整理的数据。例程见github:项目链接另外由于传感器比较新,基本上主要资料都是来源于datasheet,下文中大量图片也是引用datasheet,如有需要可以先行下载datasheet再跟着思路走可能会更清晰一些:数据手册下载地址附当时使用的评测板子图:评测正文基本程序设置与电路搭建

2020-12-16 16:40:35 3806 7

原创 使用ZeroTier搭建虚拟局域网,完成虚拟局域网内直连

本文从实践的角度出发,利用P2P直连技术,使用ZeroTier工具对多台主机设备进行虚拟局域网的组网配置,使得本来不在同一层网络的分布在网络中的多台主机在虚拟的新网卡中都处于同一层网络而不需要中继服务器,从而使多台主机之间可以通过虚拟局域网进行信息通信,文件传输,远程控制等功能。按照该技术进行配置,主机间的延迟可以保持在1-5ms,同时通信速度可以达到上传带宽的较大值。

2020-12-04 18:24:10 15319 3

原创 [ZYNQ随笔] uboot移植中bitstream比特流加载问题:zynq_validate_bitstream: Bitstream is not validated yet

问题介绍由于项目设计需要,需要频繁的更换比特流文件,之前使用petalinux生成的boot.bin每次都需要合并比特流,比较麻烦,遂换了一个uboot版本(米联客默认的u-boot),将bitstream放到了独立于boot.bin的文件中,如图所示。但是在配置好对应的文件之后,启动系统却发现比特流文件无法被正常的加载,部分日志如下:reading uEnv.txt17 bytes read in 11 ms (1000 Bytes/s)Loaded environment from uEn

2020-10-30 16:27:29 2845 7

原创 python程序无法以绝对路径执行,只能在程序文件夹下运行的解决方法

简介在做一个项目的时候,需要将一个python程序设为开机自启动,因此自启动时的启动命令是绝对路径启动的,然而绝对路径的启动会导致python无法正常运行,会报错找不到程序所需要的其他文件(放在和源文件一个目录下),如图:经过分析后定位了问题,也找到了解决方案,使其可以正常运行。原因分析分析源代码,可以发现源代码涉及到一个读取文件的函数如下:在该目录下直接使用python3 ./xxx.py命令可以正常读取到文件,而使用/home/xxx/xxxxx/xxx.py的绝对路径的方式则会出错。可以

2020-07-14 13:57:36 4607 3

原创 嵌入式linux系统交叉编译内核驱动模块笔记,以一个完全的新手姿势记录

序言最近终于成功的在自己的手中将一个hello的内核模块成功的编译并加载进自己的嵌入式linux系统,教程翻了无数篇,果然理论的了解和实际上的知道怎么做之间,还存在着很大的差距。。鉴于在查找资料中看到不少的教程中都存在着部分知识缺失的问题,总的来说就是:“我觉得某些东西太过简单我没有必要再讲”,而这一部分又直接导致我一个萌新给完全的给看懵了,因此在这里写一下自己的笔记,着重讲一些当时自己走了弯路的地方。准备工作为了能够交叉编译内核驱动,首先你需要:你的对应的硬件平台的内核源码对应硬件平台的交叉编

2020-07-13 18:57:58 1803 1

原创 linux串口传感器处理接收不完整,数据丢失问题分析

简介因为当前项目需要在一个linux系统下进行串口传感器的收发工作,该串口传感器的收发使用的是字节流专有协议,按照每一个字节的十六进制编码来确定协议数据。按照以往的思路,串口就是最简单的外设的思想,本想着就是一个小case,但没想到在windows下测试的好好的传感器数据到linux系统上就完全变了样子。。原因分析经过一番查资料分析,原来linux的串口因为还有作为终端的功能,所以linux下的串口的设置会比windows要丰富不少。而为了保持我们的十六进制数据保持原样的发送过来,必须将linux下

2020-07-06 16:20:38 2107

原创 为Zynq配置tcf以用于xilinx远程跨平台调试

简介使用xilinx的SDK可以方便的对zynq目标平台进行方便的调试,但是tcf工具包默认只能在petalinux的rootfs根文件系统下使用,而petalinux的rootfs根文件系统是经过高度裁剪的,缺失了很多重要的工具,一般只适合生产环境,在调试环境下我们一般会使用功能性更强的发行版linux的根文件系统。然而普通的发行版linux不含有tcf工具包,那么为了继续正常的使用tcf工具集,我们需要自己编译tcf工具包。工作首先需要从git上下载tcf源码:git clone git://g

2020-07-01 17:41:28 2334 1

原创 VL53L1X移植到STM32实战记录,使用软件IIC(附源代码)

序言VL53L1X是一个很小又很优秀的测距传感器,它相比于上一代VL53L0X有着不小的提升,这次毕业设计打算将这个传感器用起来,就来移植了一下,遇到的坑怎么说还是有一些,故在此分享给大家。开发环境IDE:Keil V5 STM32CubeMX ,使用HAL库具体操作获取官方库并进行移植这一步是移植的基础,首先从官方把API库下下来,并添加到IDE中:适配硬件这里由于不同的硬件平...

2020-05-07 17:11:17 9094 55

原创 php的中文json打包,实现websocket大数据量传输,解决Could not decode a text frame as UTF-8

前言本篇文章借json的websocket传输为示例,解决websocket大数据量超过128字节(126字节)的传输,解决Could not decode a text frame as UTF-8的接收端错误,json打包过程中对中文的处理问题

2020-02-18 14:03:32 1472

原创 WSL出现connect /tmp/.X11-unix/X0: No such file or directory的解决办法

当出现如上情况,在打算用WSL远程连接带图形界面的ssh连接出现如上错误时,其实是因为所用工具不支持X11转发,因此不能出现了这样的错误建议使用Xshell等软件即可使用时需要设置一下,设置方法如下...

2019-12-03 19:51:04 4002

原创 利用ZYBO-Z7实验板完成摄像头画面读取

平台信息目标内核版本:Linux version 4.19.0-xilinx-v2019.1 (oe-user@oe-host) (gccversion 8.2.0 (GCC)) #1 SMP PREEMPT Tue Nov 5 08:44:09 UTC 2019目标系统版本:Distributor ID: DebianDescription: Debian GNU/Linu...

2019-11-13 12:44:51 1415

原创 petalinux-build 遇到 cpio: cannot seek on output: Invalid argument问题的解决办法

先贴一下博主当时的错误情况ERROR: petalinux-user-image-1.0-r0 do_image_cpio: Function failed: do_image_cpio (log file is located at /media/wmd/a1f4b143-42e4-413c-8c1e-bacea116f841/newtest/build/tmp/work/plnx_zynq7...

2019-10-28 16:30:05 1540 1

原创 petalinux配置的系统启动出现cannot set terminal process group (-1): Inappropriate ioctl for device的问题解决小记

配置好的系统在启动的时候出现cannot set terminal process group (-1): Inappropriate ioctl for device 随后无法正常启动系统经过判断后觉得是vivado生成的文件导入到petalinux时的时间顺序不一样了,可能petalinux使用了vivado工程中的一个中间过程生成的hdf或是bitstream文件,因此重新进行了viva...

2019-10-24 15:45:57 9234 2

原创 STM32利用Micropython的SSD1306编写0.96寸OLED多级菜单

该项目已上传至github,欢迎访问:github最终效果图如下示例代码:from ssd1306 import SSD1306_I2Cfrom machine import I2Cimport menuoled_iic=I2C(scl='B15',sda='D9') #edit to your IIC OLED Pinoled=SSD1306_I2C(128,64,oled_ii...

2019-04-17 11:17:52 3547 3

原创 【随笔向】记一次由于中断优先级设置不正确和滥用全局变量导致的bug

记bug总是一件很难的事情,因为很多时候出现bug很难解决的原因是你不知道这个bug是因为什么而出现的,但是当你解决了bug,发现了问题原因所在的时候,这个bug又变得理所当然的“简单”。因此,可能对遇到和我有同样的bug的人因为不会往“全局变量”或“中断优先级”这些关键字寻找问题吧,我的随笔也很难被这些遇到和我一样问题的人找到。所以就是当个随笔写了这次就是一个队友遇到的摸不着头脑的“玄学”bu...

2019-04-11 09:05:14 641

原创 ESP8266 TCP ERROR CLOSED的常见原因及解决办法

前言最近在使用ESP8266的简单AT指令做串口透传,本来想着和HC-05的蓝牙串口差不多简单吧,,结果发现ESP8266似乎并没有像HC-05那么易用,需要配置的东西还挺多的,而且也不大方便。不过遇到的问题总算是解决了以下为遇到的问题和可能的解决方案进行TCP透传链接时遇到TCP ERROR CLOSED一般遇到这种情况,如果硬件其他步骤都配好的话,导致不能正常运行的应该就是电脑的防火墙...

2019-04-03 09:17:15 11352 8

原创 树莓派 zero W raspberrypi.local 无法访问的解决方法

最近入手了个树莓派 Zero W,小小的身材,轻松供电成为一台微型电脑,而Zero W 型号还增加了wifi,实在是过瘾。不过在第一次连接的时候还是遇到了一些问题网上的教程感觉链接起来都很简单:tf卡改改config.txt和cmdline.txt 然后创建一个ssh文件,然后连上电脑用ssh raspberrypi.local 就可以了!但是实际上操作起来坑还是比较多的:tf卡里面的操...

2019-02-19 22:10:04 6996 6

原创 天猫精灵OAUTH2的authorize无法认证,认证参数不全,token错误的排查

目录写在前面感想与目的调试的方法使用天猫精灵开发平台提供的在线测试工具手动输入链接与GET信息错误排查authorize.php不发生跳转,直接显示错误码链接发生了跳转,但是提示认证参数不全第一种情况第二种情况链接发生了跳转,但是提示Oauth token 返回不正确调试成功的authorize.php源代码写在前面感想与目的近期想实现一个用天猫精灵来控制ESP8266等设备的功能,本来以为...

2019-02-19 16:56:58 3434 25

原创 大战STM32奇怪的hardfault,各种无厘头的真凶!

题目起的非常的傻,可能是这几天为了把这个问题调出来把人都给调废了吧。。。反正现在找到了问题就特别的开心。有时候我们在使用STM32进行开发的时候,有时会莫名其妙的进入hardfault,而有时又会出现明明寄存器配置完全一模一样,程序原来都是好好的能跑的,可是自己改了一点其他无关紧要的东西的时候,整个程序的运行逻辑就不一样的问题。。。当出现这种问题的时候,一般就属于C语言和嵌入式结合所带来的很难排...

2018-11-12 21:47:51 1617

原创 C++ in Keil 使用指南

C++ in Keil 使用指南1.在工程的设置中为编译参数增加--cpp11来启用C++编译器2.在工程的设置中确认ARM Compiler version为5或以下,因为新版本的编译器增删了一些关键字导致C++在Cube下的工程与其兼容性不佳。同时确认Micro LIB处于不启用的状态,因为MicroLIB为非标准的精简库,会与标准C++产生冲突3.此时应该可以使用C++进行编译...

2018-10-29 15:26:58 6908 5

原创 让你的 STM32Cube KEILV5 + HAL库工程支持C++开发

前言最近这段时间在弄一个新的STM32F4的项目,因为工程比较庞大,然后各种类型也比较复杂,在封装整理的时候就非常头疼,很想通过C++的类,继承,多态的方式来让代码变得清晰简单。在网上翻阅了比较多的相关资料,发现很多博客所说的方法要么太复杂,要么不能完美兼容Cube。随着ST对HAL库的不断更新,各类驱动包其实都已经悄悄的在各种头文件上加入了 extern “C” 的宏定义,让C++移植更加方...

2018-02-23 16:17:31 8701 15

原创 利用树莓派打造STM32无线在线调试器!

利用树莓派通过Jlink-ARM方式搭建远程Jlink调试服务器

2017-12-13 18:34:31 5662 3

原创 STM32与上位机串口通讯的学习笔记(简明的数据帧设计方法)

最近因为项目需要,需要做一个STM32和Windows的串口通讯协议来交换数据,本着最求极致的心态,来讨论一下简明的数据帧的设计方法。数据的传输方式对于很多单片机初学者而言,可能他们接触到串口 首先想到的就是通过串口打印字符串,然后就会很理所当然的想到了用“打印”的方式来传输数据。 比如我们需要传输一个float型的数据value,可能小白们首先会想到的方式就是串口重定向printf然后像下面这样

2017-12-08 15:50:25 14390 10

原创 为树莓派打造一个安全关机的功能,不需要命令行,不需要额外电路板!

在刚刚拿到树莓派的调试期,最难以忍受的就是各种“tmd怎么又连不上了” “诶这系统有问题” 这些乱七八糟的问题了,如果有显示器还好,如果没有显示器,然后诸如ssh连接之类的东西又不能正常运行,这可怎么好好的sudo halt啊。。。博主便是如上这些悲惨经历的受害者,因为整天拔电关机导致存储卡会经常出现一些莫名其妙的问题,简直是崩溃的于是我便上网搜索除命令行之外的关机方式,找到了诸如“关机按

2017-08-09 16:01:38 6479 2

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