MPU机制与实现详解

原创 汽车ECU开发 2021-09-18 07:31
所有本文主要介绍基于Davinci 工具链的MPC5746R的MPU功能的实现。

01


概念介绍

1、freedom from interference
此概念来自ISO26262-1:absence of cascading failures (1.13) between two or more elements (1.32) that could lead to the violation of a safety requirement
多个元素之间没有可能导致违反安全目标的级联故障,称之为免于干涉.
在左侧的设计中,ASIL A的软件模块不可能影响ASIL C的模块,因此ASIL C模块对ASIL A模块免于干涉。
在右侧的设计中,存在从ASIL A到ASIL C系统的数据/控制流。结果,至少在没有任何进一步分析的情况下,ASIL C系统无法实现对于ASIL A软件模块的免于干涉。ASIL C系统可能会受到ASIL A系统的影响。在这种情况下,需要采取进一步的设计或验证措施,以免受到干扰。例如,ASIL C系统可以首先检查ASIL A系统数据的正确性。考虑到这一措施,ASIL C组件将实现免于干涉
2、Separation in Memory
Vector 的MICROSAR OS将TASK ISR IOC等集合成OS Application,以便将不同的应用划分到不同的内存区间。针对软件进行的模块化和分区可以提高软件系统的康故障鲁棒性。
同一安全等级的软件或实现同一个安全目标的软件划分到同一个模块或者OS Application。当故障发生时,可以很好的防止出现错误级联,从而实现freedom form interference
SC3 SafeContex OS中必须具备整个软件中最高的 安全等级,例如软件中最高等级的模块位ASIL C,那么OS必须要具备ASIL C等级,才能保证软件模块的安全等级。
SC3 SafeContex OS会运行在Supervisor Mode,保证运行在系统的最高权限。通过Memory Partition,将各个模块在内存访问上的操作进行隔离。如果需要附加模块之间的访问安全机制,可以有效的达到各个不同安全等级模块之间的freedom from interference
3、Partitioning Options
Davinci 针对Memory Partitionning 有两种解决方案:
1、 BSW运行在Non-Trusted,或者QM-partition,配合Safe WDG的时间监控(deadline)以及OS Scalability Class 3/4。这种情况适合与ECU Software中只有一小部分的软件是功能安全目标实现模块,另外较大一部分是QM。与底层的BSW交互较多。这种交互不需要跨越partition,SafeWDG作为有安全等级的模块出现,且由于其功能是监控软件运行,一般作为软件中最高安全等级
2、BSW所有模块选择safety 等级模块,与ECU中safety等级的其他功能模块安全等级一致。可以设置为最高安全等级或者QM的其他安全等级,最好与那些BSW交互较多的软件模块设置成一致的安全等级。这样可以有效降低跨越partition所带来的OS切换消耗时间。这种方案适合与有一大部分软件模块都是safe-related模块的ECU。
除此之外,MCAL和外设模块与BSW模块之间的交互也需要评估,与BSW有交互的模块需要划分到BSW同级的模块,并且需要具备该安全等级。
4、Memory Protection
Davinci Safe提供了针对software partition的memory protection,是实现同一个ECU中具备不同安全等级的软件模块时必须要实现的freedom form interference 方法

02


Partition元素-MPU

1、MPU介绍
Memory Protection 的实现需要配合硬件MPU。通过MPU配置,各个软件模块将具备对不同memory区域的不同访问权限,主要包括RAM ROM,以及外设寄存器的访问权限。例如,配置低安全等级软件模块无法对高安全等级软件模块的flash RAM段进行访问,(需要配合编译器,将软件模块编译到不同到区域)即可有效防止低安全等级的软件模块在故障产生时对高安全等级模块发生级联醒错误。
MPU的配置是通过设置多个MPU region来实现的,每个MPU region的可配置选项包括: 被保护的起始地址,访问权限,所属硬件MPU分类,Region Owner 以及有效ID等。
一般来讲,MPU分为两类,System Memory Protection Uint 和 Core Memory Protection Uint。SMPU主要存在与多核系统中,用于对各个BUS设定内存访问权限。一般来讲,SPMU由OS在启动时设定好,在软件运行过程中不会被重新设置,不会在软件中动态的更改BUS对内存的访问权限。
CMPU一般负责多核的内存保护,一般每个内核都具备一定数量的CMPU,可以为运行在该内核上的OS Application TASK ISR等分别设定不同的内存区域以及外设地址的访问权限,从而实现软件模块的分区。
CMPU的访问权限包括读、写、执行权限,可以根据内存区域存储内容设定,CMPU在OS的运行过程中是可以更改权限的。当各个OS Application的权限被设定好之后,OS会在OS Application切换时对MPU相关寄存器进行重重新初始化,并设置位即将切换到的OS Application权限。当出现访问超过MPU权限允许范围时,MCU exception会被出发并进入其相应的OS 处理函数,用户可以根据情况 Shutdown OS或者选择进入安全模式,从而有效阻止了软件访问故障的发生。
在OS SC3/SC4中OS Application分为两类,具备最高安全等级的OS Application设定位Tusted Application,其他不具备Trusted属性的Application 属于Non-Trusted Application,OS和Trusted Application 运行在Supervisor Mode下,Non-Trusted Application则运行在User模式下。推荐为Truesd Application 设定除Stack区域以外的所有地址方位的读、写、执行权限,包括外设地址。
为Non-Trusted Application设定属于其私有的CFlash 和RAM段的访问权限,以及共享数据区域的读写权限。
用户可以根据ECU软件各个模块的安全等级情况,将软件划分的到多个OS Application 中,依据MCU资源设定MPU,进而实现不同安全等级的软件模块的协同工作,并把故障级联的概率降到允许范围内的需求。
2、SMPU和CMPU
2.1、SMPU特性
用于核之间的安全隔离,实现免于干涉
SMPU限制核对某些内存空间或者MCU上通过总线访问的外部资源,一般只限制写权限
在OS初始化时被初始化,运行过程不会改变
配置步骤
2.2、CMPU特性
同一核上OS Application Task ISR之间的安全隔离
在启动代码或者运行中设置,限制权限包括读、写、执行权限
配置步骤:
2.3、Static MPU Regions特性
对MPU Regions不指定具体的Owner,对所有软件模块都生效
系统启动时设定好,可以是SMPU 或者CMPU,运行过程中不会改变
2.4、Dynamic MPU Regions特性
对MPU Regions 指定Owner,Owner可以是OS Application TASK ISRS
根据Owner 运行与否,代码运行过程中进行enable/disable,
2.5、Optimized /Fast Core MPU Handing
利用Memory Protection Identifiers值的变化,选择性使用MPU Regions,在不重新初始化MPU寄存器的情况下,OS切换到某线程,同时具备PID MPU Region ,实现Dynamic MPU切换
3、MPU的配置
在常见的软件设计中,由于将软件整体开发到相同的ASIL等级会耗费大量的资源。一般情况下只有一部分软件会开发生ASIL等级,其他模块开发成相对较低的安全等级,为了达到freedom from inerference,需要限制低等级模块对高等级模块的访问。下面举例说明MPU配置的常见思路。
  1. 从Safety方面,高等级的软件模块可以访问其Memroy以及安全等级较低的软件模块Memory。

  2. 从工具方面,MPU可以被配置为各个OS Application TASK ISR 分别独立具备访问范围,工具并不会因为软件模块安全等级的高低而对OS RTE有区别配置,而只是采用模块间的隔离策略。隔离机制不会生成在RTE中

  3. 从系统角度,整体软件至少需要一个Trusted部分(以OS Application为单位划分),并且Trusted部分是安全等级最高的模块,可以访问其他模块的Memory

  4. 总结,使用MemMap机制,将各个OS Application所占用Code Data资源进行良好整齐的存放基础上,MICROSAR 的推荐MPU配置为:

  5. 设置软件中等级最高的软件模块为Trusted Os Application,同时设置位privilege。并设置Memory Region,允许该Application访问呢所有Memory段和外设。

  6. 其他每个安全等级模块各设定至少一个OS Applcaiton,并设置为Non-Trusted,针对其设定允许对整个Memory的读权限,和模块代码的执行权限,以及Stack的写权限,共享数据区域的读或者读写权限

  7. 关于Stack,不需要用户自己设定,OS会占用一个Memory Region进行Stack设置,因此需要留一个Memory Region给到OS

  8. 共同使用Static MPU 和Dynamic MPU,配合OsAppMemoryProtectionIdentifier的作用,尽量减少MPU在代码运行过程中的重新初始化,这样可以降低OS contex切换的时间

配置思路:
3.1、MPC MPU硬件特性及配置
以MPC5744 单核为例介绍,硬件资源如下:
  1. 16个SMPU,24个CMPU,12个data 6个instruction 6个 shared
  2. 2个supervisor ,3种访问权限
  3. 6个可以选择的SMPU访问对象,即6个master ID,分别对应MCU总线上的外设单元
在配置工具中查看硬件资源
针对OS Application /TASK /ISR设定Memory Region,依次设置其参数并关联到需要生效的OS Application TASK ISR。根据需要对SMPU进行配置,如果所有MPU都没有使用SMPU,OS会在初始化时禁止 Gloabl SMPU Control Bit,SMPU将不会生效。同理CMPU,即使OS 设定为SC3,不设置任何MPU Region,那么MPU会被disable.
MPU配置如下图所示,其中被标注蓝色框的选项是必须设置的选项:
MPC系列的特殊配置:
Memory Region Bus Master:设置允许访问MPU设置地址的Master,仅针对SMPU有效
Memory Region Flag :访问行为的属性,可以参数硬件手册
当出现MPU错误时,代码会进入
Os_Hal_Exception_Machine_MCSRR
Os_Hal_Exception_Data
Os_Hal_Exception_Instrcution



03


Partition实现元素OSApplication


3.1、OS/OsApplication权限以及访问的权限切换
硬件MCU支持两种访问模式,Privileded 和Non-privileded。其中前者具有比较高的权限,有一部分寄存器需要在前者模式下才能被访问,详细可以参考RM手册。OS会运行在Privilege Mode,具有最高的访问权限,可以访问所有寄存器。
在采用不同的功能安全等级的软件模块协调工作的的系统软件中,需要利用MPU单元防止低安全等级的模块对硬件寄存器进行访问,同时限制除最高安全等级模块之外的其他软件模块的Memory访问。
3.1.1、 OS/OsApplication权限
OS 具备最高权限 Privilege Mode Trusted
Trusted OS Application - Privileged Mode Trusted,一般将软件按照安全等级划分,并分别归属到不同的OsApplication中,其中安全等级最高的部分设置为Trusted,属于可信度最高的模块。目前建议Trusted OsApplication具备其他Application Stack的所有区域访问权限。
3.1.2 MCAL模块Protected Registers 访问
系统初始化时,进行MPU初始化,在此之前MPU处于Disable状态,一般在OS启动初始化MCAL模块,此时可以访问Protected Register。在OS初始化以后,如果MCAL模块需要在Privilege Mode运行时,基本可以分为以下几类:
1、Vector Modules,例如CAN/LIN ETH等通讯模块,一般CAN需要勾选CanUserPeripheralAccessApi,并根据PROTED AREA中的定义相应的OsApplication,CAN将会调用OS接口进行privilege权限的获取
2、MCAL模块一般需要开启User Mode,例如FlsEnableUserModeSupport,勾选以后,MCAL会采用privilege Mode进行访问。
3.1.3 OsShutdown的实现
AUTOSAR要求只有在Trusted OsApplication才可以进行OsShutdown,否则将无法shutdown成功。可以通过Event的方式通知Trusted Task调用OsShutdown Api。但是需要设置一个高优先级/不可抢占/拓展类的TASK,代码示例如下:
在向FBL跳转以及系统最后的Reset务必使用Mcu_PrefromReset,这样才可以disable MPU,否则可以使用代码disable MPU之后,在调用对应的API进行Reset操作
3.2 、Trusted/Non-Trusted 配置举例
不同等级的OsApplication之间互相调用时涉及到安全问题,需要做安全访问的权限转换。
1.Trusted Funtion
Trusted OS Application供给其他Application调用的函数,应在Privilege Mode下执行。用于Non-Trusted OsApplication调用Trusted OsApplication内部函数,举例如下:
2.Non-Trusted Funtion
Non-Trusted OsApplication供给其他Application调用的函数,应在User Mode下执行,用于其他OsApplication调用Non-Trusted OsApplication 内部函数。配置方式与上面类似
3.3、MemMap机制与OS数据的存放
MPU需要限制各个OsApplication Task ISR对各个地址的访问权限,所以明确并整理好各个软件模块的代码数据存放位置是关键。通过MemMap机制,和Link文件。可以将各个模块的代码和数据存放到指定的区域,从而实现MPU保护。如下图,MemMap的作用
当发生MPU错误时,OS会进入ProtectionHook,并返回E_OS_PROTECTION_MEMORY或者E_OS_PROTECTION_EXCEPTION

04


Partition元素-RTE

RTE 作为动态配置的虚拟总线模块,负责 OS application 之间的数据交互和访问,在具备 Memory
partition 的系统中, OS application 之间的访问会存在跨越安全等级的情况, RET 具备一定的免于干扰的
机制,分别针对各 OS application 产生代码和变量,在后续的软件分区过程中分别将 RET 生成的对应各
OS application 的 memory 内容分别归其所属。由于大部分的机制由 RTE 自动完成,需要用户设置的主要
有以下几点:
  • 为 OS application 分别关联 ECUC partition

  • 生成代码,按照 RTE 段的内容分别归属到相应的 OS application,并各自设置访问权限的允许,

  • 公共的 RTE code(如 RTE_START_SEC_CODE) 需要对所有的 OS application 开放访问权限。

  • 尤其针对跨越 OS application 的访问,分别做好 runnable 的 task mapping,确保调用端和被调用端

  • 分别 mapping 到对应 task。

  • RTE 端口尽量不要出现悬空状态,或链接不处理数据的状态


阅读原文,关注作者博客
版权声明:本文为CSDN博主「ZhouArchie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明,已获作者转载权限。

推荐阅读

基于UDS的Bootloder详解

关于整车上下电流程的理解

OEM:与软件供应商合作的六个经验总结

关于车载以太网 Switch Vlan的理解

2018版IS026262与2011版有哪些差异?

Adaptive AUTOSAR 学习笔记 - AP 背景、技术及特征

AURIX TC3XX系列的SOTA机制详解

一文详解奥迪e-tron内部系统 |附下载

ID.3 和大众的电气化平台 |附下载

一文详解CAN总线错误帧|附下载

DoIP协议介绍,资料分享!

详解车载网络 OTA系统的开发|文末附下载

一文了解汽车嵌入式AUTOSAR架构|附下载

特斯拉Autopilot系统安全研究|附dbc下载

分享不易,恳请点个【再看】
汽车ECU开发 专注于汽车电子ECU软件开发,技术分享。
评论
  • 2024年12月30日 调研咨询机构环洋市场咨询出版的《全球CPU渲染行业总体规模、主要厂商及IPO上市调研报告,2024-2030》主要调研全球CPU渲染总体规模、主要地区及国家的市场规模、主要企业规模和份额、主要细分市场规模、下游主要应用规模以及未来发展前景预测。统计维度包括收入、市场份额以及增速。同时也重点分析全球市场主要厂商(品牌)包括企业简介、总部、产地、CPU渲染产品介绍、规格/型号、收入、毛利率及市场份额、最新发展动态、优势与不足。历史数据为2019至2023年,预测数据为2024
    GIRtina 2024-12-30 16:36 131浏览
  • 2024年之前国际国内大品牌芯片,是电子产品生产主流供应产品,国际和国内大品牌电子芯片,产品质量有保证,质量过硬,芯片各项参数满足电子产品需求,但价格高,交货慢,工厂接了急单,国内外大品牌产品短期内交不出来,交出芯片,价格太高。目前来看,以美国为首国外势力,对我们国家一些高端芯片,不出货,不卖给我们,我们要生产电器产品,一定要自己研发芯片,替代进口芯片,低价格芯片替代高价格芯片。国外买家对电子产品,价格压的太低,用国内外知名品牌电子芯片,那电子产品成本高过了卖价,工厂没有利润,工厂无法生存,芯片
    开发工匠 2025-01-01 11:49 62浏览
  • 时源芯微EMC(电磁兼容)领域,充斥着众多专业术语,令人眼花缭乱。1 电磁兼容(EMC)定义:指电气装置或系统在共同的电磁环境条件下,既能保持正常功能,又不会对周围环境产生不良影响。2  电磁环境Electromagnetic Environment定义:指存在于某一特定场所的所有电磁现象的总和。3半电波暗室Semi-anechoic Chamber定义:一种屏蔽室,除地面安装反射接地平板外,其余内表面均覆盖有吸波材料。4 远场Far Field定义:在天线辐射的场域中,功率密度与距离
    时源芯微 2024-12-31 10:52 141浏览
  • 全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股票代码:AMS)近日宣布,于2024年6月26-28日携汽车智能照明和智能座舱解决方案及相关产品和技术,亮相位于昆山市花桥国际博览中心的第十九届汽车灯具产业发展技术论坛暨上海国际汽车灯具展览会(以下简称:ALE),展示艾迈斯欧司朗优质的光发射器、光学元件、微型模组、传感器等产品在汽车领域的创新应用,展位号B馆T202。乘着车灯产业盛会的东风,全国汽车标准化技术委员会灯具及灯光分技术委员会秘书长卜伟理, 蔚来汽车内外车灯团队专家及电气工程副
    艾迈斯欧司朗 2024-12-30 16:55 80浏览
  • 本文介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试。触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。查看DDR获取内存信息下面数字以MB为单位。root@ido:/# free -mtotalused free shared buff/cache availableMem:
    Industio_触觉智能 2024-12-31 10:01 85浏览
  • 产品概述MG600Q2YMS3 是一款基于硅基碳化物(SiC)技术的高功率N沟道MOSFET模块,适用于高功率开关和电机控制应用,如轨道牵引系统。其设计旨在满足高效能和快速切换需求,为工业和能源领域提供可靠解决方案。主要特性1. 高电压和电流能力   耐压 (VDSS):1200 V   漏极电流 (ID):600 A2. 高效率与低损耗   碳化硅材料降低导通损耗和开关损耗,实现更高的转换效率。3. 快速切换性能 支持高频操作,适用于
    东芝铠侠代理 2024-12-31 10:33 87浏览
  • 很荣幸收到富芮坤 FR3068x-C低功耗开发板,参加测评。断断续续看了一些资料,今天有时间把开发环境初步搭建好了,能下载程序了。记录一下,给大家分享一下。1、找不到ARMCM33_DSP_FP。安装Keil。我之前安装的Keil版本低,下载了重新安装了5.41,安装完成后,在工程配置页面的Device页面没有找到官方说的ARMCM33_DSP_FP,下图为官方文档内的截图,没有关系,注意右边涂黄色部分,Pack 的信息。打开keil的Pack Installer,找到ARM::CMSIS,找到
    王晓明 2025-01-01 15:38 56浏览
  • “新时代,共享未来”2024年11月5日-10日,第七届中国国际进口博览会在上海圆满落幕。其中,3万平方米的汽车展区展览面积,也让观众笑谈进博会再次进入“车展”时间。全球15大整车品牌,40多家企业参展,其中不乏耳熟能详,七届进博会“全勤生”的国际知名OEM,也会有首次参加的“新面孔”,它们共同构成了今年汽车展区的“全家福”。近年来,中国汽车进口均超百万辆。因此,对跨国车企来说,中国市场的重要性不言而喻。同时,在电动化和智能化赛道中弯道超车的中国汽车市场,也是全球汽车行业竞争最为激烈的市场,在这
    艾迈斯欧司朗 2024-12-30 17:05 74浏览
  • 高精度,抗干扰,设计灵活……一句话总结:打铁还需自身硬!2040年,人形机器人的数量或将超过人类,达到100亿个。 10月29日,沙特投资倡议论坛,在谈及AI和人形机器人赛道时,马斯克再一次大胆预测,描绘出上述令人震撼的未来景象,且预估每台机器人的价格将稳定在2万-2.5万美元之间。当下,技术飞速发展,众多机器人公司如雨后春笋般涌现。余建华,艾迈斯欧司朗资深应用工程师,深感对这个市场的期待,他表示每一个机器人关节的背后,都离不开位置传感器的精准掌控。这片市场的潜力,让人憧憬不已。在工业及消费中
    艾迈斯欧司朗 2024-12-30 17:25 68浏览
  • 近日,紫光展锐正式推出高性能4G 智能穿戴平台W377E。该产品面向不同的应用场景,拥有丰富特性和超低功耗,进一步壮大紫光展锐的智能穿戴产品组合。紫光展锐面向中高端和海量的智能穿戴市场,持续提供技术先进、高效安全、高质可靠的解决方案。 紫光展锐W377E采用四核A53架构,支持13M摄像头,video 1080P 30fps,集成了Wi-Fi、蓝牙和GPS功能。W377E搭载Android 8.1系统,提供更加丰富多样的APP体验,支持在线好友聊天、支付宝等功能,且支持64位系统的AP
    紫光展锐 2024-12-31 16:26 144浏览
  •         在之前的文章中,我们介绍了IEEE 802.3cz[1]协议,MultiGABSE-AU物理层中XMII、PCS子层以及两个可选功能的相关内容,本篇将介绍MultiGABSE-AU物理层PMA子层及PMD子层的相关机制。PMA子层        PMA子层位于PCS子层和PMD子层之间,规范中定义了PMA子层的三个功能:PMA Transmit、PMA Receive及PHY Control。&nbs
    经纬恒润 2024-12-30 18:16 121浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球CAN-Bus总线电缆产值达到2287百万美元,2024-2030年期间年复合增长率CAGR为3.6%。一、行业概述CAN-Bus总线电缆是一种专门用于CAN总线(Controller Area Network,控制器局域网络)通信系统中的电缆。CAN总线是一种广泛应用于汽车、工业自动化、机器人等领域的串行通信协议,主要用于微控制器和设备之间的数据交换。CAN-Bus电缆负责在多个设备间传输数据,保证信息的稳定传输和
    GIRtina 2024-12-31 11:00 134浏览
  • 感光百科:4000万片出货量背后的“技术经”目前,仅单点dToF,艾迈斯欧司朗的累积出货量就已超过了4000万片。大量采用的背后必然代表无数用户对这一技术的认可和信赖。究竟是什么魔力,让dToF传感器拥有如此强大的吸引力?又是怎样的know-how积累让艾迈斯欧司朗的dToF产品如此受到青睐?让我们再次回到底层原理来探究dToF 4000万片出货量背后的“技术经”。01、底层原理决定应用上限dToF传感器,顾名思义,直接飞行时间测量,基于光速不变,测量光子从发射端到接收端的光程差,从而直接计算二
    艾迈斯欧司朗 2024-12-30 18:21 111浏览
  • 在当今数字化时代,嵌入式系统无处不在,从我们手中的智能手机、智能手表,到汽车中的电子控制系统、工业自动化设备,嵌入式开发技术的发展历程宛如一部波澜壮阔的科技史诗,深刻地改变了我们的生活和社会的运作方式。萌芽阶段(20 世纪 60 - 70 年代)嵌入式开发的起源可以追溯到 20 世纪 60 年代。当时,计算机技术刚刚兴起,体积庞大且价格昂贵。为了满足特定设备的控制需求,工程师们开始尝试将计算机技术应用于一些专用系统中。这一时期,嵌入式系统的概念逐渐萌芽。1965 年,美国数字设备公司(DEC)推
    Jeffreyzhang123 2024-12-31 10:08 146浏览
  • 先临三维普及化手持3D扫描仪Einstar搭载艾迈斯欧司朗SFH 4726AS红外LED,打造真彩扫描、人眼安全、超高性价比的照明解决方案;得益于双堆叠发射器技术和透明硅树脂封装,OSLON® Black系列的SFH 4726AS实现小尺寸、高功率、高效率和优化的热管理,有效减小散热设计的压力;采用3.75×3.75mm的透明硅树脂封装,内置1mm2堆叠红外芯片,单颗光功率可达2W以上,为手持扫描仪这样小巧空间的应用提供更多光源设计空间。全球领先的光学解决方案供应商艾迈斯欧司朗(瑞士证券交易所股
    艾迈斯欧司朗 2024-12-30 16:50 65浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦