自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 【好奇一刻】芯片性能评估&内核优化路线(1)

芯片技术迭代不断年年有新品发布,如何选择一款适合的平台?如何洞察芯片底层的技术更新?希望一起交流,我负责记录。

2025-08-28 19:27:31 685

原创 【SE 网络】无线物联网络如何选

物联网设备需要实现与互联网的无缝连接,这就要求具备高效、可靠,低功耗的无线通信技术。目前物联网领域已经形成了多种无线通信技术标准,如WIFI、Zigbee、LoRa、2G、NB-IoT,Cat.1等,它们各具特点适用于不同的应用场景。

2025-12-19 16:11:43 534

原创 【UI Qt】入门笔记

Qt Quick 不是只能写 QML:QML 只是 Qt Quick 的一种使用方式,不是唯一方式。Qt Quick 本质是 C++ 库:所有 QML 最终都被编译/解释为 C++ 调用。// 调用 QWidget::create()// 没有窗口了,退出应用。// 获取并分发事件到该窗口。// 3. Qt 内部将该窗口添加到窗口列表中。// MainWindow 构造函数内部(简化表示)// 2. 处理每个窗口的事件。// 1. 获取所有顶层窗口。// 伪代码:事件循环处理窗口关联。

2025-12-12 20:03:35 589

原创 【SE】接口标准化

本文概述了主要接口标准化组织及其制定的标准规范。POSIX由IEEE和The Open Group制定,确保应用软件在操作系统间的可移植性;Khronos Group维护OpenVG和Vulkan/OpenGL标准,实现图形应用在GPU间的兼容;AUTOSAR联盟制定汽车软件标准,促进供应商间组件互换;OCI联盟规范容器接口,保障应用在容器运行时中的可移植性。文章重点介绍了POSIX认证流程、OpenVG的2D矢量图形特性,以及SQLite作为嵌入式数据库的核心特点,包括其无服务器架构、零配置部署和有限并发

2025-12-01 18:35:50 920

原创 【SE】Source Insight使用规范

专业猿哥分享,Source Insight 也能打出 VS Code 的节奏!Source Insight不是免费软件只是老用户比较多顺带聊一聊,建议新手直接上VS Code。

2025-11-19 11:33:46 556

原创 【SE】VScode使用规范

本文介绍了VS Code的常用配置和插件使用指南。主要内容包括:1.基础设置:默认编码修改为UTF-8,显示空格/制表符,将制表符转换为空格等;2.常用快捷键:文件搜索(Ctrl+F)、全局搜索(Ctrl+Shift+F)、命令面板(Ctrl+Shift+P)等;3.核心插件推荐:C/C++插件提供智能感知和调试功能,附带详细的clang-format配置示例;GitLens和GitHistory提供版本控制功能;Astyle作为替代格式化工具;4.插件配置方法:通过settings界面配置各插件参数,支持

2025-11-18 19:36:19 763

原创 【MCU ATS323X】PM电源管理系统

本文的电源管理系统是比较狭义的定义主要包含:设备功耗模式申明(多少种);不同功耗模式如何切换;投票与仲裁;功能模式切换回调。ATS323X的SDK使用OS是zephyr分析电源管会涉及到zyphyr子系统pm的内容。

2025-11-07 21:10:40 754

原创 【OS zephyr】子系统logging

logging子系统特点:运行模式可配,分级管理,多格式打印可选,支持同步异步打印,支持多后端,支持实例日志。底层都是vprintk()接口,vprintk()接口可能有多种实现实方式。运行模式打印格式接口说明mini模式strhexfall模式str支持立即模式(),线程模式()可选hex/* Init level ordinals 宏定时引用*///levels[]中包含不同等级初始化段的段起始。//初始化时确定顺序时引用。与levels[]配置使用。

2025-11-06 18:40:00 994

原创 【UI】像素颜色格式

本文介绍了两种常见的图像色彩格式:RGB和YCbCr。RGB格式通过红绿蓝三原色混合呈现色彩,包括RGB888(24位真彩色)、ARGB8888(带透明通道)和RGB565(16位高彩色)等变体,适用于不同显示需求。YCbCr格式则将色彩分离为亮度(Y)和色度(Cb/Cr)分量,支持4:4:4、4:2:2和4:2:0等色度抽样方式,可大幅降低带宽需求,是视频压缩的主流格式。文章还解析了JPEG压缩的关键步骤:色彩空间转换、分块、DCT变换、量化和熵编码,其中色度抽样和量化是实现高效有损压缩的核心技术。

2025-10-16 16:27:01 734

原创 【OS zephyr】编译分析(3)

本文分析了Zephyr项目中west build命令的执行流程,重点解析了build.py和zcmake.py文件的功能。详细介绍了CMake构建过程,包括do_run()入口方法、_run_cmake()构建和_run_build()编译等关键步骤。特别对subprocess.Popen()和os.system()两种Python线程启动方法进行了对比。最后解剖了一个典型CMake命令的参数含义,该命令使用Ninja生成器针对特定硬件平台配置Zephyr项目,为后续CMakeLists.txt的执行做好准

2025-10-13 21:15:29 1008

原创 【OS zephyr】编译分析(2)

本文分析了build.py脚本的主要功能:1.配置工程目录常量,包括SDK、RTOS、应用等路径;2.read_choice()函数实现交互式配置选择,生成.build_config中间文件;3.build_zephyr_app_by_gcc()作为编译入口,调用west build命令进行应用构建;4.支持ELF文件拆分和固件打包功能。该脚本是Zephyr RTOS项目构建系统的核心组件,负责管理整个编译流程的配置和执行。

2025-10-13 19:35:42 398

原创 【OS zephyr】cmake脚本开发记录

​1、语法cmake官方说明文档:https://cmake.org/cmake/help/latest/manual/cmake-commands.7.html1.1、常用原生命令​

2025-09-26 18:26:04 662

原创 【OS zephyr】编译分析(1)

本文介绍了Zephyr项目的编译流程和工具链。Zephyr采用Python+West+CMake+Ninja的构建方式,主要分为四个阶段:配置阶段(由West和CMake主导)、编译阶段(编译器主导)、链接阶段(链接器主导)和后处理阶段(objcopy等工具)。文章详细解析了build.sh/zephyr-env.sh/build.py脚本的参数处理、.build_config文件生成和West构建命令的执行过程,并阐述了CMake在构建系统中的作用,包括如何生成构建规则和文件。最后还介绍了West工具的功

2025-09-19 20:30:26 1115

原创 【MCU ATS3231】宏定义那些事

弯弯绕绕的宏定义一一把它理清楚。//UART设备引脚管理//UART设备软件配置//UART设备数据结构DEVICE_DT_DEFINE(UARTNODE(idx), //通用设备结构定义&uart_acts_init,//初始入口NULL,va_list ap;va_end(ap);va_list ap;va_end(ap);if(!return;

2025-09-12 20:26:57 573

原创 【MCU ATS3231】炬芯APP启动分析

WLMIC -- Wireless microphone 无线麦。firmware.xml -- 磁盘分区表信息定义。bootloader.ini -- bootloader程序的配置文件。如何在boot中生效?ats3231L_dvb_ext_nor.dts -- 板型对应的设备树。ats3231L_dvb_ext_nor-pinctrl.dtsi -- 板型对应的 GPIO 复用配置。app.conf -- 编译方案所需要的编译宏配置。

2025-09-10 15:20:18 1206

原创 【好奇一刻】芯片架构与芯片内核的区别

内核是架构的​​具体物理实现​​。它是根据架构的规范,用晶体管实际设计出来的​​硬件电路​​。不同的内核可以遵循同一套架构,但通过不同的微架构设计来实现,从而在性能、功耗、面积上产生差异。​​微架构​​:这是内核设计的核心,包括流水线级数、缓存大小、分支预测策略、执行单元数量等。这些设计决定了内核的效率和特性。

2025-09-01 11:41:16 1015

原创 【MCU HI332X】OS适配层:cmsis_os2.h

typedef struct { const char *name; ///< name of the thread uint32_t attr_bits; ///< attribute bits void *cb_mem; ///< memory for control block uint32_t cb_size; ///< size

2024-12-03 16:34:10 676

原创 【UI】动效曲线调试

一、多种曲线二、贝塞尓曲线三、曲线思想四、曲线特点。

2023-09-19 16:12:40 457 1

原创 【UI LVGL8】lv style

1、lvgl的style分为公共的各控件本地的两种。is_local:标注是不是本地的style.

2023-04-01 20:28:56 364

原创 【SE FDKJ】嵌入式软件设计与模块化编程通用规范

本文介绍了嵌入式开发中的模块化编程规范,重点阐述了模块与类的区别、驱动编写方法、移植规范以及编码约定。模块需具备独立输入输出接口,类则无需输入适配文件。详细说明了驱动、文件系统、操作系统等各类模块的移植方法,包括端口文件、驱动实现和API接口的命名规范。同时提供了工程模块划分方案和打印管理方法,并制定了严格的编码标准,包括编辑器设置、命名规则、代码风格和注释要求,强调防御式编程和模块化设计思想,以提高代码可移植性和可维护性。

2022-05-07 16:57:22 1847

原创 【SE FDKJ】嵌入式互拆锁的创建

本文总结了互拆锁的创建位置对系统运行的影响。互拆锁的作用是防止共享接口重入,创建时需进行非空判断。文章分析了四种创建方式:1)任务前创建需判断系统状态;2)任务中创建可能导致锁操作次数不匹配;3)调度器启动前创建最为理想;4)通过start_task任务初始化。方式3结构清晰,方式4本质与方式3相同但多一个任务。建议优先选择调度器启动前创建的方式,避免任务运行顺序带来的问题。

2022-03-24 10:10:01 406

原创 【UI LVGL7】tileview控件

控件特点以page为基础扩展的控件,增加了释放后会有动画定格效果。lv_tileview_set_tile_act(tileview, ext->act_id.x + x_move, ext->act_id.y + y_move, true);//切入时开启动画效果。static void drag_end_handler(lv_obj_t * tileview){ lv_tileview_ext_t * ext = lv_obj_get_ext_attr(tilevie

2022-03-17 15:37:48 2259

原创 【UI LVGL7】image控件

图片旋转与缩放截图

2022-03-16 21:34:59 4262

原创 【UI LVGL7】obj对象

对象创建1、lv中所有的对象都以obj为基础进行扩展的。创建对象时父对象是空,则在显示器屏链表增加一个节点,父对象非空则在其子链表增加一个节点。创建完成会通过parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj)通知父对象。lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy){ lv_obj_t * new_obj = NULL; /*C

2022-03-15 18:48:28 2213

原创 【UI LVGL7】style

style的接口1、接口名通过宏定义来申请名(这里只是申明),每一种type都会有三个接口。get_style//获取某种style_type的风格。优先返回local值。set_style//设置某种style_type的风格会修改静态style的内容,从而也会改变其它引用了些静态style的控件。set_style_local//设置某种style_type的风格只作用于当前对象。#define _LV_OBJ_STYLE_SET_GET_DECLARE(prop_name, fu

2022-03-15 15:38:58 1156

原创 【UI LVGL7】label控件

1、label的对齐方式 lv_obj_set_width(label, LV_HOR_RES_MAX);// lv_obj_align(label, parent, LV_ALIGN_IN_TOP_MID, 0, 95 + (j*157));//文本控件的对齐方式 lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK); lv_label_set_align(label, LV_LABEL_AL...

2022-03-12 20:28:03 3879

原创 【UI LVGL7】输入设备LV_INDEV_TYPE_POINTER类型

LV_INDEV_TYPE_POINTER类型调用过程:void _lv_indev_read_task(lv_task_t * task)//定进运行的输入任务。static void indev_pointer_proc(lv_indev_t * i, lv_indev_data_t * data)//static void indev_proc_press(lv_indev_proc_t * proc)//按下的处理static void indev_proc_...

2022-03-10 22:15:39 1430

原创 【UI LVGL】page控件

page的子对象1、控件创建时会发送信号给它的父对象:lv_obj_t * lv_obj_create(lv_obj_t * parent, const lv_obj_t * copy){…… /*Send a signal to the parent to notify it about the new child*/ if(parent != NULL) { parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG...

2022-03-10 17:06:08 1556

原创 【SE FDKJ】ARM M4核fault异常原因

ARM M4核fault异常原因

2022-02-26 18:34:12 442

BES2700-0000000000000000000000

BES2700-0000000000000000000000

2023-11-23

BES2800BP-00000000000000000000000000

BES2800BP-00000000000000000000000000

2023-11-23

嵌入式操作系统LiteOS

嵌入式操作系统LiteOS

2022-04-24

安富莱_STM32-V7开发板资料

安富莱_STM32-V7开发板资料

2022-04-24

APOLLO MCU SDK

SDK

2022-03-05

空空如也

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

TA关注的人

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