首页 / 提高nor flash控制器可靠性方法、系统、设备及存储介质

提高nor flash控制器可靠性方法、系统、设备及存储介质实质审查 发明

技术领域

[0001] 本发明涉及计算机技术领域,尤其涉及提高nor flash控制器可靠性方法、系统、设备及存储介质。

相关背景技术

[0002] 在soc系统中,系统可以从nor flash直接读取数据,进行启动,因此nor flash的可靠读取越来越受到关注。
[0003] 在现有的soc系统中,flash分为3byte、4byte模式,用于扩大nor flash的地址空间,系统上电时nor flash控制器与nor flash默认为3byte模式,通过软件配置可以调整为4byte模式,复位时要通过软件配置flash控制器与硬件复位flash或软件配置flash控制器与flash方式保证flash控制器与flash模式保持一致。
[0004] 现有nor flash控制器缺点为系统复位或外部复位时需要软件配置控制器、硬件复位flash才能正常重启,增加软件与硬件复杂度。

具体实施方式

[0037] 以下参照附图说明各种实施例及/或各形态。在以下说明中,以说明为目的公开了多个具体细节以整体上理解一个以上的形态。但是,本领域的技术人员可以理解在没有具体细节的情况下也可以实施这些形态。在以下的记载及附图中将详细说明一个以上的形态的特定例示。但是,这些形态是例示而已,可以利用各种形态的原理中各种方法中的一部分,所阐述的说明旨在包括所有形态及其等同物。具体地,在本说明书中使用的术语“实施例”、“例”、“形态”、“例示”等可以被解释为所描述的任意形态或设计可以比其他形态或设计更好或具有优点。
[0038] 另外,各种形态及特征可通过包括一个以上的装置、终端、服务器、设备、组件及/或模块等的系统体现。应理解并认识各种系统可包括额外的多个装置、终端、服务器、设备、组件及/或模块,并且/或也可以不包括图中所示的多个装置、终端、服务器、设备、组件、模块等的全部。
[0039] 在本说明书中使用的术语“计算机程序”、“组件”、“模块”、“系统”等可以互换使用,并且计算机‑相关实体、硬件、固件、软件、软件及硬件的组合或指软件的执行。例如,组件可以是在处理器上执行的处理过程、处理器、客体、执行线程、程序及/或计算机,但不限定于此。例如,可以是在计算机装置执行的应用程序及/或计算装置所有组件。一个以上的组件可以安装在处理器及/或执行线程内。一个组件可以在一个计算机中本地化。一个组件也可以在两个以上的计算机之间分配。
[0040] 并且,这些组件可由在内部存储各种数据构造的各种计算机可读介质执行。这些组件,例如可根据具有一个以上的数据包的信号(例如,在本地系统、分散系统上通过与其他组件相互作用的一个组件发出的数据及信号与其他系统通过互联网等网络传输的数据)通过本地及/或远程处理通信。
[0041] 以下,与图面符号无关,对相同或类似的构成要素赋予相同的符号,并省略对此的重复说明。并且,在说明本说明书中公开的实施例时,若判断对公知技术的具体说明会使本发明的要旨不明确,则省略对其的详细说明。并且,附图仅为了更容易理解在本说明书中公开的实施例,本说明书中公开的技术思想并不限定于附图。
[0042] 在本说明书中使用的术语是为了说明这些实施例的,而不是限制本发明。在没有特别提及的情况下,本说明书中的单数表现包括复数表现。在说明书中使用的“包含(comprises)”及/或“包含的(comprising)”被提及的构成要素以外不排除一个以上的其他构成要素的存在或附加。
[0043] 第一、第二等术语可用于说明多种元件或构成要素,但所述元件或构成要素并不局限于所述术语。所述术语以从其他元件或构成要素区分一个元件或构成要素而使用。因此,在以下提及的第一元件或构成要素当然也可以是本发明的技术思想内的第2元件或构成要素。
[0044] 若没有其他定义,在本说明书中使用的所有术语(包括技术及科学术语)可以用于本发明所属领域的领域技术人员共通理解的含义。另外,在一般使用的词典上被定义的术语,若没有特别明确定义,则不应以理想性或过度解释。
[0045] 另外,术语“或”的意思不是排他的“或”而是包含的“或”。即,除非有其他特定或文脉上不明确时“X利用A或B”意味着自然内涵的替换之一。即,X利用A或;X利用B或X利用A及B时,“X利用A或B”可以上面的任何情况。并且,应理解在本说明书中使用的“及/或”的术语指代包括在例举的相关项目中的一个以上项目可能的所有组合。
[0046] 另外,在本说明书中使用的术语“信息”及“数据”通常可互换使用。
[0047] 在以下说明中使用的对构成要素的后缀“模块”及“部”,只是为了方便撰写说明书而赋予或混用的,其本身并没有相互区别的含义或作用。
[0048] 现有nor flash控制器缺点为系统复位或外部复位时需要软件配置控制器、硬件复位flash才能正常重启,增加软件与硬件复杂度。
[0049] 本发明主要通过优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0050] 具体地,下面结合附图,对本发明实施例作进一步阐述。
[0051] 请参阅图1,图1是本发明实施例提供的一种提高nor flash控制器可靠性方法的流程图,如图1所示,该提高nor flash控制器可靠性方法包括步骤S10至步骤S20。
[0052] S10、获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动;
[0053] S20、若启动成功,控制wdt进行关断,wdt停止计时;
[0054] 若不能给启动成功,则不会关断wdt,wdt计时到达时,切换flash控制器从3byte模式读取到4byte模式读取,同时复位cpu;然后flash控制器获取第二读指令,flash控制器根据获取的第二读指令以4byte模式读取flash进行二次启动,若不能再次启动成功,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0055] 本发明的启动方式能够在自动在两种模式下进行启动。
[0056] 其中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动同样复位cpu。
[0057] 在本发明的实施例中,flash控制器获取第一读指令,包括flash控制器获取cpu发出的第一读指令。
[0058] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0059] flash控制器将获取的第一读取指令传递给cpu,判断读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时。
[0060] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0061] flash控制器将获取的读取指令传递给cpu,判断读取指令是否正确,若不正确,若不正确则不会关断wdt,wdt计时到达时,切换flash控制器从3byte到4byte,同时复位cpu。
[0062] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0063] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时,则启动成功。
[0064] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0065] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若不正确,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0066] 在本发明的实施例中,获取reboot命令,根据reboot命令完成复位cpu和启动flash控制器的wdt操作。
[0067] 具体的,获取reboot命令,根据reboot命令flash控制器获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动。
[0068] 具体的,在系统reboot时,cpu发出第一读指令,flash控制器获取第一读指令后读取flash返回指令,且flash控制器返回指令后发送到cpu执行,然后进行启动,完成复位cpu、启动flash控制器的wdt操作。
[0069] 本发明主要通过优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0070] 应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0071] 在一个实施例中,参见图2所示,在本发明的实施例中还提供了提高nor flash控制器可靠性系统,该系统包括Flash100、flash控制器200、WDT300和CPU400。
[0072] 所述Flash100,用于储存数据。
[0073] 所述flash控制器200,用于接受读指令,根据读指令获取flash数据,获得读取指令。
[0074] WDT300,设置在flash控制器200中,用于用于启动失败时定时将flash控制器3byte读取模式切换为4byte读取模式。通过设置WDT300优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0075] 所述CPU400,用于向flash控制器200发出的读指令,根据flash控制器200返回的读取指令,判断返回的读取指令是否正确,若正确则执行完成启动;若不正确,则复位,进行二次启动,二次启动为最终启动。即,二次启动要是失败则不进行下次启动,则表示启动失败。
[0076] 参见图3所示,在本发明实施例中,该系统还包括输入设备500。
[0077] 所述输入设备500,用于输入的reboot命令。
[0078] 具体的,在系统reboot时,cpu发出第一读指令,flash控制器获取第一读指令后读取flash返回指令,且flash控制器返回指令后发送到cpu执行,然后进行启动,完成复位cpu、启动flash控制器的wdt操作。
[0079] 本发明主要通过优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0080] 在一个实施例中,在本发明的实施例中还提供了一种设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行所述的提高nor flash控制器可靠性方法,该处理器执行指令时实现上述方法实施例中的步骤:
[0081] S10、获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动;
[0082] S20、若启动成功,控制wdt进行关断,wdt停止计时;
[0083] 若不能给启动成功,则不会关断wdt,wdt计时到达时,切换flash控制器从3byte到4byte,同时复位cpu;然后flash控制器获取第二读指令,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,若不能再次启动成功,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0084] 本发明的启动方式能够在自动在两种模式下进行启动。
[0085] 其中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动同样复位cpu。
[0086] 在本发明的实施例中,flash控制器获取第一读指令,包括flash控制器获取cpu发出的第一读指令。
[0087] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0088] flash控制器将获取的读取指令传递给cpu,判断读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时。
[0089] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0090] flash控制器将获取的读取指令传递给cpu,判断读取指令是否正确,若不正确,若不正确则不会关断wdt,wdt计时到达时,切换flash控制器从3byte到4byte,同时复位cpu。
[0091] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0092] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时,则启动成功。
[0093] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0094] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若不正确,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0095] 在本发明的实施例中,获取reboot命令,根据reboot命令完成复位cpu、启动flash控制器的wdt操作。
[0096] 具体的,获取reboot命令,根据reboot命令flash控制器获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动。
[0097] 具体的,在系统reboot时,cpu发出第一读指令,flash控制器获取第一读指令后读取flash返回指令,且flash控制器返回指令后发送到cpu执行,然后进行启动,完成复位cpu、启动flash控制器的wdt操作。
[0098] 本发明主要通过优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0099] 所述设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他设备的交互操作来实现本发明。其中,所述设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
[0100] 还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0101] 在本发明的一个实施例中还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例中的步骤:
[0102] S10、获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动;
[0103] S20、若启动成功,控制wdt进行关断,wdt停止计时;
[0104] 若不能给启动成功,则不会关断wdt,wdt计时到达时,切换flash控制器从3byte到4byte,同时复位cpu;然后flash控制器获取第二读指令,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,若不能再次启动成功,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0105] 本发明的启动方式能够在自动在两种模式下进行启动。
[0106] 其中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动同样复位cpu。
[0107] 在本发明的实施例中,flash控制器获取第一读指令,包括flash控制器获取cpu发出的第一读指令。
[0108] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0109] flash控制器将获取的读取指令传递给cpu,判断读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时。
[0110] 本发明实施例中,所述flash控制器根据获取的第一读指令以3byte模式读取flash进行启动,包括,flash控制器根据获取的第一读指令读取flash,获得第一读取指令;
[0111] flash控制器将获取的读取指令传递给cpu,判断读取指令是否正确,若不正确,若不正确则不会关断wdt,wdt计时到达时,切换flash控制器从3byte到4byte,同时复位cpu。
[0112] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0113] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若正确,cpu正确执行,且并对wdt进行关断,wdt停止计时,则启动成功。
[0114] 本发明实施例中,flash控制器根据获取的第二读指令以4byte模式读取flash进行启动,包括,flash控制器根据获取的第二读指令读取flash,获得第二读取指令;
[0115] flash控制器将获取的第二读取指令传递给cpu,判断第二读取指令是否正确,若不正确,则wdt在计时到后flash控制器不再读取flash,并标识启动失败。
[0116] 在本发明的实施例中,获取reboot命令,根据reboot命令完成复位cpu、启动flash控制器的wdt操作。
[0117] 具体的,获取reboot命令,根据reboot命令flash控制器获取第一读指令,flash控制器根据获取的第一读指令以3byte模式读取flash进行启动。
[0118] 具体的,在系统reboot时,cpu发出第一读指令,flash控制器获取第一读指令后读取flash返回指令,且flash控制器返回指令后发送到cpu执行,然后进行启动,完成复位cpu、启动flash控制器的wdt操作。
[0119] 本发明主要通过优化flash控制器,简化soc系统访问nor flash时软件与硬件复杂度。
[0120] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
[0121] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
[0122] 以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0123] 应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0124] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

当前第1页 第1页 第2页 第3页