CN116451235A - 内存保护方法、设备、存储介质及程序产品 - Google Patents
内存保护方法、设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN116451235A CN116451235A CN202310310211.4A CN202310310211A CN116451235A CN 116451235 A CN116451235 A CN 116451235A CN 202310310211 A CN202310310211 A CN 202310310211A CN 116451235 A CN116451235 A CN 116451235A
- Authority
- CN
- China
- Prior art keywords
- memory
- target task
- area
- task
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013461 design Methods 0.000 abstract description 28
- 239000002699 waste material Substances 0.000 abstract description 10
- 238000012545 processing Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 230000003068 static effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000000638 solvent extraction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种内存保护方法、设备、存储介质及程序产品,该方法包括包括通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,不同内存分段用于存储不同的功能安全等级的任务的数据,在目标任务的调度阶段,根据目标任务的功能安全等级,从多个内存分段中选定目标内存分段,并配置目标任务对目标内存分段的访问权限。本申请实施例提供的方法可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求。
Description
技术领域
本申请实施例涉及汽车电子技术领域,尤其涉及一种内存保护方法、设备、存储介质及程序产品。
背景技术
内存保护单元(Memory Protection Unit,MPU)是提供内存保护的计算机硬件单元,能够保护内存,避免被非法访问,使嵌入式系统更加健壮与安全。
相关技术中,通过MPU可以基于任务的数量将内存区域划为多个分区,为每个任务划分一个分区,以此将不同任务进行隔离。
然而,实现本申请过程中,发明人发现现有技术中至少存在如下问题:基于上述方式,在任务较多的情况下,MPU的设计会极其复杂,且较易为了满足内存对齐而造成空间浪费。
发明内容
本申请实施例提供一种内存保护方法、设备、存储介质及程序产品,以简化MPU设计,避免空间浪费。
第一方面,本申请实施例提供一种内存保护方法,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据;
在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
在一种可能的设计中,所述根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,包括:
根据所述目标任务的功能安全等级,将多个所述内存分段中功能安全等级小于或等于所述目标任务的功能安全等级的内存分段确定为目标内存分段。
在一种可能的设计中,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段之后,还包括:
创建目标任务,并将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中。
在一种可能的设计中,所述将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中,包括:
为不同的功能安全等级分配不同的关键字;
将所述目标任务中多个变量的名称中添加所述目标任务的功能安全等级对应的关键字;
根据多个所述变量的名称中的关键字,将多个所述变量的数据存储于所述关键字对应的功能安全等级的内存分段中。
在一种可能的设计中,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得堆栈区域和多个内存分段;
所述配置所述目标任务对所述目标内存分段的访问权限之后,还包括:
在目标任务的调度阶段,配置所述目标任务对所述堆栈区域的访问权限。
在一种可能的设计中,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和全局区域;
将所述全局区域的访问权限配置为特权模式和用户模式对应的访问权限;所述全局区域用于存储特权模式和用户模式下多个任务共享的配置信息。
在一种可能的设计中,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和系统区域;
将所述系统区域的访问权限配置为特权模式对应的访问权限;所述系统区域用于存储以下中至少一项:内核代码段、内核数据段、用户代码段。
在一种可能的设计中,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段之后,还包括:
在目标任务的调度阶段,配置所述目标任务对于外围设备的访问权限。
在一种可能的设计中,所述多个内存分段包括功能安全等级QM、ASILA、ASILB、ASILC和ASILD分别对应的内存分段。
第二方面,本申请实施例提供一种内存保护设备,包括:
划分模块,用于通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据;
配置模块,用于在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的方法。
第四方面,本申请实施例提供一种汽车,包括如上第三方面以及第三方面各种可能的设计所述的电子设备。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
本实施例提供的内存保护方法、设备、存储介质及程序产品,该方法包括通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,不同内存分段用于存储不同的功能安全等级的任务的数据,在目标任务的调度阶段,根据目标任务的功能安全等级,从多个内存分段中选定目标内存分段,并配置目标任务对目标内存分段的访问权限。本申请实施例提供的方法通过基于功能安全等级划分多个内存分段,并在任务调度时,为调度阶段切换到的任务配置与其功能安全等级对应的内存分段,由此可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的应用内存保护方法的ECU的结构示意图;
图2为本申请实施例提供的内存保护方法的流程示意图一;
图3为本申请实施例提供的内存保护方法的流程示意图二;
图4为本申请实施例提供的MPU的内存分区结构示意图;
图5为本申请实施例提供的内存保护设备的结构示意图;
图6为本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
内存保护单元(Memory Protection Unit,MPU)是提供内存保护的计算机硬件单元,能够保护内存,避免被非法访问,使嵌入式系统更加健壮与安全。目前很多的MCU芯片都支持MPU功能。MPU更灵活的是基于操作系统的配置,能够将任务之间的内存隔离,防止任务在运行过程中非法访问其他任务的内存和代码区域。
相关技术中,通过MPU可以基于任务的数量将内存区域划为多个分区,为每个任务划分一个分区,以此将不同任务进行隔离。然而,如果操作系统很复杂,任务比较多的情况下,那么MPU的设计会极其复杂,另外,MPU能够分配的最小内存单位是固定的,例如64字节,由于要兼顾到内存对齐的问题,针对非64字节倍数的任务也需要分配64字节的倍数,例如,仅需要1字节的任务,需要分配64字节的内存区域,对于需要65字节的任务,需要分配128字节的内存区域,这样就会造成随机存取存储器(Random Access Memory,RAM)空间的浪费。
为了解决上述技术问题,本申请发明人研究发现可以基于功能安全等级将内存区域划分为多个内存分段,令同等功能安全等级的任务共用对应的内存分段,这样既可以解决分区过多的问题,简化MPU设计,避免因多个内存分区的内存对齐造成空间浪费,也能够满足功能安全的需求。基于此,本申请实施例提供一种内存保护方法。
图1为本申请实施例提供的应用内存保护方法的ECU的结构示意图。如图1所示,电子控制单元(Electronic Control Unit,ECU),又称“行车电脑”。ECU是决定整车性能的最重要的部分。ECU可以在汽车中设置多个,每个ECU管理不同的功能,ECU之间可以进行信息交换。ECU包括微控制器(Microcontroller Unit,MCU)、输入回路、模数转换器(Analog toDigital Converter,ADC)和输出回路。其中,MCU包括存储器(RAM和ROM)、处理器CPU和输入/输出接口I/O。输入回路与汽车上的传感器连接,用于接收传感器采集的模拟信号和数字信号。ADC用于将模拟信号转换为数字信号,MCU用于对输入回路接收的数字信号以及模数转换器转换得到的数字信号进行处理,并将处理结果发送给输出回路,以使输出回路将处理结果发送给相应的执行元件。
在具体实现过程中,ECU的输入回路接收传感器采集的模拟信号和数字信号,并将数字信号发送给MCU,将模拟信号发送给ADC,ADC将模拟信号转换为数字信号并将该数字信号发送给MCU。MCU通过MPU对内存区域(例如RAM)进行划分,获得多个内存分段,不同内存分段用于存储不同的功能安全等级的任务的数据,基于接收到的模拟信号和数字信号创建任务,并将不同任务的数据存储于对应的内存分段中。在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。任务处理完成后,将处理结果通过输出回路输出给执行元件。本申请实施例通过基于功能安全等级划分多个内存分段,并在任务调度时,为调度阶段切换到的任务配置与其功能安全等级对应的内存分段,由此可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求。
需要说明的是,图1所示的场景示意图仅仅是一个示例,本申请实施例描述的内存保护方法以及场景是为了更加清楚地说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的内存保护方法的流程示意图一。如图2所示,该方法包括:
201、通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据。
本实施例的执行主体可以是微控制器。例如图1中的ECU中的MCU。
具体的,通过MPU从内存区域中划分出任务区域,并进一步的将任务区域划分为多个内存分段。不同的内存分段对应于不同功能安全等级,用于存储属于对应功能安全带等级的任务使用的数据。每个内存分段包括起始地址、长度、读写权限、缓存等属性值。
在一些实施例中,多个内存分段包括功能安全等级QM、ASILA、ASILB、ASILC和ASILD分别对应的内存分段。其中ASIL等级的定义是为了对失效后带来的风险进行评估和量化以达到安全目标,其全称是Automotive Safety lntegration Level,汽车安全完整性等级。ASIL是由ISO 26262标准定义的风险分类系统,用于公路车辆的功能安全。
在一些实施例中,通过内存保护单元MPU对内存区域进行划分,获得多个内存分段之后,还可以包括:创建目标任务,并将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中。
具体的,可以根据项目的功能安全需求,创建QM、ASILA、ASILB、ASILC和ASILD多个功能安全等级分别对应的内存分段。任务在创建时,根据实际任务的安全等级选择不同的内存分段存放数据,然后将该内存分段配置到MPU的任务区域。
在一些实施例中,将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中,可以包括:为不同的功能安全等级分配不同的关键字;将所述目标任务中多个变量的名称中添加所述目标任务的功能安全等级对应的关键字;根据多个所述变量的名称中的关键字,将多个所述变量的数据存储于所述关键字对应的功能安全等级的内存分段中。
具体的,目标任务可以包括多个变量,为了将同属于目标任务的多个变量的数据存储于目标任务的功能安全等级对应的内存分段。可以预先为不同的功能安全等级分配不同的关键字。并基于该关键字生成变量的名称,例如将关键字作为变量的前缀。进而基于变量的前缀,将变量的数据存储于该前缀对应的功能安全等级对应的内存分段。例如可以为功能安全等级ASILA分配关键字sectionA,为功能安全等级ASILB分配关键字sectionB。若任务的功能安全等级为ASILA,那么可以将该任务对应的多个变量均加上sectionA的前缀,以便在进行数据存储时,基于sectionA的关键字将该多个变量的数据存储于sectionA对应的ASILA功能安全等级的内存分段中。
202、在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
具体的,上述内存分段的划分可以是在操作系统启动之前进行静态配置。在操作系统启动之后,任务调度阶段,可以为切换到的待运行的任务进行访问权限的动态配置。每个任务运行之前配置该任务的MPU访问权限,根据该任务所处的功能安全等级进行配置,权限只限于本任务有效,切换到其他任务时,再重新为其他任务配置访问权限。同时也可以配置该任务对于外围设备的访问权限。在配置完成后,同安全等级的任务在被调度时均对应的相同的内存分段,因此是可以实现相同功能安全带等级的任务之间的正常通信的。
当任务调度过程中,切换到目标任务时,在目标任务运行之前可以为目标任务配置访问权限,以限制目标任务对于高于其功能安全等级的内存分段的访问。在一种可实现方式中,可以配置对于对应功能安全等级的内存分段的访问权限,例如对于功能安全等级为ASILB的目标任务来说仅能够配置ASILB对应的内存分段的访问权限。在另一种可实现方式中,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,可以包括:根据所述目标任务的功能安全等级,将多个所述内存分段中功能安全等级小于或等于所述目标任务的功能安全等级的内存分段确定为目标内存分段。具体可以根据项目的实际需求来确定采取何种方式,本实施例对此不作限定。
本实施例提供的内存保护方法,通过基于功能安全等级划分多个内存分段,并在任务调度时,为调度阶段切换到的任务配置与其功能安全等级对应的内存分段,由此可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求。
在一些实施例中,通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,可以包括:通过内存保护单元MPU对内存区域进行划分,获得堆栈区域和多个内存分段;所述配置所述目标任务对所述目标内存分段的访问权限之后,还可以包括:在目标任务的调度阶段,配置所述目标任务对所述堆栈区域的访问权限。
具体的,为了更加有效利用内存,可以划定专门的堆栈区域,用于存储当前运行的任务的堆栈数据。在任务调度阶段,每次任务进行切换时,在配置完任务对对应内存分段的访问权限后,操作系统同时可以将任务用到的堆栈区域同时配置到MPU中,只针对于本任务有效,切换到其他任务后将会对其他任务重新配置。
在一些实施例中,通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,可以包括:通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和全局区域;将所述全局区域的访问权限配置为特权模式和用户模式对应的访问权限;所述全局区域用于存储特权模式和用户模式下多个任务共享的配置信息。
具体的,为了更加有效利用内存,可以将所有任务和中断共享的配置信息放置在一个固定的区域内,因此可以划分出全局区域用来存储所有任务和中断共享的配置信息。同时可以在操作系统启动之前,对全局区域的访问权限进行静态配置,可以设置为对特权模式和用户模式下均具有访问权限。
其中,ARM处理器有七种工作模式,用户模式(USR):正常程序执行模式,不能直接切换到其他模式。系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权。快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式。中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式。管理模式(SVC):操作系统保护模式,系统复位和软件中断响应时进入此模式(由系统调用执行软中断SWI命令触发)。中止模式(ABT):用于支持虚拟内存和/或存储器保护,在ARM7TDMI没有大用处。未定义模式(UND):支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式。在这七种工作模式中,除用户模式之外的六种工作模式统称为特权模式。
在一些实施例中,通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,可以包括:通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和系统区域;将所述系统区域的访问权限配置为特权模式对应的访问权限;所述系统区域用于存储以下中至少一项:内核代码段、内核数据段、用户代码段。
为了加强对系统内核的保护,可以专门设置系统区域来存储内核代码段、内核数据段和用户代码段。并且可以在操作系统启动之前的静态配置过程中,将系统区域的访问权限设置为仅特权模式下可以访问。
图3为本申请实施例提供的内存保护方法的流程示意图二。如图3所示,结合图4所示的MPU配置的系统区域(Sys)、任务区域(Task xxx)、堆栈区域(Stack)和全局区域(Global)等4个内存分区,对MPU的静态配置和动态配置进行了示例说明,该方法包括:
301、创建系统区域(Sys)、任务区域(Task xxx)、堆栈区域(Stack)和全局区域(Global)。并针对任务区域,创建不同安全等级对应的内存分段。
302、配置系统区域(Sys)和全局区域(Global)的访问权限。
303、操作系统OS启动,任务调度开始。
304、配置目标任务对任务区域(Task xxx)的访问权限。
305、配置目标任务对任务区域(Task xxx)对应的堆栈区域(Stack)的访问权限。
具体的,如图4所示,对MCU提供的内存区域region划分成4个部分系统区域(Sys)、任务区域(Task xxx)、堆栈区域(Stack)和全局区域(Global)。其中,Sys区域包含系统内核的代码段(Kernel Code)、内核数据段(Kernel Data)、用户代码段(Usr Code),内核部分的代码对于用户模式下运行的任务都有访问限制。Stack区域是任务在切换时配置的任务使用的堆栈区域。Global区域是所有用户模式和特权模式下的任务和中断共享的内存权限,都是可以访问的。可以将部分RAM和外围设备(Peri IO)配置成全局区域使用。Task区域是每个任务使用的内存段,可以按照功能安全等级进一步划分,示例性的,可以被划分成更多的功能安全子区域(QM、ASLA、ASLB、ASLC、ASLD、外围输入输出设备(Peripheral Input/Output)Peri IO等)。根据任务的功能和安全等级的不同,选择配置不同的功能安全子区域,就能实现内存隔离,低安全等级的任务无法访问高安全等级的任务,实现功能安全需求。
在具体实现过程中,在OS启动之前的静态配置过程中,首先创建不同安全等级的内存分段,具体的,根据项目的功能安全需求,创建QM,ASLA-ASLD多个功能安全内存分段,用于存放不同安全等级任务使用的数据。任务在创建时,根据实际任务的安全等级选择不同的内存分段存放数据,然后将该内存分段配置到Task Mpu区域。将数据固定到指定内存分段,可以用section关键字,指定一个变量,或者一段区域内的变量。其次,配置Sys和Global区域的访问权限,具体的,Sys区域包括内核的代码段和数据段,该部分的代码的优先级很高,可以只允许在特权模式下访问,其他用户模式的任务没有访问权限,如果需要使用OS的资源接口,那么就需要提升到特权模式之后才能进行访问。Global区域包括所有任务共享的内存区域和外设区域。这些区域的访问权限配置成特权模式和用户模式都是能够访问的。
以上静态配置完成,OS启动之后,任务开始调度。首先配置Task xxx的内存访问权限,具体的,每个任务运行之前配置该任务的MPU访问权限,根据该任务所处的功能安全等级进行配置,权限只限于本任务有效,切换到其他任务时,再重新配置其他任务的访问权限。同时也可以配置该任务对于外围设备的访问权限。这样配置完,同安全等级的任务之间还能够正常通信。进而,配置Task xxx的stack访问权限。具体的,每次任务进行切换时,在配置完任务的内存区域后,OS同时将任务用到的stack区域同时配置到MPU中,类似于上述配置内存访问权限,只针对于本任务有效,切换到其他任务后也会同时对其他任务进行重新配置。
本实施例提供的内存保护方法,通过将内存区域划分为系统区域(Sys)、任务区域(Task xxx)、堆栈区域(Stack)和全局区域(Global),并在OS启动之前完成对系统区域和全局区域的静态配置,在OS启动之后,任务调度阶段,完成对切换到的目标任务对于对应内存分段和堆栈区域的访问权限,在此过程中可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求,保护了系统内核,节省了共享的配置信息的占用空间。
图5为本申请实施例提供的内存保护设备的结构示意图。如图5所示,该内存保护设备50包括:划分模块501和配置模块502。
划分模块501,用于通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据;
配置模块502,用于在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
本申请实施例提供的内存保护设备,通过基于功能安全等级划分多个内存分段,并在任务调度时,为调度阶段切换到的任务配置与其功能安全等级对应的内存分段,由此可以令功能安全等级相同的任务对内存分段进行复用,能够减少内存区域的数量,简化MPU设计,避免为过多的内存分区达到内存对齐而造成空间浪费,同时也满足了功能安全的设计需求。
在一些实施例中,配置模块502具体用于:
根据所述目标任务的功能安全等级,将多个所述内存分段中功能安全等级小于或等于所述目标任务的功能安全等级的内存分段确定为目标内存分段。
在一些实施例中,划分模块501还用于:
创建目标任务,并将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中。
在一些实施例中,划分模块501具体用于:
为不同的功能安全等级分配不同的关键字;
将所述目标任务中多个变量的名称中添加所述目标任务的功能安全等级对应的关键字;
根据多个所述变量的名称中的关键字,将多个所述变量的数据存储于所述关键字对应的功能安全等级的内存分段中。
在一些实施例中,划分模块501具体用于:
通过内存保护单元MPU对内存区域进行划分,获得堆栈区域和多个内存分段;
配置模块502还用于:
在目标任务的调度阶段,配置所述目标任务对所述堆栈区域的访问权限。
在一些实施例中,划分模块501具体用于:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和全局区域;
将所述全局区域的访问权限配置为特权模式和用户模式对应的访问权限;所述全局区域用于存储特权模式和用户模式下多个任务共享的配置信息。
在一些实施例中,划分模块501具体用于:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和系统区域;
将所述系统区域的访问权限配置为特权模式对应的访问权限;所述系统区域用于存储以下中至少一项:内核代码段、内核数据段、用户代码段。
在一些实施例中,配置模块502还用于:
在目标任务的调度阶段,配置所述目标任务对于外围设备的访问权限。
在一些实施例中,所述多个内存分段包括功能安全等级QM、ASILA、ASILB、ASILC和ASILD分别对应的内存分段。
本申请实施例提供的内存保护设备,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图6为本申请实施例提供的电子设备的硬件结构示意图,该设备60可以是微控制器、ECU、汽车等
设备60可以包括以下一个或多个组件:处理组件601,存储器602,电源组件603,多媒体组件604,音频组件605,输入/输出(I/O)接口606,传感器组件607,以及通信组件608。
处理组件601通常控制设备60的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件601可以包括一个或多个处理器609来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件601可以包括一个或多个模块,便于处理组件601和其他组件之间的交互。例如,处理组件601可以包括多媒体模块,以方便多媒体组件604和处理组件601之间的交互。
存储器602被配置为存储各种类型的数据以支持在设备60的操作。这些数据的示例包括用于在设备60上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器602可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件603为设备60的各种组件提供电力。电源组件603可以包括电源管理系统,一个或多个电源,及其他与为设备60生成、管理和分配电力相关联的组件。
多媒体组件604包括在所述设备60和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件604包括一个前置摄像头和/或后置摄像头。当设备60处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件605被配置为输出和/或输入音频信号。例如,音频组件605包括一个麦克风(MIC),当设备60处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器602或经由通信组件608发送。在一些实施例中,音频组件605还包括一个扬声器,用于输出音频信号。
I/O接口606为处理组件601和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件607包括一个或多个传感器,用于为设备60提供各个方面的状态评估。例如,传感器组件607可以检测到设备60的打开/关闭状态,组件的相对定位,例如所述组件为设备60的显示器和小键盘,传感器组件607还可以检测设备60或设备60一个组件的位置改变,用户与设备60接触的存在或不存在,设备60方位或加速/减速和设备60的温度变化。传感器组件607可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件607还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件607还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件608被配置为便于设备60和其他设备之间有线或无线方式的通信。设备60可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件608经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件608还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,设备60可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器602,上述指令可由设备60的处理器609执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上内存保护设备执行的内存保护方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (14)
1.一种内存保护方法,其特征在于,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据;
在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,包括:
根据所述目标任务的功能安全等级,将多个所述内存分段中功能安全等级小于或等于所述目标任务的功能安全等级的内存分段确定为目标内存分段。
3.根据权利要求1所述的方法,其特征在于,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段之后,还包括:
创建目标任务,并将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中。
4.根据权利要求3所述的方法,其特征在于,所述将所述目标任务的任务数据存储于所述目标任务的功能安全等级对应的内存分段中,包括:
为不同的功能安全等级分配不同的关键字;
将所述目标任务中多个变量的名称中添加所述目标任务的功能安全等级对应的关键字;
根据多个所述变量的名称中的关键字,将多个所述变量的数据存储于所述关键字对应的功能安全等级的内存分段中。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得堆栈区域和多个内存分段;
所述配置所述目标任务对所述目标内存分段的访问权限之后,还包括:
在目标任务的调度阶段,配置所述目标任务对所述堆栈区域的访问权限。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和全局区域;
将所述全局区域的访问权限配置为特权模式和用户模式对应的访问权限;所述全局区域用于存储特权模式和用户模式下多个任务共享的配置信息。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段,包括:
通过内存保护单元MPU对内存区域进行划分,获得多个内存分段和系统区域;
将所述系统区域的访问权限配置为特权模式对应的访问权限;所述系统区域用于存储以下中至少一项:内核代码段、内核数据段、用户代码段。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述通过内存保护单元MPU对内存区域进行划分,获得多个内存分段之后,还包括:
在目标任务的调度阶段,配置所述目标任务对于外围设备的访问权限。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述多个内存分段包括功能安全等级QM、ASILA、ASILB、ASILC和ASILD分别对应的内存分段。
10.一种内存保护设备,其特征在于,包括:
划分模块,用于通过内存保护单元MPU对内存区域进行划分,获得多个内存分段;不同内存分段用于存储不同的功能安全等级的任务的数据;
配置模块,用于在目标任务的调度阶段,根据所述目标任务的功能安全等级,从多个所述内存分段中选定目标内存分段,并配置所述目标任务对所述目标内存分段的访问权限。
11.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至9任一项所述的内存保护方法。
12.一种汽车,其特征在于,包括如权利要求11所述的电子设备。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至9任一项所述的内存保护方法。
14.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的内存保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310310211.4A CN116451235B (zh) | 2023-03-27 | 2023-03-27 | 内存保护方法、设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310310211.4A CN116451235B (zh) | 2023-03-27 | 2023-03-27 | 内存保护方法、设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116451235A true CN116451235A (zh) | 2023-07-18 |
CN116451235B CN116451235B (zh) | 2024-04-09 |
Family
ID=87129450
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310310211.4A Active CN116451235B (zh) | 2023-03-27 | 2023-03-27 | 内存保护方法、设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116451235B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015197544A1 (de) * | 2014-06-23 | 2015-12-30 | Continental Teves Ag & Co. Ohg | Verfahren und schaltkreis zur vermeidung von speicherschutzverletzungen |
US20160283402A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Dynamic Configuration and Peripheral Access in a Processor |
WO2018127048A1 (zh) * | 2017-01-03 | 2018-07-12 | 腾讯科技(深圳)有限公司 | 数据显示方法、装置及存储介质 |
US11256631B1 (en) * | 2020-01-17 | 2022-02-22 | Ralph Crittenden Moore | Enhanced security via dynamic regions for memory protection units (MPUs) |
CN114537156A (zh) * | 2020-11-27 | 2022-05-27 | 北京新能源汽车股份有限公司 | 控制器架构及电动汽车 |
CN115422554A (zh) * | 2022-10-25 | 2022-12-02 | 支付宝(杭州)信息技术有限公司 | 请求处理方法、编译方法和可信计算系统 |
-
2023
- 2023-03-27 CN CN202310310211.4A patent/CN116451235B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015197544A1 (de) * | 2014-06-23 | 2015-12-30 | Continental Teves Ag & Co. Ohg | Verfahren und schaltkreis zur vermeidung von speicherschutzverletzungen |
US20160283402A1 (en) * | 2015-03-23 | 2016-09-29 | Intel Corporation | Dynamic Configuration and Peripheral Access in a Processor |
WO2018127048A1 (zh) * | 2017-01-03 | 2018-07-12 | 腾讯科技(深圳)有限公司 | 数据显示方法、装置及存储介质 |
US11256631B1 (en) * | 2020-01-17 | 2022-02-22 | Ralph Crittenden Moore | Enhanced security via dynamic regions for memory protection units (MPUs) |
CN114537156A (zh) * | 2020-11-27 | 2022-05-27 | 北京新能源汽车股份有限公司 | 控制器架构及电动汽车 |
CN115422554A (zh) * | 2022-10-25 | 2022-12-02 | 支付宝(杭州)信息技术有限公司 | 请求处理方法、编译方法和可信计算系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116451235B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437631B2 (en) | Operating system hot-switching method and apparatus and mobile terminal | |
US9495560B2 (en) | Polymorphic virtual appliance rule set | |
EP4016347A1 (en) | Trusted application operation method and information processing and memory allocation method and apparatus | |
CN109669723B (zh) | 硬件访问方法、装置、设备和机器可读介质 | |
CN107480554B (zh) | 一种权限管理方法、权限管理装置及智能终端 | |
JP6858256B2 (ja) | 決済アプリケーション分離方法および装置、ならびに端末 | |
EP4155949A1 (en) | Method and apparatus for isolating kernel from task | |
CN114296943A (zh) | 基于虚拟化技术的资源分配方法、装置和设备 | |
CN109992399B (zh) | 资源管理方法、装置、移动终端及计算机可读存储介质 | |
CN114218560B (zh) | 资源访问方法、装置、电子设备及存储介质 | |
CN116451235B (zh) | 内存保护方法、设备、存储介质及程序产品 | |
CN114090289A (zh) | 共享内存数据调用方法、装置、电子设备及存储介质 | |
CN114238997B (zh) | 基于车辆应用权限的资源调用方法、装置和电子设备 | |
CN110888822B (zh) | 内存处理方法、装置及存储介质 | |
CN107402784B (zh) | 应用管理方法及应用管理装置 | |
CN113496039A (zh) | 一种权限管理方法及终端 | |
CN115017473B (zh) | 授权方法及电子设备 | |
CN115828227B (zh) | 识别广告弹窗的方法、电子设备及存储介质 | |
CN114116590B (zh) | 数据获取方法、装置、车辆、存储介质和电子设备 | |
CN116661875B (zh) | 实现终端设备启动的方法及电子设备 | |
KR101338164B1 (ko) | 분산형 인터페이스를 지원하는 휴대단말장치 | |
CN116594698A (zh) | 一种系统控制方法、装置和可读存储介质 | |
CN117130698A (zh) | 一种菜单显示方法及电子设备 | |
CN114154180A (zh) | 数据共享方法和终端设备 | |
CN116933245A (zh) | 资源隔离方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |