自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

时有限

All the bright precious things fade so fast, and they don't come back.

  • 博客(358)
  • 收藏
  • 关注

原创 关于本博客的说明

这个博客主要是用来记录工作及学习中遇到的有意思的点,将其整理成文字分享给大家。不过很可能限于个人知识浅薄,导致文章中存在一些谬误,如果您在阅读的时候发现了类似的错误,还请谅解,另外烦请告知一下,方便我纠正错误,以免误导别人。有时也会分享一些看到的好文章或者文档,这些内容我尽量做到求证正确,然后转载或者翻译一下,如果还是存在错误,还要麻烦看到的各位提醒一下了,毕竟公开分享的东西尽量不要误导他人为好。谢谢。...

2020-05-22 12:32:10 155

原创 win10打开Internet explorer浏览器访问网页

有台旧的摄像头设备访问需要使用IE才能正常访问显示, 但是win10中已经禁用了IE, 打开IE会自动跳转到EDGE浏览器, 显示新的机遇chrome内核浏览器并不能被老设备兼容, 因此需要打开IE访问才行.部分win10系统可能没启用IE功能, 需要在"启动或关闭windows系统功能"中启用;

2023-09-22 15:41:57 865

原创 ESP32使用Arduino读写SD卡

esp32屏幕包含一个sd卡接口,通过SPI线连接,需要对插入改SD接口中的TF卡进行读写,通过arduino平台实现。在Master模式下,SPID。

2023-08-28 15:51:16 1034

原创 控制台窗口和powershell运行服务会卡住的解决办法

等命令经常会出现程序会卡在不动的问题。这时候需要到控制台按一下回车程序才会继续往下执行。的情况下,如果鼠标选中了文本之后就会出现这个情况。在 windows 环境下开发的时候,使用。办法:关闭控制台的快速编辑模式。原因: 控制台开启了。

2023-07-31 09:20:09 1454

原创 Timeout while checking target RAM, RAMCode did not respond in time

原因是RAM的地址范围错误,默认选择gd32f450vi的ram大小是512k,但是该芯片中的ram并不连续,其中64k是sram,在地址上和前448kb不连续,因此导致ram检测时失败;使用jlink烧入gd32f450时,jlink提示错误。

2023-06-29 16:49:05 3223

原创 TPM 2.0 device detected but a connection cannot be established

TPM (受信任的平台模块) 可用于提高电脑的安全性。在 2016 年 TPM 版本 2.0(截至本文撰写的当前版本)成为新电脑的标准版本。通常,它是主板上单独的芯片,但 TPM 2.0 标准允许 Intel 或 AMD 等制造商将 TPM 功能构建到芯片组中,而无需单独的芯片。小主机安装ESXi8.0后,启动系统提示“检测到TPM2.0设备但无法连接”,正常安装镜像也没啥影响,但是一直有告警看着奇怪。因此改报警的提醒导致的问题就是,tpm设备无法在主机上工作,因此影响win11之类系统的安装;

2023-06-07 11:15:02 3361

原创 移远EC20设置RNDIS模式拨号上网

在物理设置选项卡里面设置,发现多了一项硬件接口(usb0,或者wwan),选中它保存设置,并在基本设置中将协议选择DHCP客户端,保存并应用设置,过一会儿就会发现路由器wan口获取到了192.168.x.x的局域网IP地址。4G模块原本使用QMI方式拨号上网,客户反馈某种定制卡不能上网,切换下拨号模式看下设备能不能正常上网;

2023-03-15 16:45:07 4638 1

转载 液晶屏接口介绍:8080接口详述,其他常用接口简介

其中有数据线,时钟线,和 水平/垂直 同步信号线。(HS, VS这2个信号,笔者多年前搞过模拟视频传输,对这2个行场同步信号好熟悉的感觉。Vsync(VS)指示一整屏像素帧的开始Hsync(HS)指示一个水平行像素数据的开始。

2023-02-20 14:24:40 7084

原创 Linux获取库文件中的函数列表

函数库有些功能是可选的,如果编译时没有开启特定选项,编译生成函数库中就没有对应的接口函数,一些依赖这些接口函数的应用执行时就会出现异常,因此为了排查函数库是否包括特定函数,我们需要查看函数库文件的符号表;objdump用法如下,详细参考。readelf用法如下,详细参考。nm用法如下,详细参考。

2023-01-30 10:44:43 1261

转载 交叉编译构建GDB和GDBServer

交叉编译构建GDB和GDBServer

2022-12-15 10:28:30 365

原创 修改weston桌面背景

linux开发板采用weston桌面系统, 希望修改默认桌面图片;

2022-12-12 15:47:47 1179

原创 openwrt 时区设置无效问题

最近在使用 openwrt 时发现在 web 控制台设置好时区后,系统日志依然显示的是 UTC 时间,慢了 8 小时。查了下原来是 openwrt 默认没有安装 zoneinfo,安装后即可。首先在 web 端或直接修改配置文件:/etc/config/system 中的 zone 相关参数:然后输出日志日期就正常了。编译固件时,选中如下内容:在可选项中选择需要的时区信息即可;

2022-11-30 20:00:43 1847

原创 linux应用移植问题

公司设备降成本,设备运行平台从armv7架构mpu换成了armv5架构的mpu,应用移植过程都挺顺利的,只是牵涉到一个引用外部库的应用时,运行该应用到引用库中的函数时,应用抛出illegal instrution异常。

2022-11-30 15:53:50 585

转载 单片机main函数在中断函数里执行?

这个问题,关键点就是:复位中断(Reset_Handler)和普通中断(SysTick_Handler)的操作模式不一样。其他IDE,比如Keil、GCC等编译环境道理类似,这个问题主要在于内核,也就是由内核决定。

2022-10-31 09:54:51 747

转载 printf使用占位符控制输出格式

printf()函数提供丰富的占位符参数以便精细地控制输出格式,再进行字符操作的时候我们可能会使用到sprintf类函数进行处理,因此这里对printf()函数的格式化输出控制进行较为“详细”讨论。

2022-10-17 15:02:08 3263

翻译 inline关键字的用法

inline函数修饰符的作用和用法;

2022-08-31 15:32:13 106

转载 Gcc编译优化等级介绍

O0选项不进行任何优化,在这种情况下,编译器尽量的缩短编译消耗(时间,空间),此时,debug会产出和程序预期的结果。当程序运行被断点打断,此时程序内的各种声明是独立的,我们可以任意的给变量赋值,或者在函数体内把程序计数器指到其他语句,以及从源程序中 精确地获取你期待的结果.O1优化会消耗少多的编译时间,它主要对代码的分支,常量以及表达式等进行优化。O2会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。

2022-08-22 12:37:04 2312

转载 P通道MOSFET简介

A P-Channel MOSFET is a type of MOSFET in which the channel of the MOSFET is composed of a majority of holes as current carriers. When the MOSFET is activated and is on, the majority of the current flowing are holes moving through the channels.This is in c

2022-07-29 12:21:33 1666

原创 Vim快捷键-键位图

嵌入式linux开发中, 经常接触linux环境, 最方便的莫过于使用, 功能强大, 适用范围广, 因此了解一些vim中常见的命令对于日常工作学习大有裨益. 针对于不同阶段, 可以参考学习一下vim中的快捷键, 提升工作效率....

2022-07-14 13:42:43 579

原创 win下使用Python获取串口列表

一个工具需要使用串口, 可是计算机中有时候又不仅有一个串口接口, 因此需要获取串口列表并且区分那个是串口接口;上述代码中对应的是win中的串口编号, 可通过该字段打开串口; 对应的是串口名, 可通过该字段判断改串口设备是否是串口通信设备, 通常包含’serial’字段;...

2022-06-28 12:25:02 2084 1

转载 操作系统中C程序内存分布

memory management is one of the most important topics for a Programmer, and so understanding the Memory Layout of a C Program and Memory Layout of a Process becomes essential.For high-level languages such as Java, Python, C#, Memory is partially managed by

2022-06-14 12:11:52 114

原创 GB2132转UTF-8

背景单片机端常用的中文显示字符集是GB2312, 相对于UTF-8表示中文时更节省空间, 但是Linux端为了通用及兼容性常采用UTF-8作为字符编码, 为了保持编码的的统一, 网络通信时单片机内部将GB2312转为UTF-8发送给Linux, 于是就有了这个动机;编码介绍GB2312GB/T 2312,GB/T 2312–80 或 GB/T 2312–1980 是中华人民共和国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,通常简称GB(“国标”汉语拼音首字母),又称GB0。G

2022-05-12 17:14:55 4894 1

原创 身份证校验码规则

背景项目中有部分功能需要验证用户身份, 为了防止用户随便输入身份信息, 因此要对输入数据进行验证,于是参照百科提供的规则进行了实现;公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码,最后一位是数字校验码;地址码表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,按GB/T2260的规定执行。出生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。顺

2022-05-12 00:28:44 2884

转载 MLO/uboot-spl.bin和uboot.img/uboot.bin

前段时间使用TI的am4378芯片,发现系统在SD卡启动的时候,启动文件使用的是MLO和uboot.img;而Norflash和eMMC启动的时候使用的是 uboot-spl.bin和uboot.bin,有如下疑问:MLO和Uboot-spl.bin有什么区别?uboot.img和uboot.bin有什么区别?为什么后者需要Norflash再配合eMMC,而不是直接eMMC?For MLO use the spl/u-boot-spl.bin file. The difference b

2022-05-10 16:29:00 904

转载 UTF8中文编码范围

简介UTF-8有点类似于Haffman编码,它将Unicode编码为:00000000-0000007F的字符,用单个字节来表示;00000080-000007FF的字符用两个字节表示 (中文的编码范围);00000800-0000FFFF的字符用"三个字节**表示;编码转换:iconv -f “文件目前编码” -t “文件转换后的编码” -o “转换后生成的新文件名” “源文件名”temp = Iconv.conv(“UTF-8”,“gb2312”,a)因为目前为止Unicode-16规范没有

2022-05-06 16:45:05 6823

转载 开源项目中的法律风险

引言写这篇博客的契机是我厂刚好开了一次这样的培训,听了以后觉得很有收获。碰巧自己最近也在写开源项目,因此觉得还是有必要写一下。有小伙伴提到,这种问题,去网上找那个指导你如何选择 LICENSE 的图就好了。那个图能指导你选择正确的许可协议,但是并不会增进你对各个协议的了解。本文里会通过几个例子让读者更能了解这些协议。软件的分类我们先来看看软件一共分为几种:软件分类版权保护开放源码再分发修改商业软件√不一定××开源软件√√√√共有软件×不一

2022-04-09 20:21:42 724

转载 使用Squashfs和Overlayfs提高嵌入式Linux文件系统可靠性

在使用嵌入式 Linux 系统的时,会出现由于设备意外断电引起文件系统损坏而最终使该设备无法启动的现象。为了应对这种情况,通常会从硬件设计如采用备用电源,无论是锂电池还是超级电容等,或者从系统软件设上加以规避。本文接下来将介绍如何使用 squashfs 只读文件系统制作 Linux 系统文件,并采用 overlayfs 为用户目录增加可写权限。演示采用 Colibri iMX6 计算机模块,该方法同样也适用于 Toradex 其他产品,如 iMX8 计算机模块。Squashfs 是一种只读压缩文件系统,通

2022-03-31 13:25:27 1191

转载 GDB调试100个小技巧

《100个gdb小技巧》 - hellogcc挺有趣的一本关于GDB调试的文章, 看文章有时候调试会帮你省下不少事情, 例如:设置被调试程序的参数技巧可以在gdb启动时,通过选项指定被调试程序的参数,例如:$ gdb -args ./a.out a b c也可以在gdb中,通过命令来设置,例如:(gdb) set args a b c(gdb) show argsArgument list to give program being debugged when it is starte

2022-03-29 10:20:02 1104

原创 Linux进程间通信-消息队列

什么是消息队列消息队列(Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的资料,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。消息队列的优缺点消息队列本身是异步的,它允许接收者在消息发送很长时间后再取回消息,这和大多数通信协议是不同的。例如WWW中使用的HTTP协议(

2022-03-23 15:43:14 5894 1

原创 Bat脚本日期时间获取

日期时间获取%date%和%time%是系统内置的日期变量和时间变量;@REM 提取年月日信息echo %date:~0,10%@REM 提取星期几信息echo %date:~-3%@REM 提取时间中的时和分echo %time:~0,5%@REM 提取时和分和秒信息echo %time:~0,-3%@REM 年echo %Date:~0,4%@REM 月echo %Date:~5,2%@REM 日echo %Date:~8,2%@REM 时echo %Time:~0,2

2022-03-18 09:58:49 18662 2

原创 linux常用用户管理指令

添加用户adduseradduser会自动为创建的用户指定主目录、系统shell版本,会在创建时输入用户密码;adduser apple输出显示:在创建用户名时,同事创建了用户的主目录以及密码; 默认情况下, adduser在创建用户时会主动调用 /etc/adduser.conf; 在创建用户主目录时默认在/home下,而且创建为 /home/${用户名}; 默认为用户指定shell版本为/bin/bash;如果主目录已经存在,就不再创建,但是此主目录虽然作为新用户的主目录,而且默认登

2022-03-16 09:44:00 465

原创 git 项目同步一直要验证

问题使用公司的编译服务器搞项目时, 发现git同步代码, 每次都要验证, 输入用户名和密码, 觉得很麻烦; 之前在自己的虚拟机里都是不需要的, 于是搜集了下解决办法;解决更改项目配置文件更改认证配置在git项目文件夹下输入:echo "[credential]" >> .git/configecho " helper = store" >> .git/config或者vim .git/config#文件末尾插入下面两行[credential] h

2022-03-08 18:59:12 1059

转载 I2C总线及总线阻塞

这个问题以前还真遇到过但是没有仔细分析过原因,这次被问到这个问题傻了,看到网上的一些相关文档后,整理了这篇文章,主要分析产生原因和解决办法。首先还是看看I2C相关的一些步骤的总线状态:死锁总线表现为:SCL为高,SDA一直为低;slave:正常时序下:SDA信号是在SCL为低的状态下改变,即从应答SDA为低电平时,此时SCL应为为低电平;master:SDA被从拉低,故master认为i2c总线占用,一直等待SDA变高;原因:当master正在和slave通信,如果master正好发生打算

2022-01-25 11:18:05 1820

转载 服务器load average

If you’re using a Linux server, you’re probably familiar with the term load average/system load. Measuring the load average is critical to understanding how your servers are performing; if overloaded, you need to kill or optimize the processes consuming hi

2022-01-21 11:04:56 303

原创 qmc5883p芯片坐标系方向定义

问题最近一个项目用到qmc5883p, 然而确定磁力计方向的时候发现datasheet上写的不是很清楚, 并且example中还有一个设置方向的一步, 于是测试了芯片坐标方向并记录了下来; 该芯片和qmc5883L方向并不一致;结果qmc5883P的datasheet给出来如下说明, Y为笔者添加的;但是这个方向是按照datasheet的example设置的结果: //Define the sign for X Y and Z axis qmc5883p_write_reg(0x2

2022-01-07 10:47:34 2064 4

转载 ARM FPU 加速浮点计算 介绍

引言笔者接触嵌入式领域软件开发以来,几乎用的都是 ARM Cortex M 内核系列的微控制器。感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。 ARM探索之旅 01 | 带你认识ARM Cortex-M阵营 ARM探索之旅 02 | AR..

2021-12-22 09:40:13 1913

原创 树莓派获取MPU6050数据

背景使用手头的树莓派获取mpu6050模块的6轴传感器数据,用于计算设备的欧拉角来预估设备的状态;代码实现#!/usr/bin/python3import smbusimport mathimport timeimport numpy as np# chip addr definempu_addr = 0x68 # This is the mpu_addr value read via the i2cdetect commandmpu_acc_range = 2

2021-12-18 12:29:58 1121

原创 Python Smbus库简介

背景手头有个树莓派,又有个I2C通信的模块,因此想要用树莓派调一下这个模块,于是找了下树莓派控制模块的文章,发现都是从smbus的read byte封装的,可是按照I2C协议一次肯定可以读多个数据,于是想找库函数文档看下,发现Py官网文档上smbus库没有函数描述,但找到了语法与其相同的smbus2库, 于是记录下库函数用法。不过找到了smbus的源码, 源码中有函数接口。结果smbus支持的函数列表:static PyMethodDef SMBus_methods[] = { {"open",

2021-12-16 11:19:45 8387

转载 SMBus接口协议

简介SMBus(System Management Bus)是Intel与Duracell共同制定的接口,首版于1995年发表,参考I2C接口。SMBus是一种二线制串行总线(还有两根可选信号线SMBSUS#(系统低功耗挂起状态指示)、SMBALERT#(事件提醒)),它大部分基于I2C总线规范。和I2C一样,SMBus可以不增加额外引脚,创建该总线主要是为了增加新的功能特性,支持低功耗和高功耗两种模式,其总线速率支持100kHz、400kHz、1MHz。它工作在主/从模式:主器件提供时钟,在其发起一次

2021-12-15 20:30:55 12290

原创 MPU6050姿态解算

参考文章欧拉角, 用于描述刚体在三位欧几里得空间的取向;四元数, 用于描述刚体的旋转;四元数与欧拉角(RPY角)的相互转换, 详细介绍了欧拉角和四元数的转换关系, 并且给出了示例代码, 但是需要注意代码基于Z-Y-X顺规变换;MPU6050 获取角度理论推导, MPU6050获取角度的理论推导;MPU6050的四元数解算姿态方法, 对刚体的欧拉角及旋转做了介绍, 但是未介绍加速度分量, 角速度分量计算四元数的原理, 同样提供了代码但未做滤波处理;MPU6050姿态解算2-欧拉角&旋转矩

2021-12-03 15:46:22 1847

空空如也

空空如也

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

TA关注的人

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