自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 docker搭建imx6ull Linux开发编译环境

摘要:本文介绍了一种在Windows系统下通过Docker和VS Code的Dev Containers插件搭建嵌入式Linux开发环境的方法。使用自定义Docker镜像(100ask_imx6ullubuntu)创建容器,配置devcontainer.json文件赋予容器特权访问硬件设备,并设置clangd工具链参数以支持ARM交叉编译。该方法避免了虚拟机的高开销,使项目文件能在Windows下管理,同时保持完整的Linux开发环境。文中详细提供了Dockerfile、devcontainer.json和

2025-09-29 00:31:20 885

原创 ubuntu编译freerype报错找不到libfreetype.la

摘要:WSL系统是精简版,缺少完整库支持,导致编译时出现libfreetype.la等文件缺失错误。这主要是由于缺少libharfbuzz-dev包。解决方案包括:1)安装依赖包sudo apt install libharfbuzz-dev;2)清理缓存make clean;3)重新配置并指定路径;4)重新编译安装。建议使用完整Ubuntu系统(虚拟机/物理机)可避免此类问题。

2025-09-29 00:29:45 439

原创 Docker搭建ESPIDF环境,程序下载

本文介绍了使用Docker快速搭建ESP-IDF开发环境的方法。通过容器化技术封装标准化的环境配置,解决了工具链安装、Python依赖管理等常见问题。文章详细说明了Docker镜像的获取、VSCode配置、.devcontainer文件设置等步骤,并提供了esptool服务端与客户端的通信配置方案。最后针对VSCode版本兼容性问题给出了解决方案,帮助开发者快速搭建隔离且功能完备的ESP32开发环境,提升开发效率。

2025-09-28 22:54:50 1263

原创 docker命令总结

本文总结了常用的Docker命令,包括:容器提交为镜像(docker commit)、镜像保存为tar文件(docker save)、从tar加载镜像(docker load)、查看镜像/容器列表(docker images/ps)、运行容器(docker run)等核心操作。同时记录了常见问题:Systemd无法使用时需要特权模式和指定entrypoint;Windows下Docker Desktop不支持ipvlan/macvlan,导致NFS服务端口冲突问题无法完美解决。文章将持续更新Docker相关

2025-09-28 22:48:30 1022

原创 linux命令以及问题

本文整理了SSH安装配置及中文显示问题的解决方案。主要内容包括:1)安装openssh-server并启动服务(分systemctl和非systemctl两种方式);2)修改sshd_config配置文件允许root登录;3)解决终端中文显示问题,通过修改.bashrc文件添加环境变量并刷新配置。文中提供了详细的命令行操作步骤,适用于Linux环境配置参考。

2025-09-21 19:30:14 460

原创 vscode连接ubuntu18报Gilbc2.28错

VSCode远程连接Ubuntu18.04时出现GLIBC版本过低问题,因官方已停止支持。解决方法:1)安装基础工具;2)检查当前GLIBC版本;3)更换阿里云镜像源;4)解决签名验证问题;5)更新libc6-dev库。最后通过命令验证GLIBC是否升级成功。文中提供了详细的操作命令和注意事项,包括处理镜像源404和签名错误的情况。

2025-09-21 19:29:02 806

原创 esp32 JTAG 串口 bootload升级

如果使用JTAG 串口结合Ymodem 协议实现 ESP32 的固件升级,整体逻辑将围绕通过串口传输固件文件并将其烧录到指定的 Flash 分区。以下是完整的实现步骤和代码说明。

2024-11-23 13:27:42 750

原创 Ymodem文件传输协议

YMODEM是一种经典的文件传输协议,由在XMODEM的基础上改进而来。它广泛用于嵌入式系统中的固件升级、文件传输等场景。相比XMODEMYMODEM支持更大的数据块、批量文件传输以及额外的元数据信息。在本文中,我们将深入分析YMODEM协议的工作原理,并分享一个简要实现的思路。基于帧的数据传输:YMODEM 使用数据帧进行通信,每帧包含头部、数据块和校验码。支持大数据块:每帧可传输 128 或 1024 字节的数据,传输效率比 XMODEM 更高。批量文件传输。

2024-11-23 13:25:31 11255 5

原创 香橙派OrangePi AI Pro测评部署车牌号识别项目

随着智能交通系统的不断发展,车牌号识别技术在交通管理和车辆监控中发挥着越来越重要的作用。香橙派 AIpro开发板作为一款高性能嵌入式AI平台,以其强大的计算能力和丰富的接口,成为了车牌号识别项目的理想选择。在本篇测评中,我们将详细介绍如何使用香橙派 AIpro 开发板进行车牌号识别,并探讨其在实际应用中的表现。香橙派 AIpro 开发板搭载了高效的处理器和AI加速单元,能够快速处理图像数据识别车牌号信息。其紧凑设计和低功耗特性使其非常适合部署在实际交通监控系统中。通过这次测评,我们希望展示。

2024-07-14 03:36:40 1496

原创 STM32Cubemx配置生成 Keil AC6支持代码

使用keil的时候,编译一个大项目,所花的时间太长了,如果是小项目那就没有什么差别。的编译速度会比AC5快5倍以上。现在记录一下所配置的过程。

2024-07-09 16:15:10 3329 7

原创 keil mdk注释插件合集格式、时间、日期注释

在软件开发过程中,注释起着至关重要的作用。良好的注释不仅能提高代码的可读性和维护性,还能促进团队协作和知识传递。通过清晰、简洁的注释,开发者能够更容易地理解代码的逻辑、目的和实现细节,从而减少沟通成本和错误的发生。本篇文章将深入探讨注释的最佳实践,包括如何编写高质量的注释、常见的注释类型以及注释工具的使用,以帮助开发者更好地管理和维护代码。

2024-07-09 16:04:57 2745 2

原创 CodeBlocks官方主题颜色更换及方法

Codeblocks 默认的主题编写代码,很费劲,记录一下重新设置更换主题的方法。官网的主题进去太慢,好久都刷新不出来。国内下载地址在文章尾部。

2024-06-05 11:16:00 3258 1

原创 Source Insight 4.0安装和使用

Source Insight 4.0 是每个软件工程师应该都有的软件,在这里记录一下的安装过程和新建工程的方法。

2024-06-05 10:36:52 1929

原创 U8G2移植到STM32,SSD13XXXOLED(硬件SPI DMA通讯)

在嵌入式开发中,显示屏是常见的外设之一。OLED屏幕因其高对比度和低功耗,被广泛应用于各种嵌入式系统中。本文将详细介绍如何在STM32平台上使用SPI DMA方式移植U8G2库到屏幕。

2024-05-28 13:18:39 3229

原创 移植按键框架(MultiButton )到STM32 并使用

MultiButton,一个小巧简单易用的事件驱动型按键驱动模块,作者 0x1abin,目前收获 222 个star,遵循 MIT 开源许可。这个项目非常精简,只有两个文件,可无限量扩展按键,按键事件的回调异步处理方式可以简化程序结构,去除冗余的按键处理硬编码,让你的按键业务逻辑更清晰。

2024-05-28 13:12:37 3331 1

原创 17、FreeRTOS 资源管理(Resource Management)

在前面讲解互斥量时,引入过临界资源的概念。在前面课程里,已经实现了临界资源的互斥访问。本章节的内容比较少,只是引入两个功能:屏蔽/使能中断、暂停/恢复调度器。如果有别的任务来跟你竞争临界资源,你可以把中断关掉:这当然可以禁止别的任务运行,但是这代价 太大了。它会影响到中断的处理。如果只是禁止别的任务来跟你竞争,不需要关中断,暂停调度器就可以了:在这期间,中断还是可以发 生、处理。的,它的内部会记录嵌套的 深度,只有嵌套深度变为。的,它的内部会记 录嵌套的深度,只有嵌套深度变为。

2024-05-14 18:42:16 788

原创 16、FreeRTOS 中断管理(Interrupt Management)

中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。

2024-05-14 18:41:28 1091

原创 11、FreeRTOS 队列、队列集,邮箱的使用

这也意味着,如果队列中没有数据,那么"偷看"时会导致阻塞;既然写队列的任务个数没有限制,那么当多个任务写"满队列"时,这些任务都会进入阻塞状态:有多个。可以把数据写到队列头部,也可以写到尾部,这些函数有两个版本:在任务中使用、在ISR中使用。某个任务读队列时,如果队列没有数据,则该任务可以进入阻塞状态:还可以指定阻塞的时间。既然读取队列的任务个数没有限制,那么当多个任务读取空队列时,这些任务都会进入阻塞状态:有多。跟读队列类似,一个任务要写队列时,如果队列满了,该任务也可以进入阻塞状态:还可以指定阻塞的。

2024-05-13 15:53:06 4968

原创 10、FreeRTOS 同步和互斥

经理B必须等同事A完 成报表,AB之间有依赖,B必须放慢脚步,被称为同步。在团队活动中,同事A已经使用会议室了,经 理B也想使用,即使经理B是领导,他也得等着,这就叫互斥。如果A、B同时使用串口,那么打印出来的信息就是A、B混杂,无法分辨。所以使用串口时, 应该是这样:A用完,B再用;B慢了一步,于是就眯一会;在这个过程中,A、B是互斥地访问“厕所”,“厕所”被称之为临界资源。就是:哎哎哎,我正在用厕所,你不能进来。一句话理解同步与互斥:我等你用完厕所,我再用厕所。就是:哎哎哎,我正在用厕所,你等会。

2024-05-13 15:43:54 1062

原创 9、FreeRTOS 配置调度算法

调度算法的行为主要体现在两方面:高优先级的任务先运行、同优先级的就绪态任务如何被选中。调度 算法要确保同优先级的就绪态任务,能"轮流"运行,策略是。,它是一个高级选项,用于关闭Tick中断来实现省电, 后续单独讲解。轮 转调度并不保证任务的运行时间是公平分配的,我们还可以细化时间的分配方法。所谓调度算法,就是怎么确定哪个就绪态的任务可以切换为运行状态。),高优先级的就绪任务马上执行,下面再细化。不可以:不能抢就只能协商了,被称作"可以:被称作"可抢占调度"(,先不使用这个功能。

2024-05-13 15:39:07 338

原创 15、FreeRTOS 软件定时器

简单可以理解为闹钟,到达指定一段时间后,就会响铃。STM32芯片自带硬件定时器,精度较高,达到定时时间后会触发中断,也可以生成PWM 、输入捕获、输出 比较,等等,功能强大,但是由于硬件的限制,个数有限。软件定时器也可以实现定时功能,达到定时时间后可调用回调函数,可以在回调函数里处理信息。你可以设置闹钟在30分钟后让你起床工作每隔1小时让你例行检查机器运行情况软件定时器也可以完成两类事情在"未来"某个时间点,运行函数周期性地运行函数日常生活中我们可以定无数个"闹钟",这无数的"闹钟"

2024-05-13 14:05:36 1059

原创 14、FreeRTOS 任务通知

FreeRTOS 从版本 V8.2.0 开始提供任务通知这个功能,每个任务都有一个 32 位的通知值。按照 FreeRTOS 官方的说法,使用消息通知比通过二进制信号量方式解除阻塞任务快 45%, 并且更加省内存(无需创建队 列)。在大多数情况下,任务通知可以替代二值信号量、计数信号量、事件标志组,可以替代长度为 1 的队列(可 以保存一个 32 位整数或指针值),并且任务通知速度更快、使用的RAM更少!

2024-05-13 13:57:44 1016

原创 13、FreeRTOS 事件标志组

事件标志位:表明某个事件是否发生,联想:全局变量 flag。通常按位表示,每一个位表示一个事件(高8位 不算)事件标志组是一组事件标志位的集合, 可以简单的理解事件标志组,就是一个整数。事件标志组本质是一个16 位或32 位无符号的数据类型,由决定。虽然使用了32位无符号的数据类型变量来存储事件标志,但其中的高8位用作存储事件标志组的控制信息, 低 24 位用作存储事件标志 ,所以说一个事件组最多可以存储 24 个事件标志!

2024-05-11 16:45:14 795

原创 12、FreeRTOS信号量(semaphore)

信号量(Semaphore),是在多任务环境下使用的一种机制,是可以用来保证两个或多个关键代码段不被并发调用。信号量这个名字,我们可以把它拆分来看,信号可以起到通知信号的作用,然后我们的量还可以用来表示资源的数量,当我们的量只有0和1的时候,它就可以被称作二值信号量,只有两个状态,当我们的那个量没有限制的时候,它就可以被称作为计数型信号量。信号量也是队列的一种二值信号量其实就是一个长度为1,大小为零的队列,只有0和1两种状态,通常情况下,我们用它来进行互斥访问或任务同步。互斥访问。

2024-05-11 16:41:44 1544

原创 WSL(Ubuntu)、PC物理机,linux开发板三个设备通讯,镜像模式

最近在使用Linux开发板的环境下,由于使用的WSL的子系统,并不是虚拟机,导致网络传输这方面不是很方便,由于WSL只有一个网卡,也就是说要么net要么桥接,如果作为桥接到开发板,那么WSL就不能上网了,如果作为net那么就不能个开发板通讯了,一般情况下都是需要三个设备能相互ping。这样才不会在开发的过程中出现问题。在Windows11 23 H2 版本,Windows11更新了 WSL 的网络连接方法:镜像模式什么是镜像模式?

2024-04-19 01:41:40 2245

原创 Windows ESP32S3的JTAG调试

最近有小伙伴使用的是windows开发的esp32,在开发过程中,在使用esp32-s3仿真调试的时候,由于环境问题,一直打开openocd错误,导致没有办法使用,这里记录一下过程。

2024-04-19 01:11:54 6061 6

原创 WSL(ubuntu)安装串口工具vofa+,软件中文乱码

最近在使用WSL开发ESP32的时候,经常会使用到串口,但是每次都是在WSL(ubuntu)里面编译代码,下载代码,又要把USB设备切到WINDWOS很麻烦。所以就找了一个解决方案,在Ubuntu里面安装串口工具(Vofa+)已经中途遇到的问题。

2024-04-16 16:32:25 2456

原创 ESP32S3在wsl环境的JTAG、openocd仿真调试

保存退出、注销并登录,然后重启电路板的电源以使更改生效。:修改成ESP-IDF的安装目录。在最后一行添加环境变量。启动成功、图标会变绿色。

2024-04-16 16:20:42 2427

原创 ESP-IDF移植lvgl 驱动 ST7789

本教程开始学习LVGL的,开始之前要把环境配置好,首先就需要移植lvgl,使用的是esp32环境,使用的 LCD驱动IC是ST7789,没有使用到触摸屏。

2024-04-14 04:21:23 5048 7

原创 2024激活最新版本Typora

实测可用日期为:2024-02-11目前最新版本 1.8.10.0 也是可以实现激活的。

2024-04-14 04:18:50 3627 4

原创 Vscode函数注释、文件注释格式化文档

使用VScode进行ESP32编程的时候,发现函数注释,文件注释。这些比较麻烦,作为一个软件工程师,你的代码里面必须有比较重要的注释,所以需要使用一些方法来解决这个问题。

2024-03-28 14:43:14 3729

原创 FlashDB移植到STM32F103内部flash,FatFs、FlashDB 、EasyFlash的不同

最近项目用到了,Flash的存储,早就听过armink 大神开源的EsayFlash,于是乎就决定移植到新的项目上,发现 EasyFlash 升级到了 5.0.0 版本后因 API 接口与之前不完全兼容,故重新命名为 FlashDB,有很多种框架,FatFsFlashDBEasyFlash等等。最终这个项目选择了FLASHDB,因为FlashDB的查询比EasyFlash快FatFs是针对大文件系统的那种项目。下面简单说一下FlashDB的移植。还有这三个的区别和使用环境。

2024-03-28 14:21:55 8821

原创 WSL2 Ubuntu装ESP-IDF以及USB使用

小编一开始是使用开发ESP的芯片,但是espidf在环境下的编译速度是真的慢,想使用的环境,又不想使用装虚拟机,觉得虚拟机太麻烦了。就想到了WSL微软的子系统,介绍一下怎么在事先需要准备,可以看看小编前面的几篇文章又详细的说到。

2024-03-26 00:14:52 1664 1

原创 WSL2 设置桥接模式

​ 使用wsl的过程中,会出现WSL的IP地址找不到,或者无法和计算机通讯,搞嵌入式的话,还需要外界的开发板本机WSL的Ubuntu系统需要在同一个网段进行通讯,很多同学用的都是VM虚拟机,但是这个虚拟机很不方便,特别是对于文件管理。所以经过我一个星期的研究,找到了一个比较好的方法,把WSL的网卡桥接到自己的物理网卡当中,并且当中遇到了很多问题,还有对应的解决方案!网上看了很多方法,综合整理一下自己认为比较优比较简便的方法。

2024-03-26 00:08:24 10525 13

原创 VS code配置Markdown以及预览

如果尚未安装,请先下载并安装它。您可以从官方网站(https://code.visualstudio.com/)下载适用于您的操作系统的版本。

2024-03-25 09:46:24 4909

原创 Typora简单环境配置,修改图片路径

​ 我们在本地使用Typora时,插入图片路径往往默认为自身本地路径(含本身电脑根目录),而将.md文件发给其他人时,在其他电脑打开,由于绝对路径问题,无法加载图片,同时在转换word文件有丢图现象。。​ 故应该进行相应的设置。

2024-03-25 09:44:35 4245

原创 windows10装windows11的CMD(Terminal)终端

我装了WSL的LINUX系统,在windows10系统下面不方便启动linux,但是Windows11在cmd里面就可以打开,所以找了这个方法。

2024-03-21 13:00:15 3028

原创 WSL2安装Ubuntu迁移到其他盘或者其他电脑

网络上很多教程都说了WSL的迁移和安装 ,但是在使用过程中,我会用到其他的电脑,在其他电脑的时候,很多方法都不使用,后面自己就在这里研究了这个方法。可以在其他的电脑同样可以适用。

2024-03-21 12:57:56 8176 5

原创 Git的使用

所有的git管理工具都是一样的操作方式,这里以GitLab作为演示。

2024-01-26 19:53:35 436

原创 群晖Docker安装GitLab

external_url ‘http://lanweixia.synology.me’ 这种情况访问页面的时候加上端口没问题,但是会导致http的克隆地址没有端口。external_url ‘http://lanweixia.synology.me:8000’ 加端口的话,又会导致页面访问不了,Gitlab也一直处于启动状态。​ 完成以后修改docke—>gitlab—>config---->gitlab.rb。就是上面改的端口(docker的端口)首次进入,会设置密码,这个密码就是用户名。

2024-01-26 19:48:20 8705

keil tools 注释工具包 含脚本

keil,日期注释,文件注释,函数注释,.C文件模板修改,.H文件注释文件模板修改,时间注释。工具使用教程在 csdn连接上面https://blog.youkuaiyun.com/mayuxin1314/article/details/140298630

2024-07-09

移植按键框架(MultiButton )到STM32 并使用

教程在 https://blog.youkuaiyun.com/mayuxin1314/article/details/139259437

2024-05-28

u8g2移植到STM32单片机上,使用硬件SPI,DMA传输 刷新率加快

使用教程在 https://blog.youkuaiyun.com/mayuxin1314/article/details/139240202 ,是一个KEIL工程

2024-05-27

Stm32FlashDb.zip

基于STM32F103VET6移植的FLashDB文件框架,教程:https://blog.youkuaiyun.com/mayuxin1314/article/details/137110576

2024-03-28

WSL2 Ubuntu装ESP-IDF以及USB使用

WSL usb连接工具

2024-03-26

这个我WSL Ubuntu20.04的启动文件

资源教程是在 https://blog.youkuaiyun.com/mayuxin1314/article/details/136905130

2024-03-21

hal库 FreeRTOS移植模板Hal库不需要另外加定时器维护,使用systemTick,里面有基于操作系统的us级延时

一个定时器实现 FreeRTOS时钟,us函数,HAL库维护 教程 https://blog.youkuaiyun.com/mayuxin1314/article/details/126088521

2022-07-31

串口Freertos移植过程

Freertos移植过程 教程 https://blog.youkuaiyun.com/mayuxin1314/article/details/126019667

2022-07-27

空空如也

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

TA关注的人

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