从零实践AUTOSAR CP:基于RH850搭建CAN通信开发环境
在汽车电子领域AUTOSARAUTomotive Open System ARchitecture早已不是陌生的词汇它代表了汽车软件开发的标准化未来。对于从事或即将进入汽车嵌入式软件开发的工程师而言理解AUTOSAR不仅是掌握一项技术更是理解一套完整的工程方法论。然而AUTOSAR标准文档庞大且抽象直接从规范入手往往令人望而生畏。本文旨在为初学者和有一定经验的开发者提供一个清晰的实践入口我们将聚焦于AUTOSAR Classic PlatformCP从零开始搭建一个基于RH850系列MCU的最小化AUTOSAR开发环境并实现一个基础的CAN通信示例。这个过程将串联起工具链配置、基础软件模块集成、通信栈初始化等核心环节让你不仅知道AUTOSAR“是什么”更能亲手实践“怎么做”并为后续排查复杂问题打下基础。1. 理解AUTOSAR CP的核心分层与工作流在动手搭建环境之前必须对AUTOSAR CP的基本架构和开发模式有一个宏观认识。这能帮助你在后续步骤中理解每一个操作的目的而不是机械地执行命令。1.1 AUTOSAR的分层架构从硬件抽象到应用AUTOSAR CP采用严格的分层架构目的是实现硬件与应用软件的完全解耦。自底向上主要分为四层微控制器抽象层MCAL这是最底层直接与微控制器如RH850的硬件外设如GPIO、ADC、CAN控制器、SPI打交道。MCAL由芯片厂商或第三方提供为上层提供统一的、硬件无关的API接口。例如无论CAN控制器的寄存器如何分布上层都通过统一的Can_Write函数发送数据。ECU抽象层ECU Abstraction Layer在MCAL之上它对多个MCAL模块进行组合和封装提供与ECU硬件布局相关的服务。例如它可能将一个具体的CAN控制器如CAN0抽象为一个逻辑CAN通道如CANIF_CHL_LS。服务层Services Layer这是AUTOSAR的“操作系统”和“公共服务”层提供系统服务如操作系统OS、诊断DCM、网络管理NM、存储NvM和通信服务如COM、PDU Router。你的应用软件SWC主要与这一层及RTE交互。运行时环境RTE这是连接应用软件组件SWC与底层基础软件BSW的桥梁。RTE根据配置自动生成代码实现SWC之间的通信端口和接口以及SWC对BSW服务的访问。开发者通常不直接编写RTE代码而是通过配置工具定义SWC的行为由工具生成RTE。开发者的主要工作集中在应用层Application Layer的SWC设计以及通过配置工具如Vector的DaVinci、ETAS的ISOLAR对基础软件层BSW进行“配置”而非“编码”。1.2 基于工具链的V模型开发流程AUTOSAR开发强烈依赖工具链遵循V模型左侧设计与配置在PC上的配置工具中进行系统设计定义ECU、SWC、通信矩阵、ECU配置配置BSW模块参数、生成RTE和代码生成。底部集成与编译将生成的配置代码、手写的应用代码、MCAL及BSW的库文件在特定的编译器如GreenHills、Tasking for RH850中进行链接生成可执行文件。右侧验证与测试将可执行文件刷写到目标ECURH850开发板或仿真环境中进行功能测试、集成测试。我们的实践将模拟一个简化的流程配置一个发送周期信号的SWC通过COM和CAN接口发送到总线上。2. 搭建RH850的AUTOSAR开发环境环境搭建是第一步也是最容易出错的一步。我们将明确每个组件的来源和作用。2.1 工具与软件组件清单你需要准备以下软件请注意版本兼容性本文以常见组合为例组件推荐/示例产品作用获取来源集成开发环境(IDE)与编译器GreenHills MULTI, Tasking for RH850代码编辑、编译、调试编译器厂商AUTOSAR配置工具Vector DaVinci Developer/Configurator ProSWC设计、BSW/RTE配置、代码生成VectorMCAL驱动包Renesas RTA-RH850 MCAL针对RH850芯片的AUTOSAR MCAL实现Renesas官网或代理商基础软件(BSW)库Vector MICROSAR, ETAS RTA-BSW, 或芯片厂商提供实现服务层、ECU抽象层模块的二进制库或源码工具链厂商或芯片厂商CAN总线工具Vector CANoe, PEAK-System PCAN-View监控、仿真、分析CAN总线数据相应厂商硬件开发板Renesas RH850系列评估板如CK-RH850运行和调试目标硬件Renesas或第三方注意不同工具链Vector, ETAS, EB等的配置界面和流程有差异但核心概念分层、配置参数、工作流相通。本文描述的概念和步骤具有通用性具体操作需参考你所使用工具的官方文档。2.2 安装与基础工程创建步骤安装编译器首先安装针对RH850的编译器如GreenHills并确保其许可证有效。这是生成机器码的基础。安装配置工具安装DaVinci Configurator Pro用于BSW配置和DaVinci Developer用于SWC设计。通常它们作为一个套件安装。导入MCAL和BSW包从Renesas获取对应你RH850具体型号的MCAL包通常是一个.arxml或.epc文件。在DaVinci Configurator Pro中通过“File - Import”将其导入。同时导入Vector提供的MICROSAR BSW包。创建新ECU工程在DaVinci Configurator Pro中创建新项目选择正确的AUTOSAR版本如4.3.1。在“ECU”视图中创建一个新的ECU节点命名为My_RH850_ECU。将导入的MCAL和BSW包分配给这个ECU。此时工具会加载所有可配置的BSW模块如Can, CanIf, Com, EcuM等。完成以上步骤后你的工程应该包含了一个ECU并且模块列表里出现了大量的AUTOSAR BSW模块。这是后续所有配置的起点。3. 配置CAN通信栈从驱动到应用接口我们的目标是让ECU周期性地通过CAN总线发送一帧数据。这需要配置一整条通信链路Can-CanIf-PduR-Com。我们以Vector工具链为例分步讲解。3.1 配置CAN控制器Can模块首先需要告诉系统硬件上CAN控制器的基本情况。在模块列表中找到Can模块打开其配置。进入CanController配置项。你需要创建一个或多个CAN控制器例如CanController_0对应芯片的CAN0外设。关键参数配置CanControllerBaudRate: 设置CAN总线波特率如500000500kbps。CanControllerPropSeg,CanControllerSeg1,CanControllerSeg2: 这些是位时序参数通常波特率设置正确后工具会根据芯片手册提供推荐值或自动计算。这是最容易导致通信失败的地方之一必须与总线上其他节点严格一致。CanControllerId 用于内部标识与CanIf配置关联。配置CanHardwareObject硬件对象即CAN邮箱。你需要定义至少一个TxHoh发送硬件对象和/或RxHoh接收硬件对象。对于发送设置其CanObjectType为FULL_CAN或BASIC_CAN并关联到一个CanControllerId。/* 示例在配置工具中设置的参数会生成如下结构的配置代码 */ const Can_ControllerConfigType CanControllerCfg[] { { .CanControllerId 0, // 控制器ID 0 .CanControllerBaudRate 500000, .CanControllerPropSeg 2, .CanControllerSeg1 7, .CanControllerSeg2 6, .CanControllerSyncJumpWidth 1, // ... 其他参数 } };3.2 配置CAN接口层CanIf模块CanIf是Can模块的上层提供统一的接口并管理多个CAN控制器。配置CanIf模块将上一步创建的CanController添加到CanIf的控制器列表中。配置CanIfTxPduCfg发送PDU配置。这里需要定义一个发送PDU例如CanIfTxPdu_MyMessage。CanIfTxPduId: PDU的唯一标识后续PduR会引用它。CanIfTxPduCanId: 设置CAN报文的ID标准帧或扩展帧例如0x100。CanIfTxPduDlc: 数据长度如8。CanIfTxPduDataLengthCode: 通常与DLC一致。关联到CanHardwareObject。3.3 配置PDU路由器PduR模块PduR负责在不同通信模块如COM, CAN TP, LIN TP之间路由PDU。对于简单的CAN收发它主要起通道作用。在PduR配置中找到PduRRoutingPaths。添加一个路由路径源为Com目标为CanIf。这意味着来自COM层的PDU将被路由到CAN接口层发送出去。需要配置源ID和目标ID的映射关系即Com发出的某个PDU ID对应到CanIf的哪个TxPduId。3.4 配置通信服务层Com模块Com模块提供信号和信号组的处理是最接近应用层的一环。定义信号Signal在Com配置的Signals下创建一个信号例如ComSignal_EngineSpeed。ComBitPosition: 信号在数据字节中的起始位。ComBitSize: 信号长度比特如16。ComSignalType: 数据类型如UINT16。ComSignalInitValue: 初始值。定义信号组Signal Group或PDU在Com配置的Pdus下创建一个IPDU交互层PDU例如ComIPdu_MyTxPdu。ComPduId: PDU标识与PduR中配置的源ID对应。ComPduLength: 长度与CAN DLC一致如8。ComPduType: 设置为TRANSMIT。ComPduSignalRef: 将前面定义的ComSignal_EngineSpeed信号添加到此PDU中并指定其在PDU数据域中的布局通过ComBitPosition和ComBitSize。配置发送模式在ComIPdu的属性中找到ComTxMode。创建一个周期发送模式例如ComTxModePeriodic。ComTxModeMode: 设置为PERIODIC。ComTxModePeriod: 设置发送周期单位通常为秒如0.01100ms。ComTxModeNumberOfRepetitions: 重复次数0表示无限重复。至此从应用信号到CAN总线帧的完整发送链路就配置好了ComSignal-ComIPdu-PduR-CanIfTxPdu-CanHoh-CanController。4. 创建应用软件组件并生成代码配置好BSW后需要创建应用软件组件SWC来产生或消费数据。4.1 在DaVinci Developer中设计SWC打开DaVinci Developer创建一个新的软件组件类型为AtomicSwComponentType命名为AppSwc_Sender。定义端口Port右键组件创建SenderReceiver端口命名为PPort_EngineData。为该端口创建接口Interface例如Iface_EngineData。在接口中定义数据元素Data Element例如deEngineSpeed类型为uint16。这对应了之前在Com中定义的信号。关联SWC与BSW回到DaVinci Configurator Pro在Com模块的配置中找到之前定义的ComSignal_EngineSpeed。将其ComSignalDataProvision属性设置为PROVIDED并映射到AppSwc_Sender组件的PPort_EngineData端口及deEngineSpeed数据元素。这一步建立了SWC端口与COM信号之间的绑定关系。4.2 生成RTE和BSW配置代码配置完成后最关键的一步是生成代码。生成RTE代码在DaVinci Configurator Pro中选择Rte模块执行生成操作。工具会根据SWC的端口和连接关系生成Rte_AppSwc_Sender.c/.h文件。这些文件提供了如Rte_Write_PPort_EngineData_deEngineSpeed()这样的API供你的应用代码调用。生成BSW配置代码对Can,CanIf,PduR,Com等所有配置过的模块分别执行“Generate Code”操作。这会生成每个模块的*_Cfg.c/.h文件里面包含了所有你设置的参数以const数组或结构体的形式存在。生成工程文件最后生成针对你的编译器如GreenHills的工程文件.gpj等这个工程会自动链接所有生成的代码、BSW库文件和MCAL库文件。4.3 编写应用层代码在生成的工程中找到属于AppSwc_Sender组件的文件通常是AppSwc_Sender.c。你需要实现组件的运行实体Runnable Entity。在DaVinci Developer中为AppSwc_Sender组件创建一个Runnable例如RE_SendEngineData并将其触发方式设置为TimingEvent例如每10ms触发一次。生成代码后在AppSwc_Sender.c中会找到该Runnable的骨架函数RE_SendEngineData。在此函数中调用RTE提供的写接口更新信号值。这个值会被自动传递到COM层并按照之前的配置周期性地通过CAN发送出去。/* AppSwc_Sender.c - 生成的应用代码骨架 */ #include “Rte_AppSwc_Sender.h” /* Runnable RE_SendEngineData */ void RE_SendEngineData(void) { Std_ReturnType status; uint16 engineSpeed 0; /* 模拟获取发动机转速数据 */ engineSpeed GetEngineSpeedFromSensor(); // 假设的函数 /* 通过RTE接口写入数据Com模块会自动读取并发送 */ status Rte_Write_PPort_EngineData_deEngineSpeed(engineSpeed); /* 建议检查返回值生产代码中需处理错误 */ if (status ! E_OK) { /* 错误处理记录日志或触发诊断事件 */ } }5. 编译、刷写与验证5.1 编译与链接用GreenHills或其他IDE打开生成的工程文件。检查编译路径确保包含了所有生成的头文件、MCAL头文件、BSW库路径。执行编译。首次编译可能会遇到大量头文件路径或库文件缺失的问题需要根据错误信息逐一在工程设置中修正。编译成功后会生成一个可执行文件如.elf或.hex。5.2 刷写到RH850开发板使用调试器如Renesas E1/E2x Lite, Lauterbach Trace32连接RH850开发板。在IDE中配置调试会话设置正确的芯片型号、调试接口和时钟。将编译好的可执行文件下载Download/Program到开发板的Flash中。复位并运行程序。5.3 使用CAN工具验证通信将开发板的CAN接口通过CAN收发器连接到PC的CAN卡如PEAK PCAN-USB。在PC上打开CAN分析软件如PCAN-View。设置相同的波特率500kbps。启动PCAN-View的监听功能。如果配置和代码正确你应该能看到ID为0x100的CAN报文以100ms的周期出现数据字段包含了你在代码中设置的engineSpeed值例如0x07D0表示2000转/分。6. 常见问题排查与调试技巧即使按照步骤操作第一次尝试也很可能失败。以下是几个最常见的故障点及排查思路。问题现象可能原因检查点与解决方案编译失败找不到头文件或符号1. 工程包含路径不正确。2. BSW或MCAL库文件未正确链接。3. 生成的代码有语法错误。1. 检查IDE中Include Paths确保包含所有生成代码、MCAL、BSW的路径。2. 检查Linker设置确认所有必要的.a或.lib文件已添加。3. 检查生成代码的*_Cfg.h文件看是否有配置错误导致的结构体定义异常。程序下载后无法运行卡死1. 启动顺序Startup Sequence配置错误。2. 时钟初始化失败。3. 栈或堆设置过小。1. 检查EcuM模块的EcuMStartupTwo配置确保所有BSW模块初始化顺序正确。2. 检查Mcu模块配置确认时钟源、PLL、分频等参数与硬件匹配。3. 检查链接脚本.lsl等中的内存分配。CAN总线上无任何报文1. CAN控制器未使能或初始化失败。2. 波特率或位时序配置错误。3. 硬件连接问题终端电阻、线序。4. 发送PDU未激活或触发条件未满足。1. 在Can_Init后检查是否调用了Can_SetControllerMode进入CAN_CS_STARTED状态。2.使用示波器或逻辑分析仪测量CAN_H和CAN_L波形确认是否有差分信号。这是最直接的硬件诊断方法。3. 检查CanIf_Init和Com_Init的返回值。4. 确认Com模块的ComTxMode已启用且Com_MainFunction被周期调用。有报文但ID或数据不对1.CanIfTxPduCanId配置错误。2.ComSignal到ComIPdu的布局Bit Position错误。3. 应用层写入的数据格式错误。1. 在PCAN-View中核对报文ID。2. 在Com配置中仔细检查信号的ComBitPosition和ComBitSize。3. 在应用代码中调试Rte_Write调用前后的数据值。报文发送周期不稳定1.Com_MainFunction或包含RE_SendEngineData的Task执行周期不稳定。2. 系统负载过高任务被阻塞。1. 确认OS中触发Runnable的Task优先级和周期设置正确。2. 检查是否有其他高优先级任务长时间占用CPU。调试建议善用调试器在关键初始化函数Can_Init,CanIf_Init,Com_Init,EcuM_StartupTwo和Runnable入口设置断点单步跟踪执行流程和返回值。添加调试输出如果硬件支持如串口可以在代码中添加简单的日志打印输出关键变量的状态。模块化验证不要一次性配置所有功能。可以先配置一个最简单的Can驱动回环测试Loopback确认MCAL和硬件工作正常再逐步向上层添加CanIf、Com等模块。7. 生产环境考量与最佳实践学习环境跑通只是第一步实际项目开发需要考虑更多。配置版本管理AUTOSAR配置.arxml或.dpa文件是项目的核心资产必须使用Git等版本控制系统管理。注意过滤掉工具生成的临时文件和二进制库。错误处理与诊断生产代码中必须检查所有AUTOSAR接口的返回值Std_ReturnType。重要的错误应通过Dem诊断事件管理器报告并可能触发BswM基础软件模式管理器进行模式切换。内存与性能优化合理配置Can模块的硬件对象HOH数量避免过多占用RAM。优化Com模块的信号处理对于高频信号考虑使用ComSignalGroup和直接信号处理接口。根据实际需求调整各模块MainFunction的调用周期平衡实时性与CPU负载。网络管理NM集成真实的ECU需要实现网络管理以实现总线睡眠和唤醒。这需要配置CanNm、ComM等模块并与EcuM协同工作。这是一个复杂的主题应在通信基础稳定后再引入。使用AUTOSAR工具链的“验证”功能在生成代码前使用配置工具提供的“一致性检查”或“验证”功能可以提前发现许多配置冲突或参数错误。文档与注释在配置工具中充分利用“Description”字段为关键的配置项如PDU ID、信号含义、周期添加注释。这在大团队协作和后期维护中至关重要。从零搭建AUTOSAR环境并实现第一个CAN通信功能是一个系统性工程。它要求你同时理解分层架构、工具链操作、硬件知识和C语言编程。遇到问题时按照从底层硬件到上层应用的顺序逐层排查并善用官方文档、示例代码和调试工具。当你成功在CAN总线上看到预期的报文时你就已经打通了AUTOSAR开发中最核心的配置与集成链路后续更复杂的功能如诊断、存储、多核调度都是在这条链路基础上的扩展和深化。

相关新闻

竞品分析PPT模板哪家强?对比了7个平台

竞品分析PPT模板哪家强?对比了7个平台

做竞品分析,一套好的PPT模板能事半功倍。以下盘点几类常用平台,供大家参考。 一、百度文库 核心标签:18亿专业内容资源、9700万AI月活用户、工信部六项指标蝉联第一、行业首创智能PPT、PPT访问量全球第一、全球头部爆款、GenFlow 4.0、创意实…

2026/8/6 4:01:34 阅读更多 →
大模型应用成本优化实战:从架构设计到提示词精炼的降本增效全攻略

大模型应用成本优化实战:从架构设计到提示词精炼的降本增效全攻略

1. 项目概述:当大模型应用成本成为“不可承受之重”最近和几个做AI应用开发的朋友聊天,大家不约而同地都在吐槽同一个问题:项目跑起来了,用户反馈也不错,但一看账单,心都在滴血。尤其是那些重度依赖大语言模…

2026/8/6 4:00:34 阅读更多 →
SPC 新版培训实战指南:从理论到产线落地的全流程解析

SPC 新版培训实战指南:从理论到产线落地的全流程解析

在汽车零部件生产线上,最让人头疼的往往不是偶尔出现的不良品,而是那些“明明设备参数没变,产品尺寸却忽大忽小”的诡异波动。很多质量工程师都有过这样的经历:拿着卡尺测了一堆数据,算出个 Cp 值看着挺漂亮&#xff0…

2026/8/6 4:00:33 阅读更多 →

最新新闻

AI 编程工具实战(7):AI 辅助写单元测试与调试

AI 编程工具实战(7):AI 辅助写单元测试与调试

上一篇已经建立了可复用的操作闭环;本篇把同一套“先限定上下文、再要求证据”的方法推进到测试调试。 一、痛点:先定义任务,再谈工具 讨论测试调试时,最常见的误区是用一次“看起来很聪明”的回答替代工程评估。pytest、性质测…

2026/8/6 9:25:33 阅读更多 →
Cursor 2026.08.05

Cursor 2026.08.05

Cursor Test 2026.01.13 Cursor Test 2025.12.24 很早以前有经验的工程师就知道如何简化流程了。代码生成器。 特定情况下比AI还要快呢。

2026/8/6 9:25:33 阅读更多 →
蓝牙Mesh网络核心概念解析:节点、元素与特性在物联网组网中的应用

蓝牙Mesh网络核心概念解析:节点、元素与特性在物联网组网中的应用

1. 从“单点连接”到“网络编织”:为什么需要蓝牙Mesh? 如果你用过传统的蓝牙耳机或音箱,应该对“配对”这个操作不陌生。手机搜索到设备,点击连接,一个“点对点”的链路就建立了。这种模式简单直接,但有个…

2026/8/6 9:25:33 阅读更多 →
AI 编程工具实战(6):用 AI 工具做大型代码库重构

AI 编程工具实战(6):用 AI 工具做大型代码库重构

上一篇已经建立了可复用的操作闭环;本篇把同一套“先限定上下文、再要求证据”的方法推进到大型重构。 一、痛点:先定义任务,再谈工具 讨论大型重构时,最常见的误区是用一次“看起来很聪明”的回答替代工程评估。依赖图、绞杀者…

2026/8/6 9:25:33 阅读更多 →
AI 编程工具实战(4):GitHub Copilot 补全与 Chat 实战技巧

AI 编程工具实战(4):GitHub Copilot 补全与 Chat 实战技巧

上一篇已经建立了可复用的操作闭环;本篇把同一套“先限定上下文、再要求证据”的方法推进到Copilot 实战。 一、痛点:先定义任务,再谈工具 讨论Copilot 实战时,最常见的误区是用一次“看起来很聪明”的回答替代工程评估。代码补…

2026/8/6 9:25:33 阅读更多 →
深度优化指南:ComfyUI-Manager企业级插件系统架构设计与性能调优

深度优化指南:ComfyUI-Manager企业级插件系统架构设计与性能调优

深度优化指南:ComfyUI-Manager企业级插件系统架构设计与性能调优 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable var…

2026/8/6 9:24:33 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →