闪存芯片操作方法、在线仿真器和闪存芯片操作系统的制作方法

文档序号:6575292阅读:143来源:国知局
专利名称:闪存芯片操作方法、在线仿真器和闪存芯片操作系统的制作方法
技术领域
本发明涉及对半导体存储的操作,尤其涉及一种闪存芯片操作方法、在 线仿真器和闪存芯片操作系统。
背景技术
片上系统(System on a Chip, SOC )是嵌入式应用领域的热门方向之一。 片上系统连接有若干个闪存芯片,用于存储数据。在对一个连接在片上系统 上的闪存芯片进行读取、写入和擦除操作时,需要调试器先根据该闪存芯片 的配置参数,对用于描述操作的示例文件进行修改,以得到与该闪存芯片相 匹配的示例文件,再根据预置的模板编写 一个对所述闪存芯片进行操作的程 序,然后再结合该示例文件和程序生成FME文件(Flash Method File,闪存 方法文件),FME文件中包括可以对闪存芯片进行读取,写入和擦除操作 的程序,还包含描述在目标板的总线上闪存芯片的配置信息。片上系统从调 试器下载与闪存芯片相应的FME文件,通过执行FME文件完成对该闪存芯 片的操作。
在实现上述通过FME文件才喿作闪存芯片的过程中,发明人发现现有技 术中存在如下问题
闪存芯片的种类众多,而各个闪存芯片的参数也不尽相同,在使用FME 文件操作闪存芯片时,需要为每个连接在片上系统上的闪存芯片都生成一个 FME文件,生成的过程比较繁;且在对一个闪存芯片进行、操作时,要从众 多的FME文件中选取与该闪存芯片对应的FME文件,系统工作效率低。

发明内容
本发明提供了 一种闪存芯片操作方法、在线仿真器和闪存芯片操作系 统,解决了通过FME文件对闪存芯片进行操作时,生成FME文件操作过程
4繁瑣,系统工作效率低的问题。
本发明的实施例提供了 一种闪存芯片操作方法,包括
上位机根据闪存芯片的类型获取该闪存芯片的配置参数及通用程序;
所述上位机根据所述配置参数,修改所述通用程序,得到所述闪存芯片 的可执行程序;
片上系统对所述闪存芯片执行所述可执行程序。
进步一地,所述上位机具体为在线仿真器,所述上位机根据所述配置参 数,修改所述通用程序,得到所述闪存芯片的可执行程序的步骤之前,还包 括-.
所述片上系统从所述在线仿真器下载所述闪存芯片的通用程序,以供所 述在线仿真器修改得到所述可执行程序。
进一步地,所述上位机具体为调试器,所述上位机根据所述配置参数, 修改所述通用程序,得到所述闪存芯片的可执行程序的步骤之后,还包括
所述调试器向在线仿真器发送所述闪存芯片的可执行程序;
所述在线仿真器向所述片上系统发送所述闪存芯片的可"^丸行程序。
进一步地,所述片上系统对所述闪存芯片执行所述可执行程序的步骤之 后,还包括
如果所述片上系统在执行所述可执行程序时发生错误,该片上系统停止 执行所述可执行程序,进入调试状态,并将错误警告信息存储在调试专用通 道状态寄存器中,所述错误警告信息中包含错误类型。
进一步地,所述片上系统对所述闪存芯片执行所述可执行程序的步骤之 后,还包括
所述在线仿真器周期性的4全测所述片上系统的状态;
如果所述在线仿真器;^测到所述片上系统处于调试状态,则读取所述调 试专用通道状态寄存器中存储的错误警告信息。
本发明的实施例还提供了一种在线仿真器,包括数据获取模块,用于根据闪存芯片的类型获取该闪存芯片的配置参数及
通用程序;
程序生成模块,用于根据所述数据获取模块获取的配置参数,修改所述 通用程序,得到所述闪存芯片的可执行程序,供片上系统执行。
进一步地,所述在线仿真器还包括
程序发送模块,用于向所述片上系统发送所述闪存芯片的通用程序,以 供所述程序生成模块修改得到所述可执行程序。
检测模块,用于周期性的检测所述片上系统的状态,并在所述片上系统 处于调试状态时,读取所述片上系统的调试专用通道状态寄存器中存储的错 误警告信息。
本发明的实施例还提供了 一种闪存芯片操作系统,包括在线仿真器和片 上系统;
所述在线仿真器,用于根据闪存芯片的类型获取该闪存芯片的配置参数 及通用程序,根据所述数据获取模块获取的配置参数,修改所述通用程序, 得到所述闪存芯片的可执行程序,供所述片上系统执行;
所述片上系统,用于执行所述在线仿真器修改获得的可执行程序,并在 执行所述可执行程序发生错误时,停止执行所述可执行程序,进入调试状态, 并将错误警告信息存储在调试专用通道状态寄存器中,所述错误警告信息中 包含错误类型。
进一步地,所述在线仿真器,还用于周期性的检测所述片上系统的状态, 在检测到所述片上系统进入调试状态时,读取所述调试专用通道状态寄存器 中存储的错误警告信息。
本发明的实施例提供了 一种闪存芯片操作方法、在线仿真器和闪存芯片 操作系统,只需根据闪存芯片的配置参数修改通用程序,即可得到该闪存芯 片的可执行程序,利用该可执行程序完成对所述闪存芯片的写入和擦除等操 作,不需要为每个闪存芯片单独生成操作使用的程序文件,简化了操作流程, 提高了系统工作效率。


图1为本发明的实施例使用的网络系统的结构示意图2为使用本发明的实施例提供的一种闪存芯片操作方法获取闪存芯 片可执行程序的流程图3为本发明实施例中通用程序的结构示意图4为使用本发明的实施例提供的一种闪存芯片操作方法对闪存芯片 进行操作的流程图5为使用本发明的实施例提供的一种闪存芯片操作方法对操作闪存 芯片的过程进行实时监测的流程图6为本发明的实施例提供的一种在线仿真器的结构示意图7为本发明的又一实施例提供的一种在线仿真器的结构示意图8为本发明的实施例提供的一种闪存芯片才喿作系统的结构示意图。
具体实施例方式
为了解决对闪存芯片进行操作时操作过程繁瑣,系统效率低的问题,本 发明的实施例提供了一种闪存芯片操作方法,下面结合具体实施例,对该方 法进行详细说明。
使用FME文件对闪存芯片进行操作时,需要为每个闪存芯片生成专门 的FME文件,工作量大,本发明的实施例提供的闪存芯片操作方法,实现 了多个闪存芯片共用一个通用程序,在对具体的闪存芯片进行操作时,只需 要更改通用程序的一些特定的配置参数,就能得到该闪存芯片的可执行程 序。
下面结合附图,对本发明的实施例一进行说明。
首先介绍本发明实施例使用的网络系统,该网络系统如图1所示,包括 调试器101、在线仿真器102和片上系统103,其中,片上系统103连接有 至少一个闪存芯片104,调试器10i集成在pc中;在调试器101中存储有参数配置文件,该文件中包含至少一个闪存芯片的配置参数,可以对该文件
进行维护,添加新的闪存芯片的配置参数;在线仿真器102中存储有大量的 通用文件, 一般情况下,每一个通用文件对应一类闪存芯片(如同一厂家生 产的闪存芯片,其属性基本相同)。
为了解决对闪存芯片进行操作时操作过程繁瑣,系统效率低的问题,本
发明实施例提供了 一种闪存芯片操作方法,使用该方法对闪存芯片进行#:作
的流程如图2所示,包括
步骤201、在线仿真器接收调试器下发的参数配置文件;
本步骤中,在线仿真器接收调试器下发的参数配置文件,并将该参数配 置文件存储起来。
所述参数配置文件中包含有至少 一 个型号的闪存芯片的配置参数,所述 配置参数包括闪存芯片的操作命令字和操作命令字写入的地址,所述操作 包括数据的写入、擦除和读取。
步骤202、所述在线仿真器由所述调试器获取闪存芯片型号;
本步骤中,在线仿真器接收调试器下发的数据包,该数据包中携带有当 前片上系统使用的全部闪存芯片的型号,片上系统中闪存芯片的基地址,片 上系统连接的闪存芯片的数量和各个闪存芯片的数据宽度。
步骤203、所述在线仿真器获取所述闪存芯片的配置参数及通用程序;
在需要对片上系统的 一个闪存芯片进行操作时,在线仿真器通过所述闪 存芯片的型号,查找所述参数配置文件,得到所述闪存芯片对应的配置参数; 才艮据所述闪存芯片的型号,查找存储在所述在线仿真器上的各个通用程序, 得到与所述闪存芯片对应的通用程序。
本发明实施例中,将同 一厂家生产的闪存芯片作为同 一类型的闪存芯 片,由于同一厂家生产的闪存芯片生产工艺相似,故对同一类型的闪存芯片 进行操作时使用的程序互相差别较小,故为同一类型的闪存芯片编译一个通 用程序,根据具体的闪存芯片配置参数调整程序即可。
步骤204、所述在线仿真器向所述片上系统发送所述通用程序;
本步骤中,在线仿真器向所述片上系统发送所述通用行程序,所述片上系统在随机存储区存储该通用程序。
步骤205、所述在线仿真器根据所述配置参数,修改所述通用程序,得 到所述闪存芯片的可执行程序;
本发明实施例中的通用程序结构如图3所示,包括两部分数据区301 和程序区302。所述通用程序是一段在片上系统的随机存储区当中运行的程 序,功能是实现对同 一 闪存厂商的闪存芯片进行写入数据和擦除数据的操 作;所述通用程序当中进行写入数据和擦除数据的操作需要的参数都设置为 全局变量,在所述通用程序的数据区301中为这些全局变量分配了空间,如 操作命令、命令地址、闪存基地址等。所述程序区302由两部分组成, 一部 分完成片上系统的处理器初始化和中断屏蔽,另一部分完成向闪存芯片中写 入数据,在数据写入后数据校验,擦除闪存芯片中数据等三个操作。
本步骤中,所述在线仿真器根据步骤203中获取的配置参数,修改存储 在片上系统中的所述通用程序的数据区,以得到与所述闪存芯片匹配的可才丸 行程序。
在本实施例中,也可以在调试器中存储通用程序,由调试器完成获取闪 存芯片通用程序和配置参数,并修改通用程序进而得到可执行程序的工作, 然后所述调试器向所述在线仿真器下发得到的可执行程序,再由在线仿真器 向片上系统写入所述可执行程序。
至此,为所述闪存芯片生成可执行程序的过程结束,下面,对使用所述 可执行程序对所述闪存芯片进行操作的过程进行说明,以写入数据的操作为 例,该过程如图4所示,包括
步骤401、所述在线仿真器接收并存储所述调试器下发的操作数据包;
在需要对所述闪存芯片进行操作时,需要通过调试器向所述在线仿真器 下发命令,再由所述在线仿真器控制所述片上系统执行具体操作。
本步骤中,所述操作数据包包含数据写入的地址、写入数据的长度和写 入数据的内容三部分,所述在线仿真器将写入数据的内容存储起来。
如果是执行擦除操作,则操作数据包会包含擦除的数据块的地址、擦除 的数据块的大小、需要擦除的数据块数量三部分。
9步骤402、所述在线仿真器根据所述操作数据包修改所述可执行程序;
本步骤中,所述在线仿真器根据所述操作数据包中携带的数据写入的地 址和写入数据的长度信息修改步骤205中得到的可执行程序。
步骤403、所述在线仿真器指示片上系统执行才艮据所述操作数据包修改 后的可执行程序。
本发明实施例提供的操作闪存芯片的方法,通过修改通用程序得到与闪 存芯片匹配的可执行程序,不需要为每个闪存芯片编译生成专门的程序,降 低了操作的复杂度,此外,本发明实施例提供的操作闪存芯片的方法还能够 对操作闪存芯片的过程进行实时监测,仍以向闪存芯片写入数据的过程为 例,监测过程如图5所示,包括
步骤501、所述在线仿真器检测所述片上系统的工作状态;
本发明实施例中,以所述片上系统为ARM9系统为例进行说明,所述 片上系统的处理器有运行状态、休眠状态和调试状态等不同状态。如果片上 系统无任务在运行,则处于休眠状态;如果片上系统的处理器正常运行任务, 则处于运行状态;如果该处理器运行任务时出现错误或已运行完当前任务等 待下一任务,则处于调试状态。
所述片上系统包括一个调试专用通道状态寄存器,在该寄存器上存储有 所述片上系统处理器当前的运行状态,为正常运行和不同类型的错误分别设 置代码,例如为正常写入完一个数据包设置代码O,为写入时发现闪存芯片 的坏块设置代码l,为写入时发现写入的数据存在错误设置代码2。所述片 上系统的处理器将当前运行状态的代码存储在所述调试专用通道状态寄存 器上。
所述片上系统的处理器在正常运行时,处于运行状态,在运行任务的过 程中出现错误(如闪存芯片发生错误或校验时发生数据异常)或运行完一个 任务等待下一任务时,即会使用断点指令跳转到调试状态;如果是因为发生 错误,则会将错误警告信息存储在调试专用通道状态寄存器中,所述错误警 告信息中包含错误类型。
本步骤中,所述在线仿真器周期性的检测所述片上系统处理器的工作状
10态,如果所述处理器处于调试状态,则需要进一步确认所述处理器当前的运 行状态,这时,所述在线仿真器就会去读取所述片上系统的调试专用通道状 态寄存器的值。
步骤502、如果所述片上系统处于调试状态,所述在线仿真器读取所述 调试专用通道状态寄存器中存储的错误警告信息;
本步骤中,如果所述片上系统处于调试状态,为了确定片上系统进入调 试状态的原因,所述在线仿真器读取该片上系统的调试专用通道状态寄存器 的值,以获取错误警告信息。
如果所述调试专用通道状态寄存器的值为0,则说明写入数据的操作完 成,可以进行下一次的操作;如果所述调试专用通道的值不为0,所述在线 仿真器就根据具体的错误警告信息来确定错误类型,并向所述调试器反馈操 作的结果,等待调试器重新下发操作命令,例如跳过所述闪存芯片的坏块继 续写入,或者重新下发写入的数据包。
步骤501和步骤502同样适用于数据擦除的过程,在擦除的过程中,所 述在线仿真器也会周期性的查询所述片上系统的调试专用通道状态寄存器 的值,并在发生错误时确定错误类型。
本发明实施例提供的闪存芯片操作方法,只需根据闪存芯片的配置参数 修改通用程序,即可得到该闪存芯片的可执行程序,利用该可执行程序完成 对所述闪存芯片的写入和擦除等操作,不需要为每个闪存芯片单独生成操作 使用的程序文件并将程序文件下载到片上系统,简化了操作流程,提高了系 统工作效率。且在对芯片操作的过程中,由在线仿真器实时检测片上系统的 工作状态,在对所述闪存芯片进行操作发生错误时,能够快速的发现错误并 确定错误类型,使用户能够及时得到当前片上系统的工作状态并作出相应的 调整,系统调试效率得到了^R高。
本发明的实施例还提供了一种在线仿真器,该在线仿真器的结构如图6 所示,包括
数据获取模块601,用于根据闪存芯片的类型获取该闪存芯片的配置参数及通用程序;
程序生成模块602,用于根据所述数据获取模块601获取的配置参数, 修改所述通用程序,得到所述闪存芯片的可执行程序,供片上系统执行。
进一步地,所述在线仿真器如图7所示,还包括
程序发送模块603,用于向所述片上系统发送所述闪存芯片的通用程序, 以供所述程序生成模块602修改得到所述可执行程序;
检测模块604,用于周期性的检测所述片上系统的状态,并在所述片上 系统处于调试状态时,读取所述片上系统的调试专用通道状态寄存器中存储 的错误警告信息。
本发明的实施例还提供了 一种闪存芯片操作系统,该闪存芯片操作系统 的结构如图8所示,包括在线仿真器801和片上系统802;
所述在线仿真器801,用于根据闪存芯片的类型获取该闪存芯片的配置 参数及通用程序,根据所述数据获取模块获取的配置参数,修改所述通用程 序,得到所述闪存芯片的可执行程序,供所述片上系统802执行;
所述片上系统802,用于执行所述在线仿真器801修改获得的可执行程 序,并在执行所述可执行程序发生错误时,停止执行所述可执行程序,进入 调试状态,并将错误警告信息存储在调试专用通道状态寄存器中,所述错误 警告信息中包含错误类型。
进一步地,所述在线仿真器801,还用于周期性的检测所述片上系统802 的状态,在检测到所述片上系统802进入调试状态时,读取所述调试专用通 道状态寄存器中存储的错误警告信息。
上述在线仿真器和闪存芯片操作系统,可以与本发明的实施例提供的一 种闪存芯片操作方法相结合,只需根据闪存芯片的配置参数修改通用程序, 即可得到该闪存芯片的可执行程序,利用该可执行程序完成对所述闪存芯片 的写入和擦除等操作,不需要为每个闪存芯片单独生成操作使用的程序文件 并将程序文件下载到片上系统,简化了操作流程,提高了系统工作效率。且 在对芯片操作的过程中,由在线仿真器实时检测片上系统的工作状态,在对
12所述闪存芯片进行操作发生错误时,能够快速的发现错误并确定错误类型, 使用户能够及时得到当前片上系统的工作状态并作出相应的调整,系统调试 效率得到了提高。
步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计 算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
另外,在本发明各个实施例中的各功能单元可以采用硬件的形式实现, 也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块 的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读 取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限 于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易 想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护 范围应以权利要求所述的保护范围为准。
权利要求
1、一种闪存芯片操作方法,其特征在于,包括上位机根据闪存芯片的类型获取该闪存芯片的配置参数及通用程序;所述上位机根据所述配置参数,修改所述通用程序,得到所述闪存芯片的可执行程序;片上系统对所述闪存芯片执行所述可执行程序。
2、 根据权利要求1所述的闪存芯片操作方法,其特征在于,所述上位 机具体为在线仿真器,所述上位机根据所述配置参数,修改所述通用程序, 得到所述闪存芯片的可执行程序的步骤之前,还包括所述片上系统从所述在线仿真器下载所述闪存芯片的通用程序,以供所 述在线仿真器修改得到所述可执行程序。
3、 根据权利要求1所述的闪存芯片搡作方法,其特征在于,所述上位 机具体为调试器,所述上位机根据所述配置参数,修改所述通用程序,得到 所述闪存芯片的可执行程序的步骤之后,还包括所述调试器向在线仿真器发送所述闪存芯片的可执行程序;所述在线仿真器向所述片上系统发送所述闪存芯片的可执行程序。
4、 根据权利要求1所述的闪存芯片操作方法,其特征在于,所述片上 系统对所述闪存芯片执行所述可执行程序的步骤之后,还包括如果所述片上系统在执行所述可执行程序时发生错误,该片上系统停止 执行所述可执行程序,进入调试状态,并将错误警告信息存储在调试专用通 道状态寄存器中,所述错误警告信息中包含错误类型。
5、 根据权利要求l、 2、 3或4所述的闪存芯片操作方法,其特征在于, 所述片上系统对所述闪存芯片执行所述可执行程序的步骤之后,还包括所述在线仿真器周期性的;^测所述片上系统的状态;如果所述在线仿真器检测到所述片上系统处于调试状态,则读取所述调试专用通道状态寄存器中存储的错误警告信息。
6、 一种在线仿真器,其特征在于,包括数据获取模块,用于根据闪存芯片的类型获取该闪存芯片的配置参数及 通用程序;程序生成模块,用于根据所述数据获取模块获取的配置参数,修改所述 通用程序,得到所述闪存芯片的可执行程序,供片上系统执行。
7、 根据权利要求6所述的在线仿真器,其特征在于,还包括程序发送模块,用于向所述片上系统发送所述闪存芯片的通用程序,以 供所述程序生成模块修改得到所述可执行程序。
8、 根据权利要求6所述的在线仿真器,其特征在于,还包括检测模块,用于周期性的检测所述片上系统的状态,并在所述片上系统 处于调试状态时,读取所述片上系统的调试专用通道状态寄存器中存储的错 误警告信息。
9、 一种闪存芯片操作系统,其特征在于,包括在线仿真器和片上系统;所述在线仿真器,用于根据闪存芯片的类型获取该闪存芯片的配置参数 及通用程序,根据所述数据获取模块获取的配置参数,修改所述通用程序, 得到所述闪存芯片的可执行程序,供所述片上系统执行;所述片上系统,用于执行所述在线仿真器修改获得的可执行程序,并在 执行所述可执行程序发生错误时,停止执行所述可执行程序,进入调试状态, 并将错误警告信息存储在调试专用通道状态寄存器中,所述错误警告信息中 包含错误类型。
10、 根据权利要求9所述的闪存芯片操作系统,其特征在于,所述在线仿真器,还用于周期性的检测所述片上系统的状态,在检测到 所述片上系统进入调试状态时,读取所述调试专用通道状态寄存器中存储的 错误警告信息。
全文摘要
本发明公开了一种闪存芯片操作方法。涉及电子领域;解决了通过FME文件对闪存芯片进行操作时,生成FME文件操作过程繁琐,系统工作效率低的问题。该方法包括上位机根据闪存芯片的类型获取该闪存芯片的配置参数及通用程序;所述上位机根据所述配置参数,修改所述通用程序,得到所述闪存芯片的可执行程序;片上系统对所述闪存芯片执行所述可执行程序。本发明提供的技术方案适用于嵌入式系统中对闪存芯片的操作。
文档编号G06F9/445GK101625644SQ20091009041
公开日2010年1月13日 申请日期2009年8月4日 优先权日2009年8月4日
发明者李岩刚 申请人:大唐微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1