自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2025-08-28 19:27:31 624

原创 【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 647

原创 【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 959

原创 【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 378

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

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

2025-09-26 18:26:04 611

原创 【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 1005

原创 【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 526

原创 【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 1100

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

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

2025-09-01 11:41:16 930

原创 【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 609

原创 【UI】动效曲线调试

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

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

原创 【UI LVGL8】lv style

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

2023-04-01 20:28:56 344

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

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

2022-05-07 16:57:22 1777

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

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

2022-03-24 10:10:01 395

原创 【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 2208

原创 【UI LVGL7】image控件

图片旋转与缩放截图

2022-03-16 21:34:59 4176

原创 【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 2161

原创 【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 1121

原创 【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 3728

原创 【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 1386

原创 【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 1515

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

ARM M4核fault异常原因

2022-02-26 18:34:12 428

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关注的人

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