一种mcu芯片的信息保护方法和装置的制造方法_3

文档序号:8319087阅读:来源:国知局
作的。CPU通过指令总线取得要执行的指令,经过指令解析得出是否需要数据访问以及需要访问哪个地址的数据,然后通过数据总线完成相应数据访问。
[0093]从指令总线读取指令到数据总线完成相应数据访问要经过若干周期。过渡状态的作用就是在阻止针对其他分区的指令总线访问完成的同时,让之前针对当前工作分区的指令所对应的数据访问都完成,然后再跳转到新的工作分区。等待时间需足够长,以确保之前针对当前工作分区的指令所对应的数据访问都完成。以ARM Cortex-M3为例,等待时间可设置为20个CPU时钟周期。
[0094]第二部分:读保护级别的定义及使用方法。
[0095]在本发明的一种优选实施例中,所述MCU芯片可以包括闪存信息区,所述闪存信息区可以包括选项字节;所述的方法还可以包括如下步骤:
[0096]步骤S11,依据所述选项字节确定所述闪存用户区的读保护状态;
[0097]步骤S12,若为零级读保护状态,则允许对所述闪存用户区进行读取、写入和擦除;
[0098]步骤S13,若为一级读保护状态,则允许对所述第一分区进行读取、写入和擦除,仅在所述闪存用户区启动时允许对所述第二分区进行读取、写入和擦除;
[0099]步骤S14,若为二级读保护状态,则仅在所述闪存用户区启动时允许对所述第一分区和第二分区进行读取、写入和擦除。
[0100]在本发明的一种优选实施例中,其特征在于,
[0101]在所述零级读保护状态下,所述选项字节允许修改;
[0102]在所述一级读保护状态下,所述选项字节允许修改,若基于所述选项字节从所述一级读保护状态修改为零级读保护状态,则所述闪存用户区中的全部信息将被擦除(为确保闪存用户区的内容不被窃取,用户区内容擦除完毕之后,零级读保护才生效)。
[0103]在所述二级读保护状态下,所述选项字节禁止修改。
[0104]在具体实现中,读保护级别可以由闪存信息区中的若干字节来控制,这些字节为选项字节。在本发明实施例中对于控制的方法随意,只要能区分不同的读保护级别并且方便读保护级别之间的切换即可。例如,用I个字节来控制,当该字节的值为A5时,读保护状态为零级;当该字节的值为CC时,读保护级别为二级;当该字节为除A5和CC之外的其他值时,读保护级别为一级。
[0105]在MCU芯片程序的开发过程中,读保护级别的使用方法可以为如下所示。刚出厂的MCU芯片先交到第二公司,此时读保护级别为零级保护状态,闪存用户区是空的。第二公司将他们开发的程序烧写到闪存用户区的第二分区中。第二公司可以在零级读保护状态下调试程序。正式生产时,第二公司要在把芯片交给第一公司之前将读保护级别修改为一级读保护。第一公司将他们开发的程序烧写到闪存用户区的第一分区。此时,闪存用户区的第一分区存有第一公司的程序,第二分区存有第二公司的程序,读保护级别为一级读保护。第一公司要在此状态下完成两家公司程序的联合调试。正式生产时,第一公司要在把芯片交给客户之前将读保护级别修改为二级读保护。
[0106]第三部分:私有设备的实现方法。
[0107]在本发明的一种优选实施例中,所述MCU芯片可以根据特定需求设计私有设备,仅在输出有第一分区使能信号时正常工作的私有设备为第一设备,以及,仅在输出有第二分区使能信号时正常工作的私有设备为第二设备;所述方法还可以包括如下步骤:
[0108]步骤S21,若处于所述第一分区工作状态,或者,第一分区过渡状态,则输出第一分区使能信号;
[0109]步骤S22,若处于所述第二分区工作状态,或者,第二分区过渡状态,则输出第二分区使能信号。
[0110]在本发明实施例中,私有设备是通过闪存控制器输出的分区使能信号控制的设备。每个分区可以对应I比特分区使能信号。分区使能信号表示对应分区处于工作状态。第一分区使能信号在第一分区工作状态和第一分区过渡状态下为1,其他状态下为O ;第二分区使能信号在第二分区工作状态和第二分区过渡状态下为1,其他状态下为O。控制的方法就是根据特定分区使能信号的状态,开启或关闭相应设备的部分或全部功能。
[0111]例如,若想让某私有SRAM只允许第一公司的程序读,可以用第一分区使能信号来作为SRAM读通路的使能信号;若想让某私有设备的运算结果寄存器只允许第二公司的程序读,可以用第二分区使能信号来选通结果寄存器的读通路;若想让某私有设备只允许第一公司的程序配置,可以用第一分区使能信号来作为设备寄存器的配置使能信号。
[0112]当然,在实际中也可以不设计私有设备。比如全部的设备可以为共享,本发明实施例对此不加以限制。
[0113]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0114]参照图4,示出了本发明的一种MCU芯片的信息保护装置实施例的结构框图,所述MCU芯片可以包括指令总线、数据总线、闪存控制器和闪存用户区。所述闪存控制器用于将闪存用户区划分为第一分区和第二分区;具体可以包括如下单元:
[0115]第一判断单元201,用于当所述指令总线访问所述闪存用户区时,判断所述指令总线是否访问所述第一分区;若是,则调用第一进入单元202 ;
[0116]第一进入单元202,用于进入第一分区工作状态;在所述第一分区工作状态下,允许所述指令总线访问所述闪存用户区,允许所述数据总线访问所述第一分区,但禁止所述数据总线访问所述第二分区;
[0117]在本发明的一种优选实施例中,所述第一分区位于闪存用户区的前半段地址空间,所述第二分区位于闪存用户区的后半段地址空间。
[0118]第二进入单元203,用于当处于所述第一分区工作状态下,所述指令总线访问所述第二分区,则进入过渡状态;在所述过渡状态下,暂停所述指令总线访问所述闪存用户区,允许所述数据总线访问所述第一分区,但禁止所述数据总线访问所述第二分区;
[0119]第二判断单元204,用于判断处于所述过渡状态下的时间是否达到预设的等待时间;若是,则调用第三进入单元205 ;
[0120]第三进入单元205,用于进入第二分区工作状态;在所述第二分区工作状态下,允许所述指令总线访问所述闪存用户区,禁止所述数据总线访问所述第一分区,但允许所述数据总线访问所述第二分区。
[0121]在本发明的一种优选实施例中,所述MCU芯片包括CPU,所述CPU为哈佛结构;所述预设的等待时间与CPU的特性相关;若所述CPU为ARM Cortex-M3,则所述预设的等待时间为20个CPU时钟周期。
[0122]在本发明的一种优选实施例中,所述装置还可以包括如下单元:
[0123]第四进入单元,用于在所述MCU芯片复位后,进入初始状态;在所述初始状态下,允许所述指令总线访问所述闪存用户区,禁止所述数据总线访问所述第一分区和第二分区。
[0124]在本发明的一种优选实施例中,所述MCU芯片包括闪存信息区,所述闪存信息区包括选项字节;所述的装置还可以包括如下单元:
[0125]确定单元,用于依据所述选项字节确定所述闪存用户区的读保护状态;
[0126]第一保护单元,用于在为零级读保护状态时,允许对所述闪存用户区进行读取、写入和擦除;
[0127]第二保护单元,用于在为一级读保护状态时,允许对所述第一分区进行读取、写入和擦除,仅在所述闪存用户区启动时允许对所述第二分区进行读取、写入和擦除;
[0128]第三保护单元,用于在为二级读保护状态时,仅在所述闪存用户区启动时允许对所述第一分区和第二分区进行读取、写入和擦除。
[0129]在本发明的一种优选实施例中,
[0130]在所述零级读保护状态下,所述选项字节允许修改;
[0131]在所述一级读保护状态下,所述选项字节允许修改,若基于所述选项字节从所述一级读保护状态修改为零级读保护状态,则所述闪存用户区中的全部信息将被擦除;
[0132]在所述二级读保护状态下,所述选项字节禁止修改。
[0133]在本发明的一种优选实施例中,所述MCU芯片可以根据特定需求设计私有设备,仅在输出有第一分区使能信号时正常工作的私有设备为第一设备,以及,仅在输出有第二分区使能信号时正常工作的私有设备为第二设备;所述装置还包括:
[0134]第一输出单元,用于在处于所述第一分区工作状态,或者,第一分区过渡状态时,输出第一分区使能信号;
[0135]第二输出单元,用于在处于所述第二分区工作状态,或者,第二分区过渡状态时,输出第二分区使能信号。
[0136]在本发明的一种优选实施例中,所述外围设备可以包括静态随机存储器SRAM。
[0137]对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0138]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0139]本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0140]本
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1