一种闪存控制器和闪存控制器的控制方法_4

文档序号:8282224阅读:来源:国知局
针对当前工作分区的指令所对应的数据访问都完成。以ARM Cortex-M3为例,等待时间可设置为20个CPU时钟周期。
[0129]第二部分:读保护的定义及使用方法。
[0130]在本发明的一种优选实施例中,所述MCU芯片可以包括闪存信息区,所述闪存信息区可以包括选项字节;所述闪存用户区可以具有读保护级别,所述若干分区可以分别具有对应的读保护状态;所述的方法还可以包括如下:
[0131]依据所述选项字节确定所述闪存用户区的读保护级别和各个分区的读保护状态。读保护的作用是限制各种调试手段对闪存用户区的访问。各种调试手段指,从除闪存用户区之外的其他位置启动,以及JTAG(Joint Test Act1n Group,联合测试工作组)等调试手段。在所述各种读保护级别和读保护状态下,从闪存用户区启动时,CPU都可以按分区保护工作方式访问闪存用户区。
[0132]读保护级别分为三级,分别是零级、一级和二级。读保护状态仅在一级读保护下有效,闪存用户区的每个分区都有对应的读保护状态,若干个分区对应的读保护状态可以同时有效或同时无效。选项字节控制读保护级别和读保护状态的方法随意,只要能区分不同的读保护级别和读保护状态并且方便读保护级别和读保护状态按上述要求切换即可。作为实施例介绍一种控制方法如下。由一个字节来控制读保护级别:当该字节为0xA5(0x代表A5是十六进制数)时,读保护级别为零级;当该字节为OxFF时,读保护级别为一级;当该字节为0x5A时,读保护级别为二级。由η个字节来分别控制η个分区对应的读保护状态:当其中某字节为OxFF时,对应分区的读保护状态为无效;当其中某字节为0x00时,对应分区的读保护状态为有效。
[0133]读保护级别和读保护状态的特征如下:
[0134]零级读保护是MCU芯片的出厂设置。在此级别下,闪存用户区可以接受各种调试手段的访问;选项字节可以接受读、写和擦除操作。
[0135]一级读保护是给合作开发程序的若干家公司用的。在此级别下,闪存用户区的每个分区都有对应的读保护状态。当读保护状态为无效时,对应分区可以接受各种调试手段的访问;当读保护状态为有效时,对应分区不能接受任何调试手段的访问。芯片的出厂设置是每个分区的读保护状态都为无效。选项字节可以接受读、写和擦除操作。也就是说,读保护状态和读保护级别都可以随意更改。但是,如果将已配置为有效的读保护状态更改为无效,对应分区的内容会在读保护状态变为无效之前自动被全部擦除;如果将读保护级别更改为零级,整个闪存用户区的内容会在读保护级别变为零级之前自动被全部擦除。
[0136]二级读保护是MCU芯片交到终端客户手中的形态。在此级别下,所有调试手段均不可用;选项字节只接受读操作,不接受写操作和擦除操作。
[0137]第三部分:私有设备的实现方法。
[0138]在本发明的一种优选实施例中,所述MCU芯片可以设计有私有设备,所述若干分区可以分别具有对应的分区使能信号,所述私有设备可以用于在接收到所述分区使能信号时正常工作。
[0139]在本发明实施例中,私有设备是通过闪存控制器输出的分区使能信号控制的设备。每个分区可以对应I比特分区使能信号。分区使能信号表示对应分区处于工作状态。例如,分区使能信号在对应分区的分区工作状态和分区过渡状态下为1,其他状态下为O。控制的方法就是根据特定分区使能信号的状态,开启或关闭相应设备的部分或全部功能。
[0140]例如,若想让某私有SRAM只允许主公司的程序读,可以用主分区使能信号来作为SRAM读通路的使能信号;若想让某私有设备的运算结果寄存器只允许某个从公司的程序读,可以用该从公司对应的从分区使能信号来选通结果寄存器的读通路;若想让某私有设备只允许主公司的程序配置,可以用主分区使能信号来作为设备寄存器的配置使能信号。
[0141]当然,在实际中也可以不设计私有设备。比如全部的设备可以为共享,本发明实施例对此不加以限制。
[0142]参照图4,示出了本发明的一种闪存控制器的控制实施例的步骤流程图,所述闪存控制器可以包括指令总线接口、数据总线接口、配置寄存器、擦除访问过滤单元、读写访问过滤单元和闪存控制单元;
[0143]步骤201,采用所述读写访问过滤单元接收控制信息;当接收到来自指令总线接口或数据总线接口的读写访问时,根据所述控制信息判断是否将所述读写访问传送给闪存控制单元;
[0144]步骤202,采用所述擦除访问过滤单元接收控制信息;当接收到来自配置寄存器的擦除访问时,根据所述控制信息判断是否将所述擦除访问传送给闪存控制单元;
[0145]步骤203,采用所述闪存控制单元根据所述读写访问或擦除访问完成针对闪存的访问。
[0146]在本发明的一种优选实施例中,所述闪存包括闪存用户区和闪存信息区,所述闪存控制单元针对闪存的访问包括对闪存用户区的访问和对闪存信息区的访问,所述控制信息包括分区保护工作方式、读保护级别和读保护状态,所述闪存控制器还包括分区保护控制单元和读保护控制单元;所述的方法还可以包括如下步骤:
[0147]采用读保护控制单元接收选项字节;判断当前对所述闪存用户区的访问是否来自调试手段,以及根据所述选项字节确定读保护级别和读保护状态;将所述读保护级别、读保护状态以及当前对所述闪存用户区的访问是否来自调试手段等控制信息传送给所述擦除访问过滤单元和所述读写访问过滤单元;所述访问包括读写访问和擦除访问;
[0148]采用分区保护控制单元确定当前的分区保护工作方式。
[0149]在本发明的一种优选实施例中,所述闪存控制器还包括选项字节镜像和调试手段监测单元;所述的方法还可以包括如下步骤:
[0150]采用选项字节镜像复制所述闪存信息区中的选项字节;
[0151]采用调试手段监测单元监测当前对所述闪存用户区的访问是否来自调试手段。
[0152]在本发明的一种优选实施例中,所述闪存控制器包括内部总线矩阵,所述读写访问包括需要立即响应的读写访问,需要延迟响应的读写访问,以及不需要响应的读写访问;所述的方法还可以包括如下步骤:
[0153]采用读写访问过滤单元在判断为需要立即响应的读写访问时,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接口;
[0154]和/ 或,
[0155]采用读写访问过滤单元在判断为需要延迟响应的读写访问时,在延迟指定的时间后,通过内部总线矩阵传送给闪存控制单元,在所述闪存控制单元根据所述读写访问完成针对闪存的访问时,产生正确完成响应信号并传送给相应的指令总线接口或数据总线接P ;
[0156]和/ 或,
[0157]采用读写访问过滤单元在判断为不需要响应的读写访问时,产生错误完成响应信号并传送给相应的指令总线接口或数据总线接口。
[0158]在本发明的一种优选实施例中,所述读写访问包括更改选项字节的访问;所述的方法还可以包括如下步骤:
[0159]采用读写访问过滤单元在所述读写访问为更改选项字节的访问时,将所述更改选项字节的访问传送给选项字节镜像。
[0160]在本发明的一种优选实施例中,所述擦除访问包括需要响应的擦除访问和不需要响应的擦除访问;所述的方法还可以包括如下步骤:
[0161]采用擦除访问过滤单元在判断为需要响应的擦除访问时,将所述需要响应的擦除访问传送给所述闪存控制单元,在闪存控制单元根据所述擦除访问完成针对闪存的访问时,产生成功擦除响应信号并传送给所述配置寄存器;
[0162]和/ 或,
[0163]采用擦除访问过滤单元在判断为不需要响应的擦除访问时,产生失败擦除响应信号并传送给所述配置寄存器。
[0164]在本发明的一种优选实施例中于,所述配置寄存器包括擦除访问完成状态位;
[0165]采用配置寄存器在接收到所述成功擦除响应信号或者所述失败擦除响应信号时,更改所述擦除访问完成状态位;
[0166]在本发明的一种优选实施例中,所述配置寄存器包括出错标志位;所述的方法还可以包括如下步骤:
[0167]采用配置寄存器在接收到所述失败擦除响应信号时,更改所述出错标志位。
[0168]在本发明的一种优选实施例中,所述内部总线矩阵为指令总线和数据总线的互联矩阵。
[0169]在本发明的一种优选实施例中,所述闪存控制器包括主控单元,所述的方法还包括:
[0170]采用所述主控单元控制闪存控制器各个模块协调工作。
[0171]需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0172]本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0173]以上对本发明所提供的一种闪存控制器和一种闪存控制器控制的方法,进行了详细介绍,本文中应用了具体个例
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1