自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smallerxuan的博客

点滴汇聚,终成其大。

  • 博客(124)
  • 资源 (4)
  • 收藏
  • 关注

原创 如何使用gprof对程序进行性能分析

通过 gprof 工具统计出程序中 各函数的调用次数、执行时间、函数调用关系。

2024-06-21 15:38:45 1092

原创 SOC中的同构多核、异构多核

现代SOC设计中,为了解决性能与功耗的平衡、通过并行化加速计算等,而越来越多地使用同构多核、异构多核和协处理器的设计。在系统层面也就有了相应的SMP、AMP支持。

2024-04-09 12:02:24 1867

原创 为prj添加kconfig支持

Kconfig是一个配置系统,它允许用户和开发者通过配置文件/配置界面选择需要的编译选项。目前大量的项目都有用到该配置系统(linux、u-boot、rt-thread、esp-idf/adf、zephyr等),可以说是一个项目的构建系统中的不可缺少的重要组成部分。如何为我们的项目添加相关支持,是一个值得思考和探索的事情。

2024-03-20 17:30:35 765

原创 关于Linux系统中的U-Boot、Kernel、RootFS

U-Boot、Kernel和 RootFS 是嵌入式Linux系统中的三个关键组成部分。可以说从事Linux系统相关的开发者,无论是在原厂、方案商、板卡商都离不开对这三个板块的理解、掌握、使用。

2024-03-08 16:43:51 1636

原创 ARM Cortex-A 内核的运行模式切换

ARM Cortex-A系列内核的处理器支持多种运行模式的切换。不同的运行模式能满足不同的需求,如响应中断、运行操作系统内核、处理异常等。

2024-01-26 15:57:42 1303

原创 ARM架构SOC运行Linux的典型启动流程

对于运行linux的ARM架构的SOC来说,典型的启动流程应该从上电开始。通常经过:上电复位、Boot模式选择、Boot ROM加载、Boot Flash加载、Bootloader加载、Linux内核加载、Linux内核启动、用户空间初始化、用户空间运行。

2024-01-26 11:26:58 800

原创 I.MX6U的IO设置概观

从整体上对 IO/PIN 进行概览式的表观描述,不追求描述的准确性,侧重于整体的抽象表达。概观IO和外设的逻辑关系。

2024-01-25 14:34:52 418

原创 Ubuntu1804下如何切换python版本

在Ubuntu中如何设置默认Python版本。

2024-01-17 17:16:51 709

原创 LRC歌词格式文件

LRC(Lyric)是一种常见的歌词文件格式,用于存储音乐歌曲的歌词信息。LRC文件通常以文本文件的形式存在(非二进制文件,入MP3、MP4等都是属于格式二进制文件),可以使用任何文本编辑器进行打开和编辑。使用LRC格式的歌词文件可以方便地与音乐播放器配合,实现歌词的同步显示。

2024-01-16 11:34:07 2468

原创 Linux下如何快速调试I2C设备

在Linux 系统的硬件开发过程中,经常会有需要快速验证、调测I2C设备的场景。如何能够快速、高效的验证I2C设备是否能够正常工作,是一件很重要的事情。

2024-01-14 11:17:44 1133

原创 Qt中的线程池

线程池是多线程编程中常用的一种技术,可以帮助管理系统中的线程资源、提高程序的性能、帮助控制并发度、简化多线程编程、提高程序的稳定性。所以,线程池在Qt开发中具有重要的作用,在需要进行多线程编程的场景下,使用线程池是一个常见且有效的选择。

2024-01-12 16:08:36 2199 2

原创 Qt中的多线程

在现代化的程序设计开发中,多进程、多线程是经常采用的设计方式。当Qt程序在某些情况下需要处理复杂逻辑的时候(比如需要较长时间的网络操作、耗时的数据处理等)可能会占用很长的时间,这时候可能会导致窗口线程响应缓慢(UI响应卡顿),这时候通过多线程设计让多个逻辑事件分配在多个线程中进行操作,并处理好多个线程间的同步与交互,就能极大的提升程序的用户体验和程序执行效率。

2024-01-12 15:20:19 1260

原创 常用通信接口、协议:SCCB

SCCB接口、协议是常见于mcu/soc 与camera sensor通信所用的控制协议,协议类似于IIC协议

2023-11-23 00:10:58 6578

原创 RTOS编程中的原子操作

RTOS编程中的原子操作(Atomic operation)有什么作用,如何实现的。

2023-10-28 20:44:08 10258

原创 如何用BCompare打增量包

记录如何通过BCompare来对工程项目进下版本间增量包的生成

2023-10-24 12:12:17 11079

原创 常用通信接口、协议:SPI

SPI接口是4线全双工串行通信接口,其通讯速率往往能够达到 几十Mbps,常应用于 EEPROM、FLASH、AD转换器等外设的通信中。定义有4条通信线:CS、SCLK、MOSI、MISO。主机和从机通过移位寄存器根据时钟,在MISO和MOSI上完成数据的同步交换。

2023-06-08 06:54:10 10870 1

原创 常用通信接口、协议:UART

UART接口是通用异步收发器,作为一种串行通信的物理接口形式,定义有4个pin(VCC、GND、RX、TX),采用TTL电平,低电平为0(0V)高电平为1(3.3V)

2023-06-07 07:08:47 12411

原创 常用通信接口、协议:IIC

IIC 接口是2线制半双工主从通信接口,通信速率能够从几百kbps~几Mbps。包含 时钟线SCK、数据线SDA。两根线均需要上拉电阻(大小由通信速率和容性负载决定,通常在3.3k~10k之间),所以低电平时通信中的显性电平。其数据bit通常是以MSB(高比特位在前)的方式进行的。

2023-06-06 07:27:33 12698 1

原创 如何在git已有项目中创建空分支

在git已有项目中创建一个新的空分支。

2023-02-20 11:15:36 8588

原创 中位值滤波法

中位值滤波算法是一种典型的非线性滤波器,它运算简单,在滤除脉冲噪声的同时可以很好地保护信号的细节信息,应用比较广泛,特别适用于会偶然出现异常值的系统。

2022-08-19 12:19:41 6270

原创 ubuntu 20.04搭建ESP-ADF开发环境

ubuntu 20.04搭建ESP-ADF开发环境

2022-08-17 15:59:41 10560

原创 限幅滤波(程序判断滤波)

限幅滤波法又被称之为程序判断滤波法,可以用于消除随机干扰,例如电源开关开闭时的噪声等,但是要注意该算法要对采样目标的可允许的最大偏差有一个准确的判断,否则会导致正常的数据被滤除。......

2022-08-15 08:27:02 7048

原创 linux 搭建webserver-BOA

嵌入式linux 搭建webserver-BOA

2022-08-13 10:53:48 16809

原创 linux 搭建webserver-Goahead

嵌入式linux 搭建webserver-Goahead

2022-08-13 10:39:15 15766

原创 在终端中用 git commit 提交大段、多行的注释

git commit 多行注释

2022-07-20 11:51:52 6948

原创 嵌入式系统中的低功耗设计

电子产品的低功耗设计,需要系统性优化,从硬件设计到软件设计的共同优化,才能达到更好的效果。

2022-07-16 21:33:09 7215 1

原创 C++11的内联命名空间(inline namespace)

在c++11后 一个namespace (子命名空间)可以通过inline 修饰,将其中的函数和类型export到其外层的namespace(父命名空间)中,并且这种export是可以传递的。

2022-05-09 00:33:51 1149

原创 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 7564

原创 STM32F429图形加速器(DMA2D)

在stm32f429中有一个Chrom-Art Accelerator™ controller(DMA2D),这个控制器是一款专门用于图像处理的DMA(也可以和普通的DMA一样用于数据传输),能够用于2D图形加速(主要针对LCD屏幕)。一、DMA2D主要能够进行的图形加速加速区域填充、图像复制。用特定的颜色填充目标图像的一部分或整体,将源图像的一部分或全部复制到目标图像的一部分或全部。 通过像素格式转换,将源图像的一部分或全部复制到目标图像的一部分或全部 混合一个部分和/或两个完整的源图像与不同

2021-09-03 03:39:17 7017

原创 s_log_safe开源log库

s_log_safe开源log库s_log_safe库是一个采用MIT License协议开源的、小巧的、基于s_log(https://github.com/smallerxuan/s_log.git)开源库和s_ring_buffer(https://github.com/smallerxuan/s_ring_buffer.git)开源库打造的一款线程安全的嵌入式log库,纯C语言实现,移植、使用方便、快捷。在s_log原有的输出等级控制功能、log重定向功能、彩色log输出功能基础上还提供了多线程

2021-07-17 19:44:48 22168

原创 s_ring_buffer开源ring_buffer库

s_ring_buffer库是一个采用MIT License协议开源的、小巧的、纯C语言的、ring_buffer实现,读写锁分离设计,核心实现代码平台无关(抽出了平台相关的适配层), 可以方便的进行移植、使用。仓库地址:https://github.com/smallerxuan/s_ring_buffer.gits_ring_buffer用户接口s_ring_buffer包含如下用户接口:`1、构造器接口 s_ring_buffer_constructor()2、析构器接口 s_ri

2021-07-13 00:32:41 11531

原创 树莓派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 26310 3

原创 s_log开源log库

Slog库是一个采用MIT License协议开源的、小巧的嵌入式log库,纯C语言实现,可以方便的进行移植、使用。支持log输出等级控制功能、log重定向功能、彩色log输出功能,使用灵活方便、简单快捷。仓库地址:https://github.com/smallerxuan/SLog.gitSLog用户接口 SLog包含如下用户接口:s_tag()、s_log_a()、s_log_e()、s_log_w()、s_log_t()、s_log_i()、s_log_d()、s_lo...

2021-07-11 14:02:57 8730

原创 嵌入式编程中的堆栈溢出检测

在嵌入式编程中,栈是一个很重要的概念,不管是裸机编程还是基于RTOS编程。函数形参、局部变量、函数调用现场的保护及返回地址、中断函数执行前线程保护及中断嵌套的现场的保护都依赖于栈空间。栈空间不足,程序执行过程中栈溢出,极大可能的影响程序、系统的稳定,严重时会造成程序、系统的崩溃,所以堆栈溢出检测十分重要且必要。什么是堆,什么是栈 堆和栈都是指预先分配的空间,有大小限制,两者通常是相邻的两个内存区域(RTOS中任务的堆和栈可能不相邻),供程序使用,堆和栈的最大差异是,堆空间通过xxmal...

2021-07-09 23:46:30 16940 2

原创 STM32F4移植FreeRTOS V10.3.1

STM32F429移植FreeRTOS

2020-06-25 15:41:52 16192

原创 求解最大子序列和的经典实现

求解最大子序列和 记录下最大序列和的多个实现方法,时间复杂度由高至低,分别为ON3、ON2、ONlogN、ON。分别对应的是:直接穷举式、穷举改进式、分治处理、联机算法。好的算法实现,总给人以美的体验。 下面直接贴代码:#include <st...

2018-12-03 21:28:35 8097 2

原创 《设计模式》学习笔记——迭代器模式

        迭代器模式(Iterator Pattern)用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式。IteratorPattern.h#pragma once#include<iostream>#include<string>// 模拟对象typedef int Object;#define SIZE 5...

2018-10-29 08:21:04 4539

原创 《设计模式》学习笔记——解释器模式

        解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。意图:    给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。主要解决:    对于一些固定文法构建一个解释句子的解释器。何...

2018-10-29 08:17:32 3908

原创 《设计模式》学习笔记——状态模式

        在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。意图:    允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。主要解决:    对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关...

2018-10-29 08:12:31 10172

原创 《设计模式》学习笔记——访问者模式

        在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。意图:    主要将数据结构与数据操作分离。主要解决:    稳定的数据结构和易变的操作耦合问题。何时使用:...

2018-10-29 08:08:28 4176

SCons 4.5.0版本

SCons v4.5.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.4.0版本

SCons v4.4.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.3.0版本

SCons v4.3.0版本,基于python的工程编译管理工具

2023-04-10

SCons 4.2.0版本

SCons v4.2.0版本,基于python的编译管理工具

2023-04-10

SCons v4.1.0 版本

SCons v4.1.0 版本,python实现的编译管理工具

2023-04-10

FreeRTOS_STM32F429IGT6_Demo.zip

在STM32F4 硬件平台移植FreeRTOS V10.3.1 的完整源码,编译、下载、运行正常,符合预期。

2020-06-25

《设计模式》高清PDF中文完整版

设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式设计模式

2018-07-23

图解设计模式(JAVA描述版)

图解设计模式(JAVA描述版)彩色高清PDF扫描版本,JAVA设计模式学习利器

2018-07-23

设计模式精解-GoF 23 种设计模式解析附 C++实现源码

设计模式精解-GoF 23 种设计模式解析附 C++实现源码高清PDF扫描版本

2018-07-23

空空如也

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

TA关注的人

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