[发明专利]一种固件和用户程序隔离保护方法及终端有效
申请号: | 202011440657.1 | 申请日: | 2020-12-08 |
公开(公告)号: | CN112507399B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 许章赫;欧新木;黄继波 | 申请(专利权)人: | 福州富昌维控电子科技有限公司 |
主分类号: | G06F21/74 | 分类号: | G06F21/74;G06F21/57 |
代理公司: | 北京易捷胜知识产权代理事务所(普通合伙) 11613 | 代理人: | 蔡晓敏 |
地址: | 350000 福建省福州市鼓楼区*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用户 程序 隔离 保护 方法 终端 | ||
1.一种固件和用户程序隔离保护方法,其特征在于,包括步骤:
将SRAM划分为第一区域、第二区域和第三区域;
配置所述第一区域对固件不可写、可读和可执行,对用户程序不可读写和不可执行;
配置所述第二区域对固件和用户程序均不可写、可读和可执行;
配置所述第三区域对固件可写、可读和不可执行,对用户程序不可写、可读和可执行;
固件调用用户程序时,先切换状态到所述第二区域执行再调用用户程序;
用户程序调用固件时,先切换状态到所述第二区域执行再调用固件的系统程序。
2.根据权利要求1所述的固件和用户程序隔离保护方法,其特征在于,所述的固件调用用户程序时,先切换状态到所述第二区域执行再调用用户程序具体为:
固件调用用户程序时,先通过SVC异常切换到用户态,新建与所述用户态相对应的第一堆栈;
将要调用的用户程序的地址和参数压入所述第一堆栈中,并调用所述第二区域的第一函数执行所述用户程序;
执行完成后,将返回值作为SVC异常的参数,SVC异常切换回特权态,完成用户程序的调用。
3.根据权利要求1所述的固件和用户程序隔离保护方法,其特征在于,所述的用户程序调用固件时,先切换状态到所述第二区域执行再调用固件具体为:
用户程序调用固件时,先调用SVC异常切换到特权态,新建与所述特权态相对应的第二堆栈;
将要调用的系统程序的编号和参数压入所述第二堆栈中,并调用所述第二区域的第二函数执行所述系统程序;
执行完成后,将执行结果作为SVC异常的参数,SVC异常切换回用户态,完成固件的调用。
4.一种固件和用户程序隔离保护终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
将SRAM划分为第一区域、第二区域和第三区域;
配置所述第一区域对固件不可写、可读和可执行,对用户程序不可读写和不可执行;
配置所述第二区域对固件和用户程序均不可写、可读和可执行;
配置所述第三区域对固件可写、可读和不可执行,对用户程序不可写、可读和可执行;
固件调用用户程序时,先切换状态到所述第二区域执行再调用用户程序;
用户程序调用固件时,先切换状态到所述第二区域执行再调用固件的系统程序。
5.根据权利要求4所述的固件和用户程序隔离保护终端,其特征在于,所述的固件调用用户程序时,先切换状态到所述第二区域执行再调用用户程序具体为:
固件调用用户程序时,先通过SVC异常切换到用户态,新建与所述用户态相对应的第一堆栈;
将要调用的函数的地址和参数压入所述第一堆栈中,并调用所述第二区域的第一函数执行所述用户程序;
执行完成后,将返回值作为SVC异常的参数,SVC异常切换回特权态,完成用户程序的调用。
6.根据权利要求4所述的固件和用户程序隔离保护终端,其特征在于,所述的用户程序调用固件时,先切换状态到所述第二区域执行再调用固件具体为:
用户程序调用固件时,先调用SVC异常切换到特权态,新建与所述特权态相对应的第二堆栈;
将要调用的系统程序的编号和参数压入所述第二堆栈中,并调用所述第二区域的第二函数执行所述系统程序;
执行完成后,将执行结果作为SVC异常的参数,SVC异常切换回用户态,完成固件的调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州富昌维控电子科技有限公司,未经福州富昌维控电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011440657.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:立体机械车库的停车管理系统
- 下一篇:一种圆形零件加工用固定结构