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的芯片厂商都是通过直接提交驱动程序库的方式。用户程序运行在线程模式且处于特权模式访问等级。需要操作外设寄存器时直接调用芯片厂商提供的驱动程序库,从而达到操作硬件的目的。现有方式一直是处于线程模式特权级,用户程序执行的整个过程都是处于特权级访问等级,芯片厂商提供的驱动程序库可以供用户调用,用户程序可以通过驱动程序库来操作硬件。当程序跑飞或者用户使用其它方式直接操作外设寄存器时可能导致关系的外设影响整个系统的安全性和稳定性。因此,提供一种 ...
【技术保护点】
1.一种程序调用方法,应用于采用cortex‑m类型的芯片内核的芯片中,所述芯片带有存储保护单元;其特征在于,所述芯片内核连接一设置于所述芯片内的寄存器,通过所述芯片中的所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述外设寄存器进行访问;所述寄存器内保存有寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片内核初始处于所述线程模式下;所述程序调用方法具体包括:步骤S1,用户在运行用户程序之前,通过相应的驱动程序使能所述芯片中的所述存储保护单元,以将所述寄存器设置为处于所述特定访问模式下,同时将所述芯片内核设置为处于所述线程模式下,以及具有所述非特权访问权限;步骤S2,当用户需要通过所述用户程序访问所述外设寄存器中的所述寄存器数据时,所述芯片内核通过一服务请求程序进入所述处理模式,并被允许访问所述寄存器;步骤S3,当用户完成对所述寄存器的访问后,所述芯片内核被切换回所述线程模式 ...
【技术特征摘要】
1.一种程序调用方法,应用于采用cortex-m类型的芯片内核的芯片中,所述芯片带有存储保护单元;其特征在于,所述芯片内核连接一设置于所述芯片内的寄存器,通过所述芯片中的所述存储保护单元可将所述寄存器设置为处于一特定访问模式下,于所述特定访问模式下,所述芯片内核只有在具有特权访问权限时才能对所述外设寄存器进行访问;所述寄存器内保存有寄存器数据;所述芯片内核具有处理模式和线程模式两种工作模式,于所述处理模式下,所述芯片内核具有所述特权访问权限,于所述线程模式下,所述芯片内核具有所述特权访问权限和非特权访问权限;所述芯片内核初始处于所述线程模式下;所述程序调用方法具体包括:步骤S1,用户在运行用户程序之前,通过相应的驱动程序使能所述芯片中的所述存储保护单元,以将所述寄存器设置为处于所述特定访问模式下,同时将所述芯片内核设置为处于所述线程模式下,以及具有所述非特权访问权限;步骤S2,当用户需要通过所述用户程序访问所述外设寄存器中的所述寄存器数据时,所述芯片内核通过一服务请求程序进入所述处理模式,并被允许访问所述寄存器;步骤S3,当用户完成对所述寄存器的访问后,所述芯片内核被切换回所述线程模式,继续执行所述用户程序,并在用户需要通过所述用户程序访问所述寄存器中的寄存器数据时返回所述步骤S2。2.根据权利要求1所述的一种程序调用方法,其特征在于,所述寄存器设有操作硬件的接口,所述寄存器通过所述接口与所述芯片内核连接,所述芯片内核通过所述接口对所述寄存器写入和读取所述寄存器数据来达到操作硬件的目的。3.根据权利要求1所述的一种程序调用方法,其特征在于,所述接口被设置为一驱动程序库;所述芯片内核通过调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。4.根据权利要求3所述的一种程序调用方法,其特征在于,所述步骤S2中,所述芯片内核通过所述服务请求程序,采用系统服务调用的方式调用所述驱动程序库中的驱动程序来对所述寄存器写入和读取所述寄存器数据。5.根据权利要求4所述的一种程序调用方法,其特征在于,在所述线程模式下,所述芯片被允许从所述特权访问权限转换成所述非特权访问权限,并且被拒绝从所述非特权权...
【专利技术属性】
技术研发人员:龚进,冯旭超,秦岭,
申请(专利权)人:上海琪埔维半导体有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。