自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 openvela LeakSanitizer (LSan) 使用指南

LeakSanitizer (LSan) 是一款高效的堆内存泄漏检测工具。它作为运行时工具,能够在程序退出时自动检测并报告未释放的内存,帮助开发者定位和修复内存泄漏问题。LSan 可以与(ASan) 或(MSan) 协同工作,也可以独立运行。注意在 openvela 环境中,LSan 目前仅支持在上使用。

2025-12-23 15:15:32 578

原创 openvela 使用 _FORTIFY_SOURCE 增强 C 语言内存安全性

在 C 语言程序开发中,不安全的函数调用(例如memcpymemset)是导致缓冲区溢出的常见原因,这可能引发程序崩溃或安全漏洞。是一项编译器特性,它通过在编译时替换标准库中不安全的函数,为您的应用程序增加一层额外的边界检查。此功能帮助您在开发和运行阶段快速定位并修复由库函数调用引起的内存越界问题。其主要优势在于开销极低,适合在生产环境中持续开启。

2025-12-23 15:14:56 836

原创 openvela 使用 AddressSanitizer 调试内存错误

AddressSanitizer (ASan) 是的一部分,它通过在编译时对代码进行插桩 (Instrumentation) 并在运行时链接一个专用的库来工作。这种机制使其能够以中等的性能开销高效地捕获多种内存错误。越界访问 (Out-of-Bounds Access):对堆、栈及全局变量的访问超出了其合法边界。释放后使用 (Use-after-Free):访问了已经被 free() 或 delete 回收的内存。返回后使用 (Use-after-Return):访问了函数返回后其栈帧上的局部变量。

2025-12-23 15:14:14 966

原创 开源共建,万物智联:2025 小米人车家全生态大会 openvela 峰会全纪实

在合作伙伴大会上,恒玄科技市场部 VP 陈奕镇发表了题为AI硬件开发新范式—恒玄openvela解决方案的主题演讲。他深入剖析了在万物智联的 AI 时代,如何通过软硬协同,重塑智能硬件的开发与体验。VELA 同行,OPEN 未来。恒玄科技已与 Vela 保持长期并肩同行。在此期间,双方将恒玄高性能可扩展的硬件平台与 Vela 高效统一的软件生态深度融合,在“人车家全生态”的各个场景中进行了广泛的实践与探索。这种硬实力与软生态的强强联合,显著提升了终端产品的开发效率,更为用户带来了流畅的使用体验。

2025-12-22 11:41:19 891

原创 政企协同共筑 openvela 开源新生态 — openvela 城市沙龙无锡站圆满举办

未来将以本次沙龙为契机,深化与 openvela 生态的协同联动,推动开源技术在更多应用场景实现规模化落地,并提出与小米及生态伙伴共建联合实验室、联合高校打造人才闭环、为合作伙伴提供全链条服务三大合作方向,期待 openvela 在无锡扎根结果,成为物联网领域中国技术新名片。他指出,新吴区作为无锡物联网产业发展的核心承载区,始终高度重视开源技术创新与生态构建,后续将持续优化产业政策环境,吸引更多人才、技术、项目集聚,助力更多开源项目落地生根,推动 AIoT 产业高质量发展。“工欲善其事,必先利其器”。

2025-12-18 14:23:12 724

原创 openvela Allsyms 符号表功能使用指南

本文档指导您如何在 openvela 系统中启用并使用功能。通过启用此功能,您可以将完整的符号表编译到固件镜像中,从而在设备运行时将函数地址直接解析为可读的函数名,提升在线调试(例如分析崩溃栈)的效率。

2025-11-25 10:48:04 562

原创 openvela Backtrace 使用指南

通常情况下,借助调试工具(如 JLink),可以通过 gdb 和断点(breakpoint,简称 bp)的方式实现这些功能。但在设备封包发布和外围调试功能关闭之后,这些功能在真实设备上往往无法使用。为了解决这一问题,openvela 支持在运行环境中查看特定线程的栈信息。

2025-11-25 10:46:39 884

原创 openvela 使用 VSCode 调试 SIM 环境

本指南详细阐述了如何在 Visual Studio Code (VSCode) 中配置和使用 GDB,以实现对sim 仿真环境的图形化调试。通过 VSCode,您可以获得现代化的调试体验,包括设置断点、查看调用栈、监视变量和内存,从而显著提升开发与排错效率。

2025-11-20 16:23:39 979

原创 openvela GDB 调试指南

本指南旨在为开发者提供一份全面而实用的 GNU Debugger (GDB) 操作手册。无论您是初学者还是希望深化嵌入式调试技能的开发者,都能从中获益。

2025-11-20 10:14:18 814

原创 openvela 手环 Bandx

该应用是一款智能手环演示,包括手表表盘、启动器、音乐、心率、秒表、睡眠、运动、设置、手电筒,分辨率为 194*368。可以在 apps/packages/demos/bandx/ 目录中了解有关 bandx 的更多详细信息。本文介绍如何在模拟器上运行该示例。

2025-11-18 14:55:53 474

原创 openvela 音乐播放器

修改 apps/packages/demos/music_player/res 下面的相关配置,在 res/musics 目录下增加新的音乐媒体文件,格式目前只支持 *.wav,可以自行将 *.mp3/aac/m4a 等格式的媒体文件转换为 *.wav 格式。参数参数说明path待播放媒体的文件路径name媒体名artist艺术家名cover封面路径,如果没有提供封面,会展示封面。total_time该媒体的总播放时长,单位为 毫秒。color主题色,目前还没有使用。

2025-11-18 11:09:27 281

原创 openvela 自行车码表

X-TRACK Demo 移植自开源项目它是一个自行车码表,拥有时速显示、路程统计和实时轨迹显示等功能,显示分辨率为 240x320,使用触摸屏交互。代码目录位于:apps/packages/demos/x_track本文介绍如何在模拟器上运行该示例。

2025-11-12 14:35:45 579

原创 openvela 开发 UI 应用

本文介绍如何在 openvela 中编写一个简单的音乐播放器。修改 apps/packages/demos/music_player/res 下面的相关配置,在 res/musics 目录下增加新的音乐媒体文件,格式目前只支持 *.wav,可以自行将 *.mp3/aac/m4a 等格式的媒体文件转换为 *.wav 格式。参数参数说明path待播放媒体的文件路径name媒体名artist艺术家名cover封面路径,如果没有提供封面,会展示封面。total_time。

2025-11-12 14:34:15 936

原创 openvela 亲戚计算器

您可以通过修改 demos/relation_calculator/relation_cal.c 文件来扩展计算器功能,增加新的关系。此计算器采用状态转移模型来确定最终关系。要增加一个新关系,您需要定义其转换逻辑和对应的名称。在 transitions 数组中,添加一个新的条目来定义关系如何组合。每个条目遵循 relation_transformation_t 结构体格式。例如,[我][爸爸] = [爸爸],这一逻辑被定义为:{ME, FATHER, FATHER}。// 定义关系转换的逻辑。

2025-11-11 15:01:09 611

原创 openvela 打地鼠

本文档详细介绍如何在 openvela 系统上为 QEMU 模拟器和 ESP32-S3-BOX 开发板构建、部署和运行 Whack-a-Mole(打地鼠)演示应用程序。您将学习如何配置项目、编译固件、运行应用,并对游戏功能进行自定义修改。

2025-11-11 14:42:28 692

原创 openvela Hello World

openvela 基于开源操作系统 NuttX 构建,进一步提供多种系统级服务。为了使 openvela 更加完善和功能全面,需要引入完整的开发框架或功能模块。

2025-11-07 14:23:57 597

原创 openvela 时钟框架概述

对父时钟频率 (fp) 进行四舍五入,得到最接近的父时钟频率 (fpbest)。框架提供 clk_register 接口,用于注册时钟控制节点。功能:根据 reg 对应的位选择父时钟频率,通过分数除法计算输出频率。功能:根据 reg 对应的位选择父时钟频率,并进行相位调节。功能:根据 reg 对应位的值对父时钟频率进行分频。功能:根据 reg 对应的位选择父时钟频率输出。

2025-11-06 11:21:57 704

原创 openvela up_cpu_wfi 实现指南

函数 up_cpu_wfi() 是平台进入低功耗状态的核心,它由示例代码中的 up_pm_idle_handler 调用。该函数的实现与 CPU 架构紧密相关。本章节提供主流架构 (Cortex-M 和 RISC-V) 的参考实现和关键技术点的解析。

2025-11-06 11:19:38 473

原创 openvela 使用 pm_idle 标准化 Idle 线程的功耗管理

本文档为嵌入式系统开发者提供在 openvela 实时操作系统中,使用 pm_idle 接口实现标准化空闲 (Idle) 线程功耗管理的方法。openvela 提供 pm_idle 接口,旨在为(Uniprocessor, UP) 和(Symmetric Multiprocessing, SMP) 架构提供统一、标准的 Idle 线程处理流程。该接口封装了复杂的电源状态决策和多核同步逻辑,可显著简化特定于平台的 (Platform-specific) up_idle 函数实现,降低开发风险。

2025-11-06 11:18:05 965

原创 openvela 在 IDLE 线程中实现电源管理

本文档旨在介绍在 openvela 系统的 IDLE 线程中执行电源管理 (Power Management, PM) 操作的推荐方法。IDLE 线程是系统没有其他活动任务时执行的线程。因此,它是进入低功耗状态(如 Standby 或 Sleep)以节省能源的理想位置。为了确保电源状态切换的原子性和稳定性,该过程必须在禁止中断和调度器锁定的临界区内执行。

2025-11-06 11:15:42 732

原创 对话 NuttX 创始人Gregory Nutt——openvela 与 NuttX 的 “双向奔赴” 新范式

不是我们做出了某个厉害的设备,而是我们提供了一种协同范式——原来两个不同背景的团队,可以通过“标准化+开源+开发者赋能”,一起解决行业的共性问题。

2025-11-05 15:03:16 382

原创 openvela 技术揭秘(一):从单任务循环到多线程抢占

中断:是 CPU 响应系统中发生的某个异步事件时的一种机制。它会暂停当前正在执行的任务,保存工作状态,然后跳转去处理该事件。处理完成后,再精确地返回到刚才暂停的地方,恢复状态,继续执行。这个定义可能有些抽象,让我们用一个经典的例子来理解它:想象你正在专心阅读一本书(CPU 在执行主程序),这时门铃突然响了(一个硬件事件,如按键按下)。•暂停与标记:你不会立刻把书扔掉。你会记住你读到了第几页第几行,或者插上一枚书签(CPU保存上下文•处理事件。

2025-11-05 11:44:20 292

原创 openvela 电源管理 Procfs 调试指南

本文档指导开发者如何使用 openvela 系统中 Procfs (/proc 文件系统) 提供的电源管理 (PM) 接口。通过此接口,您可以实时监控每个电源域 (Power Domain) 的功耗状态分布,并诊断 Wakelock 的使用情况,是功耗优化与问题定位的强大工具。:系统必须在 Kconfig 中启用 Procfs (CONFIG_FS_PROCFS=y)。

2025-10-30 16:30:29 258

原创 openvela 电源管理 Wakelock 使用指南

本文档为 openvela 开发者详细介绍电源管理 (PM) 中的 Wakelock 机制。与在驱动层使用 prepare 回调的被动方式不同,Wakelock 允许应用层或中间件在预知系统需要保持活动状态时,请求系统维持在指定的功耗水平,从而避免不必要的休眠。: 在开始之前,我们强烈建议您首先阅读,以充分理解 PM 框架的核心概念。

2025-10-30 14:37:13 923

原创 openvela 电源管理驱动开发指南

在驱动文件中,定义一个包含 pm_callback_s 和其他 PM 相关状态的结构体。/* 专用于 PM 的结构体,包含回调和驱动内部状态 */.pm_cb.notify = up_pm_notify, /* 关联 notify 实现 */.pm_cb.prepare = up_pm_prepare, /* 关联 prepare 实现 */#endif。

2025-10-29 14:49:22 796

原创 openvela 电源管理框架指南

本文档详细介绍了 openvela 电源管理 (Power Management, PM) 框架的核心概念、API 使用方法以及可用的电源管理策略 (Governors)。:需要为特定硬件平台开发或适配电源管理功能的嵌入式系统开发者。

2025-10-29 11:18:25 735

原创 openvela 安全配置

本文介绍如何通过 Kconfig 配置,在设备或模拟器上搭建 TEE(Trusted Execution Environment)和安全服务框架。

2025-10-27 17:17:19 806

原创 openvela nxcodec 用户指南

nxcodec 是一个命令行测试工具,用于验证 V4L2 (Video4Linux2) M2M (Memory-to-Memory) Codec 驱动的功能。它支持对视频流进行编码 (Encode) 和解码 (Decode) 操作。

2025-10-27 10:55:32 571

原创 openvela FFmpeg V4L2 M2M 使用指南

本文档为开发者提供在 openvela 平台上为 FFmpeg 启用 V4L2 M2M (Video4Linux2 Memory-to-Memory) 硬件加速功能的详细指南。V4L2 M2M 是一个标准的 Linux 内核框架,专用于无显示硬件的内存到内存视频处理设备,例如视频编解码器。通过将 FFmpeg 与支持 V4L2 M2M 的硬件驱动相结合,系统可以将 H.264 等视频编解码任务从 CPU 卸载到专用的硬件单元,从而显著提升处理效率和系统性能。

2025-10-27 10:52:10 1101

原创 openvela V4L2 M2M Codec 驱动开发指南

如果硬件要求使用特殊的内存(如物理连续、特定地址范围等),驱动需要适配 alloc_buf 和 free_buf 回调。实现接口: 在 codec_ops_s 中提供 alloc_buf 和 free_buf 的具体实现,内部调用芯片平台专用的内存分配器。数据流: 缓冲区交互流程与默认模式完全相同,驱动依然通过 get_buf/put_buf API 与框架交互,实现了零拷贝。

2025-10-27 10:50:28 873

原创 openvela 首届全球开发者大会圆满落幕,NuttX 创始人 Greg 亲临现场,共话 AIoT 生态

联合课程将二者优势整合,既能帮助开发者避免 “从零开发 RTOS” 的重复劳动,又能让他们系统掌握 “NuttX 内核 + openvela 生态” 的协同应用能力,为全球开发者提供阶梯式学习路径。从此次大会披露的数据看,openvela 在性能、安全、兼容性等核心指标上已达到国际一流水平;同时,其“三平台同步开源”、“多元学习路径支持”、“开发者激励计划”等举措,精准触达了全球开发者的实际需求。

2025-10-24 10:14:26 310

原创 openvela V4L2 M2M 框架介绍

openvela 的框架借鉴了 Linux 内核的框架,并重点实现了其模型。在 Linux 中,v4l2m2m 是一个标准模块,专用于处理需要内存作为输入和输出的硬件,如视频编解码器(Codec)。通过在 openvela 中引入 v4l2m2m 接口,我们成功统一了,为提供了标准的编解码驱动接入层。这使得第三方硬件可以便捷地集成到 openvela 生态中,显著降低了开发和适配成本。

2025-10-17 10:56:19 612

原创 openvela Camera 功能测试指南

本文档详细介绍如何在 openvela 实时操作系统中测试 Camera 功能。您可以使用 nxcamera 应用程序,配合物理摄像头或虚拟摄像头,完成从环境配置到功能验证的全过程。

2025-10-17 10:39:18 858

原创 openvela Camera 驱动框架指南

/ 平台数据接口层操作函数集// 设备初始化和反初始化// 设置buffer地址,用于驱动将采集的数据填充到指定buffer中// 设置驱动的分辨率,pix_fmt 以及 帧率参数// 开启取流,设置complete 回调函数// 停止取流// 可选,driver自定义buffer,某些driver需要使用特定类型的buffer(比如:uncached)可以通过该接口 自定义// 定义sensor相关的operation接口。

2025-10-17 10:36:09 881

原创 openvela openüelaAudio Driver 测试

nxrecorder 是一个命令行测试程序,用于测试 openvela audio driver 的录音功能。它支持录制 PCM 文件和压缩格式文件,代码位于 apps/system/nxrecorder 目录。nxlooper 是一个命令行音频回环测试程序,用于测试音频设备的回环功能。代码位于 apps/system/nxlooper 目录。CMocka 是一个轻量级的 C 语言单元测试框架,提供了一组 API 和工具,用于编写和运行 C 语言单元测试。简单易用:API 简单直观,便于快速编写测试用例。

2025-10-16 17:09:59 377

原创 openvela Audio Driver 适配

定义一个驱动的私有数据结构,该结构体必须将 struct audio_lowerhalf_s 作为其第一个成员。/* 使用您的设备名替换 xx_audio_dev *//* 此结构体必须作为第一个成员,以支持类型转换 *//* 在此添加驱动所需的私有变量 */// 例如: 硬件寄存器基地址、工作线程 ID、状态标志等// ...定义一个静态常量 audio_ops_s 结构体,并填充您将要实现的函数指针。/* 使用您的设备名替换 xx_audio_dev */#endif#endif。

2025-10-16 17:03:20 404

原创 openvela Audio Driver 原理

本章内容总结如下:音频驱动程序的注册方法:介绍了 openvela 中注册音频驱动程序的两种方法,包括 audio_register 和其衍生的 audio_comp_initialize 函数,后者支持组合多个音频下半部分驱动。函数调用流程:描述了从应用程序(如 nxplayer)到音频下半部分驱动的完整调用路径,即 apps (nxplayer) -> vfs -> audio upperhalf driver -> audio lowerhalf driver。

2025-10-16 16:31:56 767

原创 openvela Audio Driver 配置

默认情况下,缓冲区大小通过 uint16_t 定义,最大支持 32K 样本。启用此选项后,缓冲区大小通过 uint32_t 定义,最大支持 65K 样本。功能:支持大于 65K 样本的缓冲区。用户可根据实际需求参考配置。

2025-10-16 15:22:03 387

原创 openvela Mediatool 使用指南

Mediatool 是一款测试程序,用于验证 Media Framework API 的功能,可基于模拟的实际使用场景测试媒体框架。

2025-10-15 15:02:42 648

原创 openvela 客户端

Client 端封装了各个模块的同步接口和异步接口。此外,Client 端也支持同步RPC和异步RPC的接口,用于和Server通信。

2025-10-15 12:09:46 872

空空如也

空空如也

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

TA关注的人

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