一种程序调用方法技术

技术编号:20992271 阅读:21 留言:0更新日期:2019-04-29 22:20
本发明专利技术公开了一种程序调用方法,应用于采用cortex‑m类型的芯片内核的芯片中,芯片中设置一存储保护单元,芯片内核连接一寄存器,用户通过用户程序使能存储保护单元,以将寄存器设置为处于特定访问模式下,当用户需要通过用户程序访问寄存器中的代码数据时,芯片被切换至处理模式;当用户完成对寄存器的访问后,芯片被切换回线程模式,继续执行用户程序,并在用户需要通过用户程序访问寄存器中的代码数据时返回步骤S2。使用本发明专利技术可以缩短用户的开发时间,提高用户程序的稳定性、可靠性。用户通过发起SVC服务间接操作外设寄存器,可以避免用户操作外设寄存器时出错,缩短开发时间,此方式可保证程序不会误操作对系统非常关键的外设寄存器,提高系统的安全性。

A Program Call Method

The invention discloses a program invocation method, which is applied to chips using cortex M type chip kernels. A memory protection unit is set in the chip, the chip kernels are connected with a register, and the user can store the protection unit through a user program to set the register in a specific access mode, when the user needs to access the code data in the register through a user program. When the user completes the access to the register, the chip is switched back to the thread mode and continues to execute the user program. When the user needs to access the code data in the register through the user program, the chip returns to 2. The invention can shorten the development time of users and improve the stability and reliability of user programs. By initiating SVC service to operate peripheral registers indirectly, users can avoid errors when they operate peripheral registers and shorten the development time. This way can ensure that the program does not misoperate peripheral registers which are very critical to the system and improve the security of the system.

【技术实现步骤摘要】
一种程序调用方法
本专利技术涉及本专利技术属于集成电路芯片的安全性设计领域,尤其涉及一种程序调用方法。
技术介绍
芯片上都会集成许多功能,要使用这些功能就需要对芯片的外设寄存器进行读写。也就是说程序想要实现芯片各种各样的功能就离不开对这些外设寄存器的访问。由于程序的缺陷或者工作环境的干扰,程序有可能会出现没有意料到的对外设寄存器的错误访问,从而产生没有意料到的结果。通常cortex-m的芯片供应商提供的驱动程序库都是让用户程序运行在特权级访问模式,即用户程序可以直接访问外设寄存器。因为程序处在特权级访问模式可以直接访问外设寄存器,当程序跑飞时,也可以直接操作外设寄存器。这样有可能会导致对系统安全性和稳定性有关键作用的外设被误操作。为解决此类问题,使用Cortex-m3设备时可以利用MPU模块的保护功能。Cortex-m芯片有MPU模块可以将外设寄存器设置为不同的访问权限。如将外设寄存器设置为特权级模式下可以访问,非特权级模式下禁止访问。在此种情况下用户程序就会因为处在非特权级访问模式下无法操作外设寄存器。现有的cortex-m的芯片厂商都是通过直接提交驱动程序库的方式。用户程序运行在线程模式且处于特权模式访问等级。需要操作外设寄存器时直接调用芯片厂商提供的驱动程序库,从而达到操作硬件的目的。现有方式一直是处于线程模式特权级,用户程序执行的整个过程都是处于特权级访问等级,芯片厂商提供的驱动程序库可以供用户调用,用户程序可以通过驱动程序库来操作硬件。当程序跑飞或者用户使用其它方式直接操作外设寄存器时可能导致关系的外设影响整个系统的安全性和稳定性。因此,提供一种更稳定可靠程序调用方法是本领域技术人员亟待解决的问题。
技术实现思路
针对所述技术的不足,本专利技术要解决的问题,提供一种更稳定更可靠的程序调用方法。为实现上述目的,本专利技术通过以下方案来实现。一种程序调用方法,应用于采用cortex-m类型的芯片内核的芯片中,所述芯片带有存储保护单元;其中,所述芯片内核连接一设置于所述芯片内的寄存器,通过所述芯片中的所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述外设寄存器进行访问;所述寄存器内保存有寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片内核初始处于所述线程模式下;所述程序调用方法具体包括:步骤S1,用户在运行用户程序之前,通过相应的驱动程序使能所述芯片中的所述存储保护单元,以将所述寄存器设置为处于所述特定访问模式下,同时将所述芯片内核设置为处于所述线程模式下,以及具有所述非特权访问权限;步骤S2,当用户需要通过所述用户程序访问所述外设寄存器中的所述寄存器数据时,所述芯片内核通过一服务请求程序进入所述处理模式,并被允许访问所述寄存器;步骤S3,当用户完成对所述寄存器的访问后,所述芯片内核被切换回所述线程模式,继续执行所述用户程序,并在用户需要通过所述用户程序访问所述寄存器中的寄存器数据时返回所述步骤S2。优选的,该一种程序调用方法,其中,所述寄存器设有操作硬件的接口,所述寄存器通过所述接口与所述芯片内核连接,所述芯片内核通过所述接口对所述寄存器写入和读取所述寄存器数据来达到操作硬件的目的。优选的,该一种程序调用方法,其中,所述接口被设置为一驱动程序库;所述芯片内核通过调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。优选的,该一种程序调用方法,其中,所述步骤S2中,所述芯片内核通过所述服务请求程序,采用系统服务调用的方式调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。优选的,该一种程序调用方法,其中,在所述线程模式下,所述芯片被允许从所述特权访问权限转换成所述非特权访问权限,并且被拒绝从所述非特权权限转换成所述特权访问权限。一种芯片管理系统,适用于采用cortex-m类型的芯片内核的芯片,所述芯片内设置有存储保护单元;其中,所述芯片内核连接一寄存器;通过所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述寄存器进行访问;所述寄存器内保存有程序开发的寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片初始处于所述线程模式下;所述芯片管理系统包括:使能单元,连接所述存储保护单元,在用户启动用户程序之前,通过所述使能单元使能所述存储保护单元,以将所述外设寄存器设置为处于所述特定访问模式下,并且通过所述芯片内部设置的寄存器将所述芯片配置为处于所述非特权访问权限;切换单元,当用户需要通过所述用户程序访问所述外设寄存器的寄存器数据时,所述切换单元通过一服务请求程序将所述芯片内核切换至所述处理模式,所述芯片内核被允许访问所述寄存器,以及当用户完成对所述寄存器的访问后,所述切换单元将所述芯片内核切换回所述线程模式,所述芯片继续执行所述用户程序。优选的,该一种芯片管理系统,其中,所述寄存器设有操作硬件的接口,所述寄存器通过所述接口与所述芯片内核连接,所述芯片内核通过所述接口对所述寄存器写入和读取所述寄存器数据来达到操作硬件的目的。优选的,该一种芯片管理系统,其中,所述接口被设置为一驱动程序库;所述芯片内核通过所述服务请求程序,采用系统服务调用的方式调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。优选的,该一种芯片管理系统,其中,在所述线程模式下,所述芯片内核被允许从所述特权访问权限转换成所述非特权访问权限,并且被拒绝从所述非特权权限转换成所述特权访问权限。一种芯片,其中,采用上述的程序调用方法进行工作。一种芯片,其中,包括上述的芯片管理系统。本专利技术的优点在于:本专利技术可在用户使用Cortex-m内核的芯片进行程序开发时,使用该方法可以缩短用户的开发时间,提高用户程序的稳定性、可靠性。用户程序无法直接操作外设寄存器,而是通过发起SVC服务间接操作外设寄存器,操作外设寄存器的具体代码无需用户完成,可以避免用户操作外设寄存器时出错,用户无需了解芯片外设寄存器的具体细节,缩短开发时间,嵌入式产品的工作环境非常复杂,在异常恶劣的环境下可能导致程序运行异常,此方式可保证程序不会误操作对系统非常关键的外设寄存器,提高系统的安全性。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1是本专利技术一种程序调用方法实施例的流程图;图2是本专利技术一种芯片管理系统实施例的结构示意图;图3是本专利技术一种程序调用方法实施例的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例本文档来自技高网
...

【技术保护点】
1.一种程序调用方法,应用于采用cortex‑m类型的芯片内核的芯片中,所述芯片带有存储保护单元;其特征在于,所述芯片内核连接一设置于所述芯片内的寄存器,通过所述芯片中的所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述外设寄存器进行访问;所述寄存器内保存有寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片内核初始处于所述线程模式下;所述程序调用方法具体包括:步骤S1,用户在运行用户程序之前,通过相应的驱动程序使能所述芯片中的所述存储保护单元,以将所述寄存器设置为处于所述特定访问模式下,同时将所述芯片内核设置为处于所述线程模式下,以及具有所述非特权访问权限;步骤S2,当用户需要通过所述用户程序访问所述外设寄存器中的所述寄存器数据时,所述芯片内核通过一服务请求程序进入所述处理模式,并被允许访问所述寄存器;步骤S3,当用户完成对所述寄存器的访问后,所述芯片内核被切换回所述线程模式,继续执行所述用户程序,并在用户需要通过所述用户程序访问所述寄存器中的寄存器数据时返回所述步骤S2。...

【技术特征摘要】
1.一种程序调用方法,应用于采用cortex-m类型的芯片内核的芯片中,所述芯片带有存储保护单元;其特征在于,所述芯片内核连接一设置于所述芯片内的寄存器,通过所述芯片中的所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述外设寄存器进行访问;所述寄存器内保存有寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片内核初始处于所述线程模式下;所述程序调用方法具体包括:步骤S1,用户在运行用户程序之前,通过相应的驱动程序使能所述芯片中的所述存储保护单元,以将所述寄存器设置为处于所述特定访问模式下,同时将所述芯片内核设置为处于所述线程模式下,以及具有所述非特权访问权限;步骤S2,当用户需要通过所述用户程序访问所述外设寄存器中的所述寄存器数据时,所述芯片内核通过一服务请求程序进入所述处理模式,并被允许访问所述寄存器;步骤S3,当用户完成对所述寄存器的访问后,所述芯片内核被切换回所述线程模式,继续执行所述用户程序,并在用户需要通过所述用户程序访问所述寄存器中的寄存器数据时返回所述步骤S2。2.根据权利要求1所述的一种程序调用方法,其特征在于,所述寄存器设有操作硬件的接口,所述寄存器通过所述接口与所述芯片内核连接,所述芯片内核通过所述接口对所述寄存器写入和读取所述寄存器数据来达到操作硬件的目的。3.根据权利要求1所述的一种程序调用方法,其特征在于,所述接口被设置为一驱动程序库;所述芯片内核通过调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。4.根据权利要求3所述的一种程序调用方法,其特征在于,所述步骤S2中,所述芯片内核通过所述服务请求程序,采用系统服务调用的方式调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。5.根据权利要求4所述的一种程序调用方法,其特征在于,在所述线程模式下,所述芯片被允许从所述特权访问权限转换成所述非特权访问权限,并且被拒绝从所述非特权权...

【专利技术属性】
技术研发人员:龚进冯旭超秦岭
申请(专利权)人:上海琪埔维半导体有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1