
学习日记
文章平均质量分 71
smallerxuan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ESP32S3 + IDF 5.2.2 控制台终端
通过分步骤的讲解,详细描述了如何 在ESP32-S3芯片上,使用ESP-IDF5.2.2 中的 console 组件,实现控制台终端 使用自定义的命令,并给出了完整的Demo工程。原创 2025-02-27 18:14:26 · 1943 阅读 · 0 评论 -
Linux学习日记(十七)——Linux系统中的信号
这篇博文主要对Linux下的信号的基本概念进行了描述,并简单说明了信号的相关类型划分,着重的介绍了:常见信号的默认行为(系统默认操作)、进程对信号的处理方式、如何向进程发送信号。原创 2025-01-14 14:25:34 · 3234 阅读 · 0 评论 -
低功耗蓝牙 (Bluetooth Low Energy, BLE) 的分层架构
低功耗蓝牙 (Bluetooth Low Energy, BLE) 的分层架构使得BLE具有良好的模块化和扩展性,能够适应各种不同的应用场景和需求。这里对这种分层架构进行了简单的描述,方便快速建立基础的概念认知。原创 2025-01-09 15:15:35 · 3726 阅读 · 0 评论 -
linux系统下文件目录中有软连接时如何压缩
在Linux系统下,是否有遇到过用zip格式压缩文件目录,解压后出现软连接失效的情况?这时候还在想办法修复软连接?原创 2025-01-07 12:04:38 · 3433 阅读 · 0 评论 -
ESP32S3 + IDF 5.2.2 扫描WiFi
ESP32S3平台使用IDF5.2.2,STA模式下扫描附近的WIFI网络。原创 2025-01-02 18:34:03 · 1833 阅读 · 0 评论 -
ESP32S3驱动LCD屏幕的TP触摸(xpt2046)
在ESP32S3SOC主控,使用在ESP组件中心查找到的xpt2046相关组件,驱动LCD屏幕的触屏部分,并通过LVGL显示交互界面方便测试。原创 2024-12-24 12:02:11 · 5244 阅读 · 1 评论 -
ESP32S3 使用LVGL驱动LCD屏(ST7789主控)
在ESP32S3主控芯片上使用LVGL组件驱动ST7789主控的LCD屏。原创 2024-12-23 17:04:20 · 10450 阅读 · 8 评论 -
IDF项目添加LVGL组件
ESP IDF支持组件管理,有组件中心,要在工程中导入目标组件,通常是在组件中心查找目标组件,然后执行相关命令进行导入。这里说明的是如何向工程中导入lvgl组件。原创 2024-12-23 11:36:09 · 4590 阅读 · 0 评论 -
在Ubuntu2004中搭建基于ESP-IDF v5.1的ESP32-S3开发环境
如何在Ubuntu2004中搭建基于ESP-IDF v5.1的ESP32-S3开发环境,其中部分需要注意的事项,以及如何创建自己的应用工程和组件工程。原创 2024-11-26 18:45:57 · 3915 阅读 · 0 评论 -
ESP32中的分区表
简单的对ESP32中的分区表的部分具体概念进行了描述,并简单阅读了一个分区表示例,同时也介绍了如何通过图形化界面配置分区表设置。原创 2024-11-28 17:04:36 · 5131 阅读 · 0 评论 -
如何使用gprof对程序进行性能分析
通过 gprof 工具统计出程序中 各函数的调用次数、执行时间、函数调用关系。原创 2024-06-21 15:38:45 · 2308 阅读 · 0 评论 -
SOC中的同构多核、异构多核
现代SOC设计中,为了解决性能与功耗的平衡、通过并行化加速计算等,而越来越多地使用同构多核、异构多核和协处理器的设计。在系统层面也就有了相应的SMP、AMP支持。原创 2024-04-09 12:02:24 · 3428 阅读 · 0 评论 -
为prj添加kconfig支持
Kconfig是一个配置系统,它允许用户和开发者通过配置文件/配置界面选择需要的编译选项。目前大量的项目都有用到该配置系统(linux、u-boot、rt-thread、esp-idf/adf、zephyr等),可以说是一个项目的构建系统中的不可缺少的重要组成部分。如何为我们的项目添加相关支持,是一个值得思考和探索的事情。原创 2024-03-20 17:30:35 · 3178 阅读 · 0 评论 -
关于Linux系统中的U-Boot、Kernel、RootFS
U-Boot、Kernel和 RootFS 是嵌入式Linux系统中的三个关键组成部分。可以说从事Linux系统相关的开发者,无论是在原厂、方案商、板卡商都离不开对这三个板块的理解、掌握、使用。原创 2024-03-08 16:43:51 · 2384 阅读 · 0 评论 -
ARM Cortex-A 内核的运行模式切换
ARM Cortex-A系列内核的处理器支持多种运行模式的切换。不同的运行模式能满足不同的需求,如响应中断、运行操作系统内核、处理异常等。原创 2024-01-26 15:57:42 · 1452 阅读 · 0 评论 -
ARM架构SOC运行Linux的典型启动流程
对于运行linux的ARM架构的SOC来说,典型的启动流程应该从上电开始。通常经过:上电复位、Boot模式选择、Boot ROM加载、Boot Flash加载、Bootloader加载、Linux内核加载、Linux内核启动、用户空间初始化、用户空间运行。原创 2024-01-26 11:26:58 · 1286 阅读 · 0 评论 -
I.MX6U的IO设置概观
从整体上对 IO/PIN 进行概览式的表观描述,不追求描述的准确性,侧重于整体的抽象表达。概观IO和外设的逻辑关系。原创 2024-01-25 14:34:52 · 625 阅读 · 0 评论 -
Ubuntu1804下如何切换python版本
在Ubuntu中如何设置默认Python版本。原创 2024-01-17 17:16:51 · 1042 阅读 · 0 评论 -
LRC歌词格式文件
LRC(Lyric)是一种常见的歌词文件格式,用于存储音乐歌曲的歌词信息。LRC文件通常以文本文件的形式存在(非二进制文件,入MP3、MP4等都是属于格式二进制文件),可以使用任何文本编辑器进行打开和编辑。使用LRC格式的歌词文件可以方便地与音乐播放器配合,实现歌词的同步显示。原创 2024-01-16 11:34:07 · 5616 阅读 · 0 评论 -
Linux下如何快速调试I2C设备
在Linux 系统的硬件开发过程中,经常会有需要快速验证、调测I2C设备的场景。如何能够快速、高效的验证I2C设备是否能够正常工作,是一件很重要的事情。原创 2024-01-14 11:17:44 · 2044 阅读 · 0 评论 -
Qt中的线程池
线程池是多线程编程中常用的一种技术,可以帮助管理系统中的线程资源、提高程序的性能、帮助控制并发度、简化多线程编程、提高程序的稳定性。所以,线程池在Qt开发中具有重要的作用,在需要进行多线程编程的场景下,使用线程池是一个常见且有效的选择。原创 2024-01-12 16:08:36 · 3080 阅读 · 2 评论 -
Qt中的多线程
在现代化的程序设计开发中,多进程、多线程是经常采用的设计方式。当Qt程序在某些情况下需要处理复杂逻辑的时候(比如需要较长时间的网络操作、耗时的数据处理等)可能会占用很长的时间,这时候可能会导致窗口线程响应缓慢(UI响应卡顿),这时候通过多线程设计让多个逻辑事件分配在多个线程中进行操作,并处理好多个线程间的同步与交互,就能极大的提升程序的用户体验和程序执行效率。原创 2024-01-12 15:20:19 · 1424 阅读 · 0 评论 -
RTOS编程中的原子操作
RTOS编程中的原子操作(Atomic operation)有什么作用,如何实现的。原创 2023-10-28 20:44:08 · 10561 阅读 · 0 评论 -
如何用BCompare打增量包
记录如何通过BCompare来对工程项目进下版本间增量包的生成原创 2023-10-24 12:12:17 · 11708 阅读 · 0 评论 -
如何在git已有项目中创建空分支
在git已有项目中创建一个新的空分支。原创 2023-02-20 11:15:36 · 8726 阅读 · 0 评论 -
ubuntu 20.04搭建ESP-ADF开发环境
ubuntu 20.04搭建ESP-ADF开发环境原创 2022-08-17 15:59:41 · 10874 阅读 · 0 评论 -
linux 搭建webserver-BOA
嵌入式linux 搭建webserver-BOA原创 2022-08-13 10:53:48 · 17064 阅读 · 0 评论 -
linux 搭建webserver-Goahead
嵌入式linux 搭建webserver-Goahead原创 2022-08-13 10:39:15 · 16074 阅读 · 0 评论 -
在终端中用 git commit 提交大段、多行的注释
git commit 多行注释原创 2022-07-20 11:51:52 · 7300 阅读 · 0 评论 -
嵌入式系统中的低功耗设计
电子产品的低功耗设计,需要系统性优化,从硬件设计到软件设计的共同优化,才能达到更好的效果。原创 2022-07-16 21:33:09 · 7625 阅读 · 1 评论 -
C++11的内联命名空间(inline namespace)
在c++11后 一个namespace (子命名空间)可以通过inline 修饰,将其中的函数和类型export到其外层的namespace(父命名空间)中,并且这种export是可以传递的。原创 2022-05-09 00:33:51 · 1190 阅读 · 0 评论 -
GNU C扩展-typeof
GUN C提供了一不少扩展(参考C-Extensions),其中就包括了typeof(),其作用类似于C++11 里的 decltype 操作符,可以取得变量或表达式的类型。 几个比较有意思的使用typeof()的方式: 1、用于定义函数指针类型的变量int func(int a);typeof(func)* func_ptr; 2、通过typeof()定义用于接收函数返回值的变量int func(int a);typeof(func(0)) b;...原创 2021-10-24 23:21:54 · 7605 阅读 · 0 评论 -
STM32F429图形加速器(DMA2D)
在stm32f429中有一个Chrom-Art Accelerator™ controller(DMA2D),这个控制器是一款专门用于图像处理的DMA(也可以和普通的DMA一样用于数据传输),能够用于2D图形加速(主要针对LCD屏幕)。一、DMA2D主要能够进行的图形加速加速区域填充、图像复制。用特定的颜色填充目标图像的一部分或整体,将源图像的一部分或全部复制到目标图像的一部分或全部。 通过像素格式转换,将源图像的一部分或全部复制到目标图像的一部分或全部 混合一个部分和/或两个完整的源图像与不同原创 2021-09-03 03:39:17 · 7894 阅读 · 0 评论 -
树莓派3B+ 搭建 esp32开发环境
树莓派3B+搭建esp32开发环境目前来说esp32的整体开发体验还是不错的,关于esp32开发环境的搭建官方也有给出指导文档(https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/index.html),基本上是按步就班的就能正常搭建。通常都是在linux或者windows下搭建开发环境,手上刚好有一块在用的树莓派3B+,于是就在这上面搭建了,毕竟也是属于linux环境不是。一、准备工作首先是做原创 2021-07-12 09:15:24 · 26712 阅读 · 3 评论 -
《设计模式》学习笔记——单例模式
单例模式(SingletonPattern)是一种对象创建模型,使用单例模式可以保证一个类只生成一个对象实例,即在整个程序的生命周期内,该类的实例对象只存在一个。单例模式(SingletonPattern)保证一个类只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。实现单例模式的常用步骤: 1、构造函数私有化 2、提供一个全局的静态方法(全局访问点...原创 2018-10-24 09:14:59 · 3966 阅读 · 0 评论 -
Windows平台下的动态链接库(DLL)
Windows平台下的动态链接库(DLL)动态链接库DLL(Dynamic Link Library)文件又称"应用程序拓展",是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。...原创 2018-08-20 21:04:23 · 17007 阅读 · 1 评论 -
《设计模式》学习笔记——代理模式
代理模式(Proxy Pattern):为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的角色组成: 抽象角色:通过接口或抽象类声明真实角色实现的业务方法。 代理角色 : 实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附...原创 2018-10-25 05:59:01 · 2269 阅读 · 0 评论 -
《设计模式》学习笔记——命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。 请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。意图: 将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。主要解决: 在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系....原创 2018-10-28 08:32:20 · 4384 阅读 · 0 评论 -
《设计模式》学习笔记——模板模式
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。主要解决: 一些方法通用,却在每一个子类都重新写了这一...原创 2018-10-28 08:28:12 · 3101 阅读 · 0 评论 -
《设计模式》学习笔记——享元模式
享元模式(Flyweight Pattern)是一种软件设计模式。 它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。享元模式通过共享的方式,高效的支持大量的细粒度的操作。 FlyweightPa...原创 2018-10-28 08:04:54 · 6618 阅读 · 0 评论