嵌入式
文章平均质量分 58
记录一些学习嵌入式的心得
无聊的阿乐
每天进步一点点,量变才会质变
展开
-
使用 Valgrind 检测内存泄漏
Valgrind 是一个编程工具,用于内存调试、内存泄漏检测以及性能分析。Valgrind 工具集中的 Memcheck 是用于检测内存管理和线程错误的主要工具。原创 2024-05-11 16:07:30 · 1660 阅读 · 0 评论 -
C++ 计算某个文件的 MD5
网上截取的代码片段,备用工具原创 2024-01-12 11:40:13 · 1136 阅读 · 0 评论 -
Linux查看某个端口被占用
【代码】Linux查看某个端口被占用。原创 2023-11-23 15:23:45 · 180 阅读 · 0 评论 -
Linux 下 使用 Ekho 进行TTS文本转语音
官网Ekho(余音)是一个免费、开源的中文语音合成软件。支持普通话、粤语。支持Linux、Windows和Android平台。原创 2023-11-13 15:40:29 · 2683 阅读 · 0 评论 -
嵌入式开发:NFS挂载目录
搭建NFS环境原创 2023-04-25 10:56:04 · 554 阅读 · 0 评论 -
Linux 平台下发布QT程序
QT在Linux下发布原创 2023-02-18 18:30:29 · 834 阅读 · 0 评论 -
基于QT5.14.2的MQTT通信
默认的Qt环境是不能使用MQTT的,但Qt官方提供了基于MQTT的封装,需要通过源码进行编译。在dev分支中可以选择MQTT版本,选择最新的下载到本地。注意一定要选择对应自己QT版本的MQTT源码,我使用的是QT5.14.2,所以MQTT的版本也得是5.14.2.将以上两个文件夹拷贝到以下目录中这样MQTT就已经配置到我们本地的Qt环境中了。后续所有使用此Qt环境的项目都可以直接使用MQTT了。原创 2023-02-14 17:37:49 · 2431 阅读 · 1 评论 -
QT开发安卓程序初识
Qt | Qt For Android、Qt5.14.2安卓开发环境搭建详细步骤测试结果如下:原创 2023-02-10 11:08:52 · 386 阅读 · 0 评论 -
QT中的路径名不能包含空格
QT报错,路径名不能有空格原创 2023-02-10 11:07:22 · 440 阅读 · 1 评论 -
关于QT跨平台和编译器的理解
Qt开发经验原创 2023-02-08 11:53:05 · 2045 阅读 · 0 评论 -
Linux中运行QT程序报错:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supp
Linux 下调试QT原创 2023-02-07 18:36:40 · 1930 阅读 · 1 评论 -
Int32和UInt32有什么区别?以及对数据正负的理解
【代码】Int32和UInt32有什么区别?以及对数据正负的理解。原创 2022-12-27 13:01:36 · 5925 阅读 · 0 评论 -
DSP程序烧写bin文件到flash中,及下载到flash中无法运行的问题
DSP调试经验原创 2022-12-23 17:11:07 · 3296 阅读 · 1 评论 -
QT中QDateTime的用法,分离出年月日时分秒
QT中日期的用法原创 2022-12-16 17:54:52 · 2550 阅读 · 0 评论 -
QT学习之文件读写操作
一、QFile 对文件进行读写操作1、 QFile进行读写操作2、 QFile file( path 文件路径)3、 读(1) file.open(打开方式) QIODevice::readOnly(2) 全部读取 file.readAll() 按行读 file.readLine() atend()判断是否读到文件尾(3)默认支持编码格式 utf-8(4)利用编码格式类 指定格式 QTextCodeC(5)QTextCodec * codec = QTextCodec::codec原创 2022-03-16 22:37:47 · 18620 阅读 · 0 评论 -
QT使用webenginewidgets加载百度在线地图(GPS坐标转百度坐标)
QT加载百度在线地图5、完整工程源代码https://download.csdn.net/download/weixin_44618297/87254756备注:目前遗留问题:debug和release版本有的无法运行,目前只可以使用MSVC32 release版本的,以后有时间在调这个问题吧,嘿嘿原创 2022-12-07 19:25:40 · 1611 阅读 · 0 评论 -
Ubuntu通过修改配置文件interface进行网络配置的方法
【代码】Ubuntu通过修改配置文件interface进行网络配置的方法。原创 2022-11-30 21:29:00 · 4781 阅读 · 0 评论 -
C++读写解析ini配置文件
支持解析ini文件支持修改、保存ini文件支持设置多个注释符,默认为“#”和’;’运行在Linux 下。原创 2022-11-04 18:58:43 · 3521 阅读 · 0 评论 -
git使用记录
【代码】git使用记录。原创 2022-10-27 22:37:27 · 358 阅读 · 0 评论 -
关于性能测试代码的一些记录(可以将测试记录输出到文件里,记录日志)
性能测试分为Mbps 和Tps。Mbps=Mbit/s即兆比特每秒(1,000,000bit/s),Million bits per second的缩写,是一种传输速率单位,指每秒传输的位(比特)数量。其中:bit代表位或比特,存放一位二进制数,即 0 或 1,最小的存储单位Byte代表字节,8个二进制位为一个字节,即1Byte=8bit,Byte为数据量常用单位。bps是每秒比特率,8bps=1B/s(字节)而M是2的20次方,或略作10的6次方。所以1Mbps=1024Kbps或128KB/s原创 2021-09-28 15:02:26 · 575 阅读 · 0 评论 -
Cmake打包deb包
参考资料:Cpack入门。原创 2022-10-12 13:04:08 · 1208 阅读 · 0 评论 -
Linux下虚拟机模拟串口通信
开发环境:虚拟机:VirtualBox虚拟串口工具:VSPD串口调试工具:深蓝串口调试工具。原创 2022-09-11 21:37:56 · 2384 阅读 · 0 评论 -
嵌入式Linux 系统移植流程总结
嵌入式Linux系统移植主要由四大部分组成:一、搭建交叉开发环境二、bootloader的选择和移植三、kernel的配置、编译、和移植四、根文件系统的制作先介绍第一分部的内容:搭建交叉开发环境,首先必须得思考两个问题,什么是交叉环境? 为什么需要搭建交叉环境?先回答第一个问题,在嵌入式开发中,交叉开发是很重要的一个概念,开发的第一个环节就是搭建环境,第一步不能完成,后面的步骤从无谈起,这里所说的交叉开发环境主要指的是:在开发主机上(通常是我的pc机)开发出能够在目标机(通常是我们的开发板)上运行的程原创 2022-07-06 21:09:55 · 673 阅读 · 0 评论 -
基于X86平台的Linux系统裁剪(三)
整个过程按照该博客做就可以:Linux系统启动流程及系统裁剪,以下要点需要注意:一、实验要点1、第一个点困扰我好多天的问题终于解决了,为啥识别不到硬盘分区,是因为我在虚拟机上做实验,硬盘创建的时候创建了 多个文件,必须得将虚拟磁盘创建成单个文件才行。这样挂载文件系统的时候就可识别到sda,sda1,sda2了sda1对应硬盘上的boot分区,sda2对应sysroot分区2、第二个点由于grub的版本不同,所需要的配置文件也不一样,我使用的grub-2.02,配置文件为grub.cfg。之原创 2022-04-28 22:46:53 · 973 阅读 · 0 评论 -
基于X86平台的Linux系统裁剪(二)
1、Linux系统启动流程启动流程2、具体操作步骤基于Linux内核定制X86平台的微操作系统(很完整详尽文章)Linux系统启动流程及系统裁剪3、grub引导启动资料grub启动流程grub主要作用是找到内核(kernel)与部分核心模块的镜像(initrd,主要是sata硬盘驱动之类的模块),把它们导入内存中运行。grub常用命令GRUB——系统的引导程序简单介绍Linux GRUB手动安装方法详解,Linux中安装GRUB的两种方式linux启动流程——initrd和initra原创 2022-04-13 20:52:14 · 1397 阅读 · 0 评论 -
基于X86平台的Linux系统裁剪(一)
一、基础概念几种linux内核文件的区别:1、vmlinux和vmlinuzvmlinux是编译出来的最原始的内核文件,未压缩。vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。2、zImagezImage是vmlinux经过gzip压缩原创 2022-04-10 16:59:51 · 3087 阅读 · 4 评论 -
基于QT的体温监测与报警项目
任务概述在本次“新冠疫情”的冲击下,某智能物联网工程师所在的小区需要监控人员体温,现新进了一批可以采集人体体温的智能体温计,但是小区有三个门:正门,侧门,后门,每个门都会有人员流动,物业希望能够在监控室查看相关人员的体温,可以做匹配记录。刚好该智能物联网工程师拥有该能力,需要完成以下有关需求:(1) 每个智能体温计都能采集体温数据并自动上传该数据到监控平台(2) 监控平台可以实时查看各门,各人员的体温(3) 对于出现异常体温(超过 37.3℃)监控平台会发出报警涉及知识点1、C 语言与C++基础原创 2020-07-26 11:15:44 · 5958 阅读 · 2 评论 -
解决u-boot-2012移植过程中的几个小bug
在移植u-boot-2012.04.01时,出现了两个小问题如下:解决第一个警告WARNING: Caches not enabled通过查找u-boot源码定位在这个位置:然后查找资料:参考资料修改了以下代码:这时又出现了新问题:之前的警告消失了,变成了另一个警告,使用了默认的环境变量继续查找资料:https://blog.csdn.net/Mculover666/article/details/104558447?utm_source=app经过修改告警消失。解决第二个警告:原创 2020-07-25 16:01:35 · 736 阅读 · 0 评论 -
基于TQ2440的busybox根文件系统制作
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-2012.04.01kernel:Linux-3.4.2CPU:s3c2440开发板:TQ2440busybox版本:busybox-1.20.2步骤1、下载源码下载地址:busybox-1.20.2下载拷贝到虚拟机中解压源码tar -jxvf busybox-1.20.2.tar.bz22、配置编译工具链进入源码文件夹cd busybox-1.20.2/make menuconfig进入配置原创 2020-07-25 12:10:04 · 271 阅读 · 0 评论 -
移植Linux-3.4.2到TQ2440上
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-2012.04.01kernel:linux-3.4.2CPU:s3c2440开发板:TQ2440步骤之前已经移植过linux-2.6.30.4内核,这次尝试移植更高版本的内核Linux-3.4.21、内核源码下载下载地址:内核下载地址拷贝到虚拟机里,解压内核tar -jxvf linux-3.4.2.tar.bz22、在系统中添加对ARM的支持3、修改平台输入时钟不修改的话会出现启动内核会出现乱原创 2020-07-23 21:39:15 · 185 阅读 · 0 评论 -
移植uboot-2012.04.01到TQ2440
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-2012.04.01kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440交叉编译工具链:arm-linux-gcc 4.3.3步骤具体移植步骤参见https://www.bilibili.com/video/BV1Pt411n7cv我是参考韦东山的移植教程做的,期间遇到好多问题,但是都解决了,具体步骤暂时先不写呢,有时间在写,哈哈。实验现象当u-boot在TQ2440上启动成原创 2020-07-20 20:59:02 · 217 阅读 · 0 评论 -
嵌入式驱动学习之PWM蜂鸣器驱动
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440开发步骤1、硬件分析硬件电路图如下:在驱动程序里面首先初始化该 PWM 所对应的管脚的功能,然后初始化定时器设置对 PWM 的定时,最后启动 PWM 功能。2、蜂鸣器驱动代码#include <linux/module.h>#include <linux/kernel.h>#inclu原创 2020-05-10 14:18:49 · 1247 阅读 · 0 评论 -
嵌入式驱动学习之按键驱动
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440开发步骤1、硬件分析TQ2440 中的按键使用的是S3C2440的外部中断引脚,编写按键的驱动就是编写中断处理的驱动程序。需要在驱动程序里面对所用到管脚初始化,设置其功能为中断,然后再设置触发电平类型即可。下图是TQ2440 按键的原理图:2、按键驱动代码#include <linux/module.h原创 2020-05-10 13:45:22 · 624 阅读 · 0 评论 -
嵌入式驱动学习之GPIO驱动
开发环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440开发步骤1、硬件分析在天嵌科技提供的开发板中 4 个 LED 灯(TQ2440)分别使用了 S3C2440芯片的:GPB5、GPB6、GPB7 和 GPB8,下面列出来对应的原理图:根据上图可以知道,当 C...原创 2020-04-26 19:47:04 · 618 阅读 · 0 评论 -
嵌入式驱动移植之IIC总线驱动移植
移植环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440移植步骤在2.6.30.4 的内核中已经存在了 IIC 总线的驱动,只需要将其配置好,然后编译出内核镜像,就可以使用 IIC 总线了,在 TQ2440 中存在 IIC 总线的 EEPROM(AT24C02),可...原创 2020-04-18 17:29:48 · 368 阅读 · 1 评论 -
嵌入式驱动移植之看门狗驱动移植
移植环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440移植步骤1、启动看门狗在 2.6.30.4 的内核中对看门狗的驱动是已经添加了的,不过驱动程序还需要进行简单的修改。修改内核源码的“drivers/watchdog/s3c2410_wdt.c”文件,修改 6...原创 2020-04-17 20:35:49 · 240 阅读 · 0 评论 -
嵌入式驱动移植之RTC驱动移植
移植环境主机开发环境:ubuntu12.04BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440移植步骤1、 添加平台对 RTC 的支持在内核 2.6.30.4上的实时时钟驱动是非常完善的,只需要添加 RTC 设备到设备初始化列表中就行了。修改内核源码“arch/arm/mach-s3c2440/mac...原创 2020-04-16 20:50:33 · 2537 阅读 · 0 评论 -
嵌入式驱动移植之声卡驱动移植
移植环境BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440声卡:UDA1341移植步骤在 Linux-2.6.30.4 的驱动中已经包含了 UDA13410 的驱动了,不过原生的 1.0.20 这个版本会出现播放音频视频断断续续的情况,应该是驱动 bug,这里使用了 1.0.18a 这个版本的驱动,成功解...原创 2020-04-15 21:28:08 · 510 阅读 · 0 评论 -
嵌入式驱动移植之触摸驱动初识
开发环境BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440参考资料:《天嵌科技Linux移植手册》移植步骤1、触摸驱动编写此处直接用天嵌提供的源码,从天嵌科技提供的 2.6.30.4 的源码中的“drivers/input/touchsreen/”拷贝“tq2440_ts.c”文件到我的内核的“driv...原创 2020-04-10 20:39:47 · 415 阅读 · 0 评论 -
LCD驱动移植之背光控制
移植环境BootLoader:u-boot-1.1.6kernel:linux-2.6.30.4CPU:s3c2440开发板:TQ2440移植步骤控制 LCD 背光的开关对于TQ2440 开发板来讲,就是控制S3C2440 的 LCD 控制的LCD_PWREN 脚,根据 S3C2440 的datasheet,可以知道在 LCDCON5 寄存器的 PWREN 位是控制 LCD 是否输出的...原创 2020-04-07 20:49:35 · 563 阅读 · 0 评论