自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 参与openvela社区开发:技术提升 + 硬件福利的双向奔赴指南

本文介绍了如何在openvela开源社区进行合规贡献并赢取硬件福利。主要内容包括:1)了解openvela社区遵循Apache License 2.0许可;2)贡献前需签署CLA协议并遵循dev分支策略;3)详细贡献流程指导,从发现问题到代码合入;4)通过参与社区贡献并留言润芯微官方博客,有机会获得开发板福利。文章为开发者提供了从技术贡献到奖励获取的完整指南。

2025-07-24 09:56:17 2462

原创 openvela之打地鼠(Whackmole)应用示例

本文详细介绍了在openvela系统上运行和定制打地鼠游戏Demo的完整流程。主要内容包括:1)游戏运行效果预览;2)从项目配置、编译到部署运行的详细步骤,支持QEMU模拟器和ESP32-S3-BOX开发板两种平台;3)游戏定制指南,涵盖资源图片修改和游戏难度调整方法。通过修改资源图片和调整定时器周期,开发者可以轻松实现游戏个性化定制。文章提供了具体命令和代码示例,适合嵌入式开发爱好者快速上手体验和二次开发。

2025-08-19 10:19:03 1131

原创 解决 Ubuntu 中运行 openvela 模拟器失败的问题

本文介绍了解决Ubuntu系统中openvela模拟器因Qt平台插件问题导致启动失败的方案。首先通过安装xcb依赖库(sudo apt install libxcb-*)解决依赖缺失;其次设置正确的Qt插件环境变量路径;然后安装Qt核心组件确保环境完整;若问题仍存在可重装Qt平台插件。最后提供了测试Qt环境是否正常的小程序。通过这五个步骤可系统排查并解决"no Qt platform plugin could be initialized"错误,确保模拟器顺利运行。

2025-08-15 10:54:05 529

原创 openvela之亲戚计算器(relation_calculator)

亲戚计算器是基于openvela系统开发的亲属关系计算应用,通过menuconfig工具配置后在QEMU模拟器或ESP32-S3-BOX开发板上运行。应用采用状态转移机制,通过修改relation_cal.c文件可扩展亲属关系:在transitions数组中添加新条目定义关系逻辑,在relation_type_e枚举和relation_names数组中添加对应类型和名称。该应用通过预定义的转换表实现状态变更,当前需要完善关系图谱构建,欢迎开发者贡献优化方案。构建步骤包括配置、清理、构建和部署运行,支持自定义

2025-08-14 16:59:25 648

原创 openvela之高级计算器(calculator)应用示例

本文介绍了一款基于openvela开发的高级计算器,支持基础四则运算和高级数学函数(如平方根、三角函数等),采用逆波兰表示法解析表达式,通过LVGL库实现动态界面。文章详细解析了其Token优先级处理、表达式解析算法和输入保护机制,并提供了完整的配置编译指南和使用说明。该计算器既可作为实用工具,也展示了嵌入式系统开发的典型实现方法,特别适合作为嵌入式开发的学习案例。

2025-08-13 09:30:30 1106

原创 openvela多媒体播放流程详解

本文深入解析了openvela多媒体框架的播放流程实现机制。整个流程分为三个关键阶段:1)mediad启动阶段通过media_graph_load函数完成滤镜图初始化和配置解析,构建基础处理框架;2)Work Thread创建阶段通过movie_async_thread函数建立异步处理线程,采用优先级驱动模式处理命令和数据;3)Prepare阶段根据媒体源类型(buffer或url模式)进行内容准备和播放初始化。这些核心模块协同工作,实现了从系统启动到播放准备的全流程处理,展现了多媒体播放系统的底层技术架构

2025-08-12 09:37:35 1955

原创 openvela之模拟器控制台操作

摘要:模拟器控制台命令是移动应用开发和测试的重要工具,能灵活控制虚拟设备环境。本文介绍了控制台连接方法(通过telnet和端口5554-5585)及身份验证流程(使用.emulator_console_auth_token文件)。详细讲解了六类核心命令:常规设备管理(avd、kill等)、端口重定向(redir)、GPS模拟(geo)、硬件事件模拟(event)、电源管理(power)和传感器控制(sensor)。这些命令可满足各种测试需求,如模拟设备旋转、GPS定位、电池状态和传感器数据等,帮助开发者高效

2025-08-11 10:54:36 1029

原创 openvela 环境下 media_tools 音乐播放 demo 业务流程解析(基于日志)

本文基于openvela开发环境,详细解析了media_tools工具的音乐播放业务流程。通过分析操作日志,梳理了从模拟器启动到音乐播放的完整链路:首先启动模拟器并加载媒体组件,然后通过mediatool命令进入交互模式。核心流程包括:1)创建播放器实例并注册媒体会话;2)准备音频文件,解析流信息并初始化解码器;3)配置音频输出设备参数,建立数据链路实现播放;4)停止播放并释放资源。日志详细记录了音频数据从文件读取到硬件输出的全过程,包括采样率(44100Hz)、声道数等关键参数配置,为音频问题调试提供了重

2025-08-10 15:41:54 936

原创 openvela音频PCM播放与录制功能代码解析

本文深入解析了PCM音频处理的核心技术,基于openvela项目实现,适合嵌入式/Linux平台开发。主要内容包括:1) PCM音频基础概念,如帧大小计算和WAV格式转换;2) 详细代码实现,展示PCM转WAV的过程;3) 音频播放与录制的核心流程;4) 性能优化策略如环形缓冲和DMA技术;5) 开发注意事项如字节序处理。文章为开发者提供了从理论到实践的完整指导,特别适用于语音识别、录音设备等嵌入式音频应用开发。

2025-08-10 15:41:10 1015

原创 openvela之STM32开发板部署

摘要: 本文详细介绍了在Ubuntu系统上搭建STM32F746G-DISCO开发环境的完整流程,包括:安装ARM交叉编译工具链(gcc-arm-none-eabi)和Java运行环境;配置STM32CubeProgrammer烧录工具并设置环境变量;安装libusb库和ST-Link驱动规则;最后通过编译openvela项目生成可执行文件,并指导使用STM32CubeProgrammer进行程序烧录验证。该指南为开发者提供了从环境配置到实际应用的全流程解决方案。

2025-08-09 19:24:57 1363

原创 openvela之ADB

ADB(Android Debug Bridge)是一款用于连接开发工作站与Android设备的命令行工具,支持命令执行、文件传输和调试等功能。它采用客户端-服务器架构,包含客户端、服务器和设备端的adbd守护程序。通过5037端口进行通信,支持多设备管理(使用-s参数指定设备)。核心功能包括端口转发、文件传输(pull/push)以及Shell命令执行(单条或交互式)。常用命令如adb devices查看设备列表,adb shell进入交互终端。掌握ADB能显著提升开发效率,更多命令可通过adb --he

2025-08-09 19:24:22 1018

原创 openvela之RPMsg

本文解析了异构多核系统中RPMsg框架与RPMsg Clock的技术原理。RPMsg作为轻量级核间通信框架,通过分层设计(服务层/传输层/内核接口)实现不同处理器核心间的数据交换。基于RPMsg构建的RPMsg Clock服务则实现了跨核时钟资源管理,客户端通过标准化接口访问服务端时钟资源,核心流程包括请求封装、消息交互和结果返回。两者协同为异构系统提供了高效的资源共享方案,其设计模式可扩展至其他跨核服务场景。该技术方案有效解决了异构多核系统中的资源协同难题。

2025-08-08 10:33:57 844

原创 openvela之VirtIO

VirtIO作为半虚拟化技术标准,在openvela操作系统中通过OpenAMP实现跨系统通信。其核心机制包括特性协商和基于Vring/Virtqueue的无锁数据传输模型。Virtqueue由Descriptor Table、Available Ring和Used Ring组成,支持零拷贝和高效核间通信。openvela采用三层架构(驱动层、框架层、传输层)实现VirtIO设备抽象,通过严格划分访问权限确保无锁高效交互。本文详细解析了VirtIO的核心数据结构和传输流程,为理解其工作原理提供了系统视角。

2025-08-08 10:32:38 1164

原创 openvela之工作队列

openvela操作系统中的工作队列是实现任务异步调度与延迟执行的核心机制,分为高优先级内核队列(HP)、低优先级内核队列(LP)和用户模式队列三类。HP队列适用于中断后续处理等紧急任务,LP队列处理后台任务,用户队列则服务于用户态程序。本文详细介绍了工作队列的原理、分类特性、核心API及使用方法,包括基础任务调度和周期性任务调度,并通过示例代码演示了如何在实际场景中应用。工作队列通过"生产者-消费者"模式实现任务串行化或并行化处理,有效提升系统响应性和资源利用率。

2025-08-07 09:43:21 1387

原创 openvela之消息队列

本文系统解析了openvela操作系统中消息队列的设计原理与实现机制。作为任务间通信的核心组件,openvela消息队列遵循POSIX标准,支持命名队列、优先级消息、多模式操作等特性。文章详细介绍了消息队列的生命周期管理API(mq_open/close/unlink)、数据传输接口(mq_send/receive)以及属性配置方法(mq_getattr/setattr/notify)。在实现层面,openvela通过虚拟文件系统框架将队列抽象为inode节点,采用预分配内存池和优先级排序的消息链表来保证实

2025-08-07 09:42:43 951

原创 openvela之Pipe

本文详细介绍了进程间通信(IPC)中的三种管道机制:匿名管道、popen/pclose调用和命名管道(FIFO)。匿名管道适用于有亲缘关系的进程通信,popen/pclose简化了与外部进程的交互,而命名管道则突破了进程亲缘限制,支持任意进程间通信。文章通过具体代码示例展示了每种管道的实现方法,并强调了关键注意事项,如阻塞行为、缓冲区配置和同步问题。这些管道机制在openvela系统中发挥着重要作用,为多任务协作提供了高效可靠的数据传输通道。

2025-08-06 09:28:39 961

原创 openvela之ARM Cortex-M 系列中断嵌套

本文深入探讨了openvela系统中ARM Cortex-M架构的中断嵌套实现,重点分析了两种中断嵌套模式:零延迟高优先级中断嵌套和可屏蔽中断嵌套。前者通过精细的栈管理和优先级配置实现即时响应,后者基于BASEPRI寄存器实现动态中断屏蔽。文章详细阐述了中断优先级排布、栈管理方式及关键限制,并提供了新平台移植的注意事项,包括核心配置选项、系统初始化流程、中断优先级配置策略等。针对不同ARM Cortex-M版本和特殊需求(如SMP支持)给出了具体实现建议,为嵌入式实时系统开发者提供了全面的技术参考。

2025-08-06 09:27:45 1231

原创 openvela之原子操作接口

摘要:本文详细介绍了openvela系统中的原子操作机制,包括其实现原理、接口设计和内部机制。原子操作通过硬件指令或软件模拟(自旋锁+中断屏蔽)确保并发安全,支持整型、位操作等多种原子类型。系统提供初始化、读写、增减、比较交换等核心接口,并通过arch_atomic.c实现跨平台兼容。文中还给出了原子计数器的使用示例,展示如何通过原子操作构建可靠并发系统。

2025-08-05 09:32:18 386

原创 openvela之信号量机制

本文深入探讨了openvela多任务操作系统中的信号量机制。作为任务同步与互斥的核心工具,信号量相比简单锁机制更具优势,能够精准控制资源访问而不影响无关任务。文章详细分析了信号量解决优先级反转的两种策略:优先级保护和优先级继承,并区分了Locking和Signaling两种应用场景。同时介绍了关键API接口和底层实现原理,包括核心数据结构和工作流程。通过合理使用信号量,开发者可以构建高效可靠的实时系统。信号量的灵活性和高效性使其成为openvela系统的基石组件。

2025-08-05 09:31:37 871

原创 openvela之内存管理

本文深入解析了嵌入式操作系统openvela的内存管理模块设计。该模块位于nuttx/mm目录,支持小内存(64KB)和大内存(4GB)两种模型,适配不同硬件环境。核心功能包括:实现标准内存管理接口、多堆实例管理、高效颗粒分配器(用于DMA等固定块需求)以及内核/用户空间共享内存机制。通过分层设计,openvela可灵活应对从资源受限MCU到高性能系统的各种场景,在内存分配效率与资源利用率间取得平衡,为嵌入式开发提供可靠的内存管理解决方案。

2025-08-04 20:21:19 1216

原创 openvela之启动流程

通过对 openvela 系统启动流程的深入解析,开发者可以更好地掌握系统的启动机制,为后续的开发工作奠定坚实的基础。在实际开发过程中,建议结合具体的代码实现和配置选项,深入理解每个环节的作用和影响,以便更好地进行系统定制和优化。

2025-08-04 09:33:59 1612

原创 openvela之内核开发

摘要:openvela内核基于NuttX实时操作系统,具备实时性、兼容性和可扩展性三大核心优势,支持从8位到64位多种处理器架构。其模块化设计提供清晰目录结构,便于开发维护。内核支持多任务管理,采用优先级与时间片轮转调度策略,并提供了丰富的同步与通信机制(原子操作、自旋锁、消息队列等)。无论是SMP/AMP多处理器系统还是资源受限设备,openvela都能实现高效任务调度和稳定运行,成为嵌入式开发的理想选择。开发者可通过灵活运用其内核特性,构建高性能嵌入式应用。

2025-08-01 09:31:18 1134

原创 openvela之中断系统

摘要:openvela中断系统通过三种绑定方式实现硬件与软件的高效连接。直接绑定(irq_attach)适用于简单快速中断;线程绑定(irq_attach_thread)支持复杂逻辑处理;工作队列绑定(irq_attach_wqueue)实现资源复用。系统底层依赖硬件架构函数实现中断初始化、优先级设置等核心功能,开发者需根据芯片手册配置中断控制器特性。三种方式各具优势,开发者可基于实时性、内存消耗等需求灵活选择。

2025-07-31 09:51:28 1074

原创 openvela之Trace系统

Trace系统是用于跟踪系统活动的工具,能够捕获内核、用户程序的关键行为(如任务调度、中断处理、系统调用等),以微秒级精度记录事件。系统通过关键点插桩收集数据,支持多种事件类型和图形化分析。 配置方面,需开启CONFIG_SCHED_INSTRUMENTATION等核心选项,并选择跟踪事件类型(任务调度、中断处理等)。系统提供纳秒级时间精度,支持自定义Trace Buffer和多种数据分发渠道。 使用上,开发者可通过内核打点函数(如sched_note_start)和自定义API(如sched_note_p

2025-07-31 09:50:16 903

原创 openvela之时间系统

本文系统介绍了时间管理和时区设置的相关知识。主要内容包括:1)世界标准时间(UTC)和日历时间的概念;2)localtime的两种实现方式及其优缺点;3)时区设置方法,包括tzset函数和TZ环境变量格式;4)zoneinfo的制作与挂载流程;5)多核系统时区设置建议;6)常见时间类型和API接口;7)常用时间相关命令。文章特别强调了在嵌入式系统中时间管理的实现细节,包括时区设置、高精度时间获取以及多核环境下的时间同步问题,为系统开发提供了实用的时间管理解决方案。

2025-07-30 09:43:34 966

原创 openvela之编译系统

本文深入解析了openvela嵌入式开发框架的编译系统设计。该系统以Makefile为核心,采用模块化架构实现跨平台编译:1)通过Make.defs和.config文件管理硬件配置与功能裁剪;2)依赖mkdep工具自动分析代码关系,提升编译效率;3)采用"分散编译-集中打包"模式,各模块先编译为静态库(如libsched.a、libapps.a)再统一链接。关键流程包括context环境准备、静态库生成和最终二进制文件构建,其中sim架构通过中间文件nuttx.rel处理符号表。这种设计

2025-07-30 09:42:02 1032

原创 openvela之AIoT-IDE 全流程使用指南

本文详细介绍了AIoT-IDE工具在Xiaomi Vela生态中开发JS应用的全流程指南。内容涵盖:下载安装(包括macOS报错解决方案)、项目初始化、依赖管理、模拟器配置、运行调试及打包发布等关键步骤。特别针对签名文件生成、npm依赖安装等常见问题提供解决方案。通过AIoT-IDE的完整工具链支持,开发者可高效完成openvela应用的开发与发布工作,适用于Windows、macOS和Ubuntu系统环境。

2025-07-29 09:44:55 1688 1

原创 openvela之Kconfig配置

本文详细介绍了Kconfig配置系统在openvela开发中的应用。Kconfig作为Linux内核和类Linux系统的核心配置工具,通过定义配置选项、依赖关系和默认值,实现系统的灵活定制。文章解析了Kconfig的语法结构,包括布尔型、三态型、字符串型和整型等配置选项,以及depends on/select等依赖关系语法。同时详细说明了在openvela中使用menuconfig工具进行配置的方法,包括搜索、导航、修改和保存等操作流程,并提供了添加自定义配置选项的实例。最后阐述了Kconfig与.conf

2025-07-28 14:16:41 1511

原创 openvela之文件系统

OpenVela文件系统采用灵活的可扩展设计,核心特点包括:1)支持伪根文件系统(内存中动态生成);2)可挂载多种文件系统类型(EXFAT、ROMFS等);3)任务创建与文件描述符处理机制(不同创建方式采用不同fd处理策略)。关键数据结构为inode(组织文件树)和inode_ops_u(统一操作接口),其中inode通过i_peer和i_child形成树状结构,inode_ops_u包含文件操作(file_operations)、块设备操作(block_operations)和挂载点操作(mountpt_

2025-07-27 12:16:01 780

原创 openvela之安全配置

本文档详细介绍了在OpenVela平台下配置TEE(可信执行环境)和安全服务框架的方法。主要内容包括:1)核心模块与代码目录,涵盖TEE框架、跨核通信、CA/TA应用等模块及对应代码路径;2)TEE核配置,包含18项关键配置如跨核通信RPMSG、WAMR运行时环境、各类TA功能等;3)AP核配置,支持CA与TEE交互的6项配置;4)QEMU/SIM模拟平台的特殊配置,将TEE核功能整合为AP服务进程并调整通信方式。文档提供了完整的配置表格,标注必选项和功能描述,适用于实体设备和模拟平台的不同部署场景,确保T

2025-07-27 12:15:33 1007

原创 openvela之异步编程开发

本文深入探讨了openvela嵌入式系统中的三种异步编程机制:信号量同步、消息队列通信和工作队列延迟处理。信号量通过中断-信号量-线程模型实现高效同步;消息队列作为数据通道,采用生产者-消费者模式解耦任务;工作队列基于顶半部/底半部模型,将耗时操作从ISR中分离。文章通过实际代码示例展示了各机制的具体实现,并分析了其核心优势和使用注意事项,为嵌入式系统开发提供了高效的异步事件处理方案。

2025-07-26 09:47:08 905

原创 openvela之时钟框架

摘要:OpenVela嵌入式系统时钟框架采用分层设计,提供统一接口支持多种时钟控制功能。开发者需通过CONFIG_CLK配置启用核心功能,并实现南向适配层结构体clk_ops_s完成硬件对接。框架内置分频器、选通器等常用组件注册接口,简化时钟节点开发。统一的API接口支持频率设置、父时钟切换等核心操作,实现硬件无关的时钟管理,保障系统时序稳定性。

2025-07-26 09:46:01 876

原创 openvela之音频驱动测试工具指南

本文介绍了openvela提供的音频驱动测试工具链,包括播放(nxplayer)、录音(nxrecorder)、回环(nxlooper)测试工具及CMocka单元测试框架。重点讲解了各工具的核心命令、典型测试流程和参数配置方法,帮助开发者验证音频驱动的功能完整性和稳定性。这些工具支持PCM/MP3等多种格式,可满足播放、录音、实时回环等测试需求,并通过单元测试确保核心接口的正确性。

2025-07-25 09:30:27 1168 1

原创 openvela之音频驱动开发

本文介绍了openvela嵌入式音频驱动的分层架构设计及实现。该驱动采用上半部分(Upper Half Driver)与下半部分(Lower Half Driver)分层设计,实现硬件与软件解耦,提高代码复用性。上半部分提供标准化接口,下半部分专注硬件交互。驱动支持音频播放、录制等功能,提供nxplayer等调试工具。通过ioctl实现设备配置、状态控制等标准化交互,并支持DMA、I2S等多种硬件实现方式。文章详细解析了设备注册流程、核心代码结构及压缩音频处理能力,为开发者快速适配新硬件提供了参考方案。

2025-07-25 09:28:57 1047

原创 openvela之音频驱动配置指南

本文介绍了嵌入式系统中音频驱动的配置方法,基于openvela官方文档详细阐述了配置步骤、参数含义及典型场景示例。主要内容包括:1)如何进入音频驱动配置界面;2)核心配置项解析,涵盖基础功能开关、缓冲区设置和音频格式支持;3)模拟器和硬件平台的典型配置示例;4)注意事项,强调按需开启功能、匹配硬件资源等要点。文章为开发者提供了音频驱动配置的系统指导,帮助优化音频处理效率并确保设备正常工作。

2025-07-24 09:41:06 947

原创 openvela之Mediatool 使用指南

Mediatool是一款专业的媒体框架测试工具,主要用于验证Media Framework API功能。它支持模拟真实场景进行音频播放、录制等测试,并能进行播放控制、音量调节等操作。工具通过简单配置即可在Sim模拟环境中运行,提供URL和Buffer两种测试模式,并支持调试指令输出详细日志。Mediatool可有效帮助开发者完成从功能验证到问题排查的全流程测试工作,提升媒体框架的开发效率和质量保证。

2025-07-24 09:39:12 844

原创 openvela之Media系统

本文深入解析了Media音视频处理系统的架构与核心模块。Media Server作为系统核心,包含Media Daemon(事件循环管理)、Media Focus(音频焦点调度)、Media Graph(音视频链路构建)等关键模块,负责音视频处理与资源调度。Media Client则提供同步/异步接口,通过RPC与服务端通信,实现用户交互。系统采用协同工作机制,如播放音乐时客户端发送指令,服务端构建链路并管理音频焦点,确保流畅体验。该架构清晰划分功能模块,通过高效的通信机制实现灵活的音视频处理,为开发者提供

2025-07-23 09:29:15 1162

原创 openvela之VSync

本文介绍了VSync(垂直同步)技术如何解决画面撕裂问题。VSync通过协调渲染器与屏幕刷新时序,确保只有在一帧完整显示后才会开始绘制下一帧。双缓冲技术是VSync的关键实现方式,它允许渲染和显示并行工作,避免卡顿。文章还分析了Video屏与Command屏的差异,以及VSync在硬件层面的中断信号机制(TE中断和FrameDone中断)。最后,推荐使用非阻塞方式(基于libuv的poll机制)适配VSync,通过panbuf队列实现高效渲染。该技术可有效提升画面流畅度,适用于游戏、视频等多种场景。

2025-07-23 09:27:52 1168

原创 openvela之LCD驱动开发

openvela 的 LCD 驱动框架为低分辨率、通用接口屏幕提供了灵活解决方案:原生模式适合资源受限场景,直接操作硬件降低内存占用;Framebuffer 模式兼容上层图形库,简化开发。开发者需根据硬件资源(内存、接口类型)与功能需求选择模式,通过实现struct lcd_dev_s核心方法完成硬件适配,最终实现稳定高效的屏幕显示。

2025-07-22 09:33:06 1239

原创 openvela之Framebuffer 驱动开发

本文解析了嵌入式系统中Framebuffer驱动的核心原理与openvela实现方案。主要内容包括:1) Framebuffer作为显示缓存的工作原理,包括内存计算(如480×320屏幕需600KB/32位格式)和显示时序同步机制;2) openvela的双层架构设计,上层通过虚拟文件系统提供标准接口(/dev/fb0),下层需实现三个关键硬件接口(初始化、获取操作表、释放资源);3) 重点分析了fb_vtable_s结构体定义的硬件操作接口,如视频信息获取、颜色映射等。文章为开发者提供了从理论到实践的完整

2025-07-22 09:31:18 1054

具体案例:研发手表crash日志

Vela-Backtrace 使用指南

2025-07-07

空空如也

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

TA关注的人

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