CN114296799A - 代码生成方法、访问存储器芯片的方法、总线接口和存储介质 - Google Patents
代码生成方法、访问存储器芯片的方法、总线接口和存储介质 Download PDFInfo
- Publication number
- CN114296799A CN114296799A CN202111539297.5A CN202111539297A CN114296799A CN 114296799 A CN114296799 A CN 114296799A CN 202111539297 A CN202111539297 A CN 202111539297A CN 114296799 A CN114296799 A CN 114296799A
- Authority
- CN
- China
- Prior art keywords
- signal
- memory chip
- information
- access operation
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明实施例提供了一种代码生成方法、访问存储器芯片的方法、总线接口和存储介质。用于访问存储器芯片的程序代码生成方法包括:获取与对存储器芯片的预定访问操作对应的操作时序信息,操作时序信息包括包含多个信号跳转状态信息的信息序列,每个信号跳转状态信息表征信号线保持信号状态的持续时间并包括信号线标识、信号保持状态和持续时间的信息;根据操作时序信息,设置用于执行预定访问操作的操作指令;根据操作指令,生成与预定访问操作对应的程序代码。通过设置嵌套的多个计数器进行叠加计数,实现存储器外设接口总线协议的数据传输,由此大大地简化了存储器芯片的复杂状态机跳转设计,并且降低了总线接口电路的面积。
Description
技术领域
本发明实施例涉及存储器芯片,尤其涉及一种用于访问存储器芯片的程序代码生成方法、通过总线接口访问存储器芯片的方法、总线接口和存储介质。
背景技术
快闪存储器(Flash Memory)总线、i2c(Inter-Integrated Circuit)通信协议总线、i2s(Inter-IC Sound)音频通信协议总线、通用异步收发传输器(UART,UniversalAsynchronous Receiver/Transmitter)接口总线、串行外设接口(SPI,Serial PeripheralInterface)总线等是各类存储器芯片中常用的外设总线。存储器芯片中的很多重要功能,如开机启动、存储、读写芯片内部寄存器、打印芯片内部信息等都离不开这些外设总线。外设总线的控制器电路由于接口速度不会高于系统时钟速度,因此通常会使用系统时钟分频出总线接口的各种信号实现。
现有的这些外设总线控制器的设计,通常按照以下两种方法实现:①状态机和计数器分频器配合实现;②时序组合逻辑实现功能及计数器分频器实现。
对于实现方法①来说,如果总线控制器功能很复杂,状态机的状态和跳转会特别多,使得总线控制器的设计代码过于冗长,使得设计代码的可读性变差。此外,状态机跳转过多,针对性较强,难于适应各类存储器,导致设计代码不易复用。
对于实现方法②来说,通过组合逻辑实现控制器的功能,难于考虑到所有的变数,容易出错,并且电路一旦复杂,时序会变得不好控制,难以阅读。此外,电路设计不直观,在一个时序或者组合逻辑块中可能会设计多种信号,影响验证效率。
发明内容
本发明实施例的目的在于,提供一种通过总线接口访问存储器芯片的技术方案,以简化对存储器芯片进行访问操作的信号跳转状态设计。
根据本发明实施例的一个方面,提供一种用于访问存储器芯片的程序代码生成方法,包括:获取与对存储器芯片的预定访问操作对应的操作时序信息,所述操作时序信息包括包含多个信号跳转状态信息的信息序列,每个所述信号跳转状态信息表征信号线保持信号状态的持续时间并包括信号线标识、信号保持状态和持续时间的信息;根据所述操作时序信息,设置用于执行所述预定访问操作的操作指令,所述操作指令包括用于执行以下操作的操作指令:顺序地生成包括操作时序信息中每个所述信号跳转状态信息的信号线标识和信号保持状态的信号跳转指令的指令序列,设置第一寄存器并将所述第一寄存器赋值为所述信号跳转状态信息的个数,设置第一计数器,所述第一计数器用于在执行所述预定访问操作的指令序列时,根据所述第一寄存器的值,对当前正在执行的信号跳转指令进行计数,设置多个第二寄存器并将多个所述第二寄存器依次赋值为所述多个信号跳转状态信息的持续时间的信息,设置第二计数器,所述第二计数器用于在执行所述预定访问操作的指令序列时,根据所述第一计数器的值对应的第二寄存器的持续时间的信息,对当前正在执行的信号跳转指令对应的信号跳转状态信息的持续时间进行计数,设置第三寄存器,第三寄存器用于在执行所述预定访问操作的指令序列时,记录所述预定访问操作对应的字节数,设置第三计数器,所述第三计数器用于在执行所述预定访问操作的指令序列时,根据所述第三寄存器的值对预定访问操作累计操作的字节数进行计数;根据所述操作指令,生成与所述预定访问操作对应的程序代码。
可选地,所述程序代码为总线接口驱动程序中与所述预定访问操作对应的功能函数。
可选地,所述预定访问操作为写操作,所述操作时序信息包括6个信号跳转状态信息,所述6个信号跳转状态信息依次为,将设备地址使能ALE信号持续拉高的时间TEADC、将ALE信号拉低并保持低电平的时间TEAHC、地址到片选信号使能的时间TACSE、片选信号使能到写使能信号拉低的时间TCS、写使能信号持续拉低的时间TWP和写使能信号拉高后的保持时间TCH。
可选地,所述预定访问操作为读操作,所述操作时序信息包括5个信号跳转状态信息,所述5个信号跳转状态信息依次为,外部锁存器锁存信号高的有效时间TEADC、外部锁存器锁存信号低电平保持的时间TEAHC、地址到片选信号使能的时间TACSE、片选信号使能到读使能信号拉低的时间TACO和读使能信号持续拉低的时间TRAD。
根据本发明实施例的另一方面,提供一种通过总线接口访问存储器芯片的方法,包括:接收用于访问存储器芯片的请求,所述请求至少包括访问操作和访问地址;通过任一前述的用于访问存储器芯片的程序代码生成方法生成的程序代码,对所述存储器芯片的所述访问地址执行所述访问操作。
可选地,所述访问操作为写操作,所述请求还包括待写数据和待写数据的长度信息。
可选地,所述访问操作为读操作,所述请求还包括读取数据的长度信息。
可选地,通过所述总线接口的驱动程序执行所述方法。
根据本发明实施例的另一方面,还提供一种存储器芯片的总线接口,其特征在于,包括:驱动程序,用于执行任一前述的通过总线接口访问存储器芯片的方法。
根据本发明实施例的又一方面,还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行指令,所述可执行指令使处理器执行任一前述的通过总线接口访问存储器芯片的方法的步骤。
通过本发明实施例的用于访问存储器芯片的程序代码生成方法和通过总线接口访问存储器芯片的方法,将体现对存储器芯片的预定访问操作的状态跳转以硬件设置、软件逻辑的形式进行了简化,其中,设置嵌套的多个计数器进行叠加计数,实现存储器外设接口总线协议的数据传输,由此大大地简化了存储器芯片的复杂状态机跳转设计,并且降低了总线接口电路的面积。
附图说明
图1是示出快闪存储器(Flash Memory)的写操作时序的示意图;
图2是示出快闪存储器(Flash Memory)的读操作时序的示意图;
图3是示出快闪存储器的部分状态机跳转的示意图;
图4是示出图1中示出的写操作时序的状态机跳转的示意图;
图5是示出根据本发明实施例的用于访问存储器芯片的程序代码生成方法的流程图;
图6是示出图5中的步骤S520的示例性处理的流程图;
图7是根据本发明实施例的通过总线接口访问存储器芯片的方法的流程图。
具体实施方式
下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本发明实施例的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
图1是示出快闪存储器(Flash Memory)的写操作时序的示意图,图2是示出Flash的读操作时序的示意图。
如图1所示,Flash的写操作时序由多个信号组成,且完成一个写命令需要对多个信号线进行信号控制的组合完成。实现这样一种Flash的控制器的常规做法是用一个状态机,将这些总线的时序切分成很多信号状态,然后根据状态驱动总线完成Flash的存储功能。然而,在比较复杂的Flash中,并不是只有这一种状态及命令,越复杂的Flash意味着更多的状态和更复杂的状态跳转,单单区分这些状态就会花掉许多时间。
图3是示出Flash的部分状态机跳转的示意图,该快闪存储器是美光MT29F2G08ABAEAH4的型号。为了实现该Flash支持的功能,现有的实现方式为它设计了详细且复杂的状态机。
针对上述问题,发明人通过对图1和图2示出的时序进行分析,发现这些时序中包含很多重复相似的动作,如图4所示。例如,TEADC表示将设备地址使能ALE信号持续拉高6个时钟的时间,TEAHC表示将ALE信号拉低并保持低电平(拉低到地址信号驱动结束)3个时钟的时间。这类外设的信号按照一定顺序拉高或拉低,它们依次发生,有一定的关系,但是这些关系并不必要以状态机实现,因为随着功能复杂化,状态机也将复杂化。
为此,根据本发明的发明构思,将例如前述图1和图2示出的操作时序信息中的TEADC、TEAHC、TACSE等定义为信号跳转状态信息。因此,该操作时序信息包括包含多个信号跳转状态信息的信息序列,每个信号跳转状态信息表征信号线保持信号状态的持续时间,并包括信号线标识、信号保持状态和持续时间的信息。这里,可以将信号保持状态理解为对某个指定的信号线进行控制达到的目标信号状态或者对某个指定的信号线进行控制使其保持的某个信号状态或信号跳转状态。例如,如图4所示,写操作的操作时序信息包括6个信号跳转状态信息,该6个信号跳转状态信息依次为,将设备地址使能ALE信号持续拉高6个时钟的时间TEADC、将ALE信号拉低并保持低电平3个时钟的时间TEAHC、地址到片选信号使能5个时钟周期的时间TACSE、片选信号使能到写使能信号拉低5个时钟周期的时间TCS、写使能信号持续拉低5个时钟周期的时间TWP和写使能信号拉高后3个时钟周期的保持时间TCH。
首先,这些信号跳转状态信息之间存在必要的顺序关系,在设计存储器芯片的总线接口的操作指令时,可以设置一个跳转时序计数器(在此称为第一计数器)来表示它们的顺序关系,配以一个寄存器(在此称为第一寄存器)来记录第一计数器对信号跳转状态信息进行计数达到的个数。可见,配合使用的第一寄存器和第一计数器用于对预定访问操作的状态机的信号状态执行跳转。
其次,再设置多个寄存器(在此称为第二寄存器),用于记录各个信号跳转状态信息的时间信息,例如,第一个第二寄存器中记录TEADC中的6,第二个第二寄存器中记录TEAHC中的3,以此类推。由于这6个信号跳转状态不是同时发生的,因此在执行预定访问操作(写操作)时,可分时复用同一个时序数目计数器(在此称为第二计数器),对正在发生的信号跳转状态的时间进行计数,这样可减少总线接口电路的面积,节省系统资源。这里,配合使用的第二寄存器和第二计数器用于对预定访问操作的状态机在指定的某个信号跳转状态下的信号持续时间进行控制。
再次,还可设置用于对访问操作的字节数进行计数的字节传输计数器(第三计数器),以记录访问操作累计的字节数,由此完成多字节数据的传输。
此外,对于存储器芯片的其他访问操作,也可通过与前述类似的设计实现。
以上描述的是针对美光MT29F2G08ABAEAH4型号的快闪存储器的访问操作的示例性设计。需要指出,针对不同型号、不同种类的外设,操作时序信息中的信号跳转状态信息,包括每个信号跳转状态信息中的信号线、信号保持状态和持续时间的信息,可不同,但可采用类似的设计思想来实现其访问操作的状态机跳转。
通过前述设计,能够通过设置嵌套的多个计数器进行叠加计数,实现存储器外设接口总线协议的数据传输,由此大大地简化了存储器芯片的复杂状态机跳转设计,并且降低了总线接口电路的面积。此外,对于外设总线速度慢于系统总线速度的存储器总线接口,如SPI,i2c,UART等协议的接口,本申请的设计均可适用。
图5是示出根据本发明实施例的用于访问存储器芯片的程序代码生成方法的流程图。通过该方法生成的程序代码用于存储器芯片的总线接口驱动程序。
参照图5,在步骤S510,获取与对存储器芯片的预定访问操作对应的操作时序信息。
该操作时序信息包括包含多个信号跳转状态信息的信息序列,每个所述信号跳转状态信息表征信号线保持信号状态的持续时间并包括信号线标识、信号保持状态和持续时间的信息。例如,图1和图2分别示出了对存储器芯片执行写操作和读操作的操作时序信息。
其中,写操作的操作时序信息包括6个信号跳转状态信息,所述6个信号跳转状态信息依次为,将设备地址使能ALE信号持续拉高的时间(即6个时钟周期的时间)TEADC、将ALE信号拉低并保持低电平的时间(即3个时钟周期的时间)TEAHC、地址到片选信号使能的时间(即5个时钟周期的时间)TACSE、片选信号使能到写使能信号拉低的时间(即5个时钟周期的时间)TCS、写使能信号持续拉低的时间TWP和写使能信号拉高后的保持时间(即3个时钟周期的时间)TCH。
其中,读操作的操作时序信息包括5个信号跳转状态信息,所述5个信号跳转状态信息依次为,外部锁存器锁存信号高的有效时间TEADC、外部锁存器锁存信号低电平保持的时间TEAHC、地址到片选信号使能的时间TACSE、片选信号使能到读使能信号拉低的时间TACO和读使能信号持续拉低的时间TRAD。
在步骤S520,根据所述操作时序信息,设置用于执行所述预定访问操作的操作指令。
这里,设置的操作指令可以是体现相应处理逻辑的伪码、文字或程序代码片段,也可以是前述伪码、文字和程序代码片段当中的两个或三个的结合,用于后续在步骤S530根据这些操作指令生成程序代码。
图6是示出步骤S520的示例性处理的流程图。
具体地,在步骤S521,顺序地生成包括操作时序信息中每个所述信号跳转状态信息的信号线标识和信号保持状态的信号跳转指令的指令序列。
具体地,通过该操作时序信息中的多个信号跳转状态信息生成每个信号跳转状态信息的信号线标识和相应的信号保持状态的信号跳转指令,形成该指令序列。例如,为信号跳转状态信息TEADC生成的信号跳转指令涉及的信号线标识为ALE,相应的信号保持状态为高;为信号跳转状态信息TEAHC生成的信号跳转指令涉及的信号线标识为ALE,相应的信号保持状态为低,以此类推。
可例如,通过多个寄存器对该指令序列的各个信号跳转状态信息涉及的信号线标识和信号保持状态进行记录,或生成体现这些信号跳转指令的伪码等。
在步骤S522,设置第一寄存器,并将所述第一寄存器赋值为所述信号跳转状态信息的个数。
如前所述,设置的第一寄存器用于记录信号跳转状态信息的个数,因此对其赋值为信号跳转状态信息的个数。
在步骤S523,设置第一计数器,所述第一计数器用于在执行所述预定访问操作的指令序列时,根据所述第一寄存器的值,对当前正在执行的信号跳转指令进行计数。
设置的第一计数器与第一寄存器配合使用。第一计数器初始赋值为0,而第一寄存器中的值为6。
例如,对于写操作来说,在开始执行预定访问操作的指令序列时,根据第一计数器的值(为0),此时执行TEADC对应的信号跳转指令;当完成TEADC的信号跳转状态后,第一计数器累加1,根据第一计数器的值(为1),此时执行TEAHC对应的信号跳转指令;以此类推,直到第一计数器的值达到5(即第一计数器从0到5已计数过6次)为止,执行预定访问操作对应的该数据传输。由此可见,第一计数器的值能够实现对预定访问操作的状态机的信号状态跳转。
在步骤S524,设置多个第二寄存器,并将多个所述第二寄存器依次赋值为所述多个信号跳转状态信息的持续时间的信息。
例如,对于写操作来说,设置6个第二寄存器,分别将该6个第二寄存器赋值为[6,3,5,5,5,3]。
在步骤S525,设置第二计数器,第二计数器用于在执行所述预定访问操作的指令序列时,根据所述第一计数器的值对应的第二寄存器的持续时间的信息,对当前正在执行的信号跳转指令对应的信号跳转状态信息的持续时间进行计数。
设置的第二计数器初始赋值为0,与多个第二寄存器配合使用,并且在执行预定访问操作的指令序列时,第二计数器计数参照的第二寄存器与第一计数器的值是对应的。
例如,对于写操作来说,在执行预定访问操作的指令序列时,第一计数器的值为初始值0,此时执行TEADC对应的信号跳转指令,而第二计数器根据与第一计数器的值对应的第二寄存器[0]中的值(即6)进行计数;此时,执行ALE信号持续拉高的信号跳转指令,且第二计数器对ALE信号持续拉高的时间进行计数,直到计数的时间达到6为止,开始执行待写数据的传输写入。之后,第一计数器累计加1,变为1,此时执行TEAHC对应的信号跳转指令,其中,第二计数器被初始化为0,并且根据与第一计数器当前的值对应的第二寄存器[1]中的值(即3)对ALE信号拉低并保持低电平的时间进行计数,直到第二计数器计数的时间达到3为止。然后,第一计数器累计加1,变为2,此时执行TACSE对应的信号跳转指令,其中,第二计数器被初始化为0,并且根据与第一计数器当前的值对应的第二寄存器[2]中的值(即5)对地址到片选信号使能的时间进行计数,直到第二计数器计数的时间达到5为止。以此类推,直到第一计数器累加到5,并且第二计数器对写使能信号拉高后的保持时间进行计数达到第二寄存器[5]中的值时,对存储器芯片执行待写数据的写入传输。至此,第一计数器已计数过6次,完成了对写操作的处理。
根据本发明的示例性实施例,第一计数器和第二计数器进行相应的第一寄存器和第二寄存器中的值对应的计数次数。
在步骤S526,设置第三寄存器,第三寄存器用于在执行所述预定访问操作的指令序列时,记录所述预定访问操作对应的字节数。
也就是说,在从存储器芯片的总线接口实际接收到执行预定访问操作的请求时,才对设置的第三寄存器进行赋值,将第三寄存器赋值为预定访问操作的字节数,如要写入数据的字节数。
在步骤S527,设置第三计数器,所述第三计数器用于在执行所述预定访问操作的指令序列时,根据所述第三寄存器的值对预定访问操作累计操作的字节数进行计数。
设置的第三计数器与第三寄存器配合使用。第三计数器初始赋值为0,而第一寄存器中的值为6。
在前述写操作的示例中,当第一计数器从0累加到5,并且第二计数器对写使能信号拉高后的保持时间进行计数达到第二寄存器[5]中的值时,对存储器芯片执行待写数据的写入传输。此时,第三计数器对写操作累计传输的字节数进行计数,直到累计传输的字节数达到第三寄存器的值为止。在此需要指出,前述步骤S521~S527的处理顺序不必须是前述描述的顺序,而可以在符合处理逻辑的情况下进行调整。例如,步骤S526~S527可以在图6示出的任何流程位置执行,如在执行S521~S523之前执行;再例如,步骤S524~S525可在步骤S526~S527之后执行。
自此,通过步骤S521~S527的处理,将体现对存储器芯片的预定访问操作的状态跳转以硬件设置、软件逻辑的形式进行了简化,其中,设置嵌套的多个计数器进行叠加计数,实现存储器外设接口总线协议的数据传输,由此大大地简化了存储器芯片的复杂状态机跳转设计,并且降低了总线接口电路的面积。
在步骤S530,根据在步骤S520设置的操作指令,生成与所述预定访问操作对应的程序代码。
在该步骤,生成体现在步骤S520设置的操作指令的程序代码。该程序代码可以是符合存储器外设接口的编程要求的源代码,如C语言源代码、Python源代码、汇编语言代码等,但不限于此。
如前所述,通过该方法生成的程序代码用于存储器芯片的总线接口驱动程序。可选地,该程序代码被编码为总线接口驱动程序中与所述预定访问操作对应的功能函数,可重复地被调用。
本发明实施例还提供一种通过总线接口访问存储器芯片的方法,在执行该方法的处理中,通过如前所述的任一用于访问存储器芯片的程序代码生成方法生成的程序代码来进行对存储器芯片的访问操作。
图7是根据本发明实施例的通过总线接口访问存储器芯片的方法的流程图。
参照图7,在步骤S710,接收用于访问存储器芯片的请求,所述请求至少包括访问操作和访问地址。该访问地址为访问操作的起始访问地址。
例如,该访问操作可以是写操作,相应地,该访问存储器芯片的请求还包括待写数据和待写数据的长度信息,用于指示在进行写操作时要写入的待写数据和待写数据的长度信息。
再例如,该访问操作可以是读操作,该访问存储器芯片的请求还包括读取数据的长度信息,用于指示在进行读操作时读取数据的长度信息。调用该方法的总线接口可确定一次读取指定字节数(如256字节、512字节等)或指定比特数(如256比特、512比特等)的数据,使得每次调用该通过总线接口访问存储器芯片的方法时读取该指定字节数或指定比特数的数据,并迭代地调用该方法,直到完成例如某个文件的全部数据读取为止。
此外,对于写操作和读操作,接收到的该请求还可包括访问传输(写入传输和读取传输)的单位字节数,用于指示每次访问传输的数据长度。
在步骤S720,通过任一前述的用于访问存储器芯片的程序代码生成方法生成的程序代码,对所述存储器芯片的所述访问地址执行所述访问操作。
下面以参照图4示出的写操作时序的状态机跳转的示意图为例,描述在步骤S720中执行写操作的状态跳转处理。
当开始执行写操作时序对应的程序代码时,第一计数器timing_num_cnt=0,此时将ALE信号拉高,即ALE=1,开始采地址值,同时第二计数器timing_cnt根据第二寄存器[timing_num_cnt]的值(6)计数到5,使得ALE信号拉高的状态保持时间达到6个时钟周期,之后进入第一计数器timing_num_cnt=1的状态。此时,进入TEAHC的信号跳转状态,将ALE信号拉低并保持低电平,即ALE=0,同时第二计数器timing_cnt根据第二寄存器[timing_num_cnt]的值(3)计数到2,使得ALE信号拉低并保持低电平的状态保持时间达到3个时钟周期,之后进入第一计数器timing_num_cnt=2的状态。以此类推,直到第一计数器timing_num_cnt=5,并且第二计数器timing_cnt根据第二寄存器[timing_num_cnt]的值(3)计数到2为止。此时,开始待写数据的传输。其中,在步骤S710,还可在接收到的请求中接收每个写入传输的单位字节数,该单位字节数可以是例如1个字节或2个字节等。在待写数据的写入传输中,每次进行该单位字节数的待写数据的写入传输,并通过第三计数器byte_cnt进行计数,直到第三计数器byte_cnt达到第三寄存器的值,完成全部待写数据的传输为止。可以看出,状态机的状态跳转是通过第一计数器timing_num_cnt的值控制的,而在任一指定的信号跳转状态下,每个跳转状态的持续时间,由相应的第二计数器timing_cnt的计数来进行控制。
可选地,通过存储器芯片的总线接口的驱动程序执行前述通过总线接口访问存储器芯片的方法。
以下说明根据本发明实施例的通过总线接口对存储器芯片执行写操作的处理。读操作及其他访问操作的处理在处理方式上与写操作的处理类似。
当用户端通过存储器芯片的总线接口向存储器(如Flash)发送写入数据的命令时,在步骤S710,存储器芯片的总线接口(的驱动程序)接收用于对存储器芯片执行写数据的请求,该请求包括指示写操作的信息、待写地址、待写数据和待写数据的长度信息(如字节数)。在步骤S720,存储器芯片的总线接口(的驱动程序)调用为写操作生成的程序代码,将写操作的信息、待写地址、待写数据和待写数据的长度信息(如字节数)以参数的形式传递给该程序代码。通过为写操作生成的程序代码,对存储器芯片执行设备地址使能、寻址和数据信号锁定等的信号跳转,然后对存储器芯片的待写地址进行待写数据的写入传输。
本发明实施例还提供一种存储器芯片的总线接口,该总线接口包括:驱动程序,用于执行任一前述通过总线接口访问存储器芯片的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有可执行指令,所述可执行指令使处理器执行任一前述通过总线接口访问存储器芯片的方法的步骤。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种用于访问存储器芯片的程序代码生成方法,包括:
获取与对存储器芯片的预定访问操作对应的操作时序信息,所述操作时序信息包括包含多个信号跳转状态信息的信息序列,每个所述信号跳转状态信息表征信号线保持信号状态的持续时间并包括信号线标识、信号保持状态和持续时间的信息;
根据所述操作时序信息,设置用于执行所述预定访问操作的操作指令,所述操作指令包括用于执行以下操作的操作指令:
顺序地生成包括操作时序信息中每个所述信号跳转状态信息的信号线标识和信号保持状态的信号跳转指令的指令序列,
设置第一寄存器并将所述第一寄存器赋值为所述信号跳转状态信息的个数,
设置第一计数器,所述第一计数器用于在执行所述预定访问操作的指令序列时,根据所述第一寄存器的值,对当前正在执行的信号跳转指令进行计数,
设置多个第二寄存器并将多个所述第二寄存器依次赋值为所述多个信号跳转状态信息的持续时间的信息,
设置第二计数器,所述第二计数器用于在执行所述预定访问操作的指令序列时,根据所述第一计数器的值对应的第二寄存器的持续时间的信息,对当前正在执行的信号跳转指令对应的信号跳转状态信息的持续时间进行计数,
设置第三寄存器,第三寄存器用于在执行所述预定访问操作的指令序列时,记录所述预定访问操作对应的字节数,
设置第三计数器,所述第三计数器用于在执行所述预定访问操作的指令序列时,根据所述第三寄存器的值对预定访问操作累计操作的字节数进行计数,
根据所述操作指令,生成与所述预定访问操作对应的程序代码。
2.根据权利要求1所述的方法,其特征在于,所述程序代码为总线接口驱动程序中与所述预定访问操作对应的功能函数。
3.根据权利要求1或2所述的方法,其特征在于,所述预定访问操作为写操作,所述操作时序信息包括6个信号跳转状态信息,所述6个信号跳转状态信息依次为,将设备地址使能ALE信号持续拉高的时间TEADC、将ALE信号拉低并保持低电平的时间TEAHC、地址到片选信号使能的时间TACSE、片选信号使能到写使能信号拉低的时间TCS、写使能信号持续拉低的时间TWP和写使能信号拉高后的保持时间TCH。
4.根据权利要求1或2所述的方法,其特征在于,所述预定访问操作为读操作,所述操作时序信息包括5个信号跳转状态信息,所述5个信号跳转状态信息依次为,外部锁存器锁存信号高的有效时间TEADC、外部锁存器锁存信号低电平保持的时间TEAHC、地址到片选信号使能的时间TACSE、片选信号使能到读使能信号拉低的时间TACO和读使能信号持续拉低的时间TRAD。
5.一种通过总线接口访问存储器芯片的方法,包括:
接收用于访问存储器芯片的请求,所述请求至少包括访问操作和访问地址;
通过如权利要求1~4中任一项所述的用于访问存储器芯片的程序代码生成方法生成的程序代码,对所述存储器芯片的所述访问地址执行所述访问操作。
6.根据权利要求5所述的方法,其特征在于,所述访问操作为写操作,所述请求还包括待写数据和待写数据的长度信息。
7.根据权利要求5所述的方法,其特征在于,所述访问操作为读操作,所述请求还包括读取数据的长度信息。
8.根据权利要求5~7中任一项所述的方法,其特征在于,通过所述总线接口的驱动程序执行所述方法。
9.一种存储器芯片的总线接口,其特征在于,包括:
驱动程序,用于执行如权利要求5~8中任一项所述的通过总线接口访问存储器芯片的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有可执行指令,所述可执行指令使处理器执行如权利要求5~8中任一项所述的通过总线接口访问存储器芯片的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111539297.5A CN114296799A (zh) | 2021-12-15 | 2021-12-15 | 代码生成方法、访问存储器芯片的方法、总线接口和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111539297.5A CN114296799A (zh) | 2021-12-15 | 2021-12-15 | 代码生成方法、访问存储器芯片的方法、总线接口和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114296799A true CN114296799A (zh) | 2022-04-08 |
Family
ID=80968208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111539297.5A Pending CN114296799A (zh) | 2021-12-15 | 2021-12-15 | 代码生成方法、访问存储器芯片的方法、总线接口和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114296799A (zh) |
-
2021
- 2021-12-15 CN CN202111539297.5A patent/CN114296799A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452603B2 (en) | Sensors global bus | |
US11010327B2 (en) | I3C point to point | |
US9213615B2 (en) | Information processing apparatus with debugging unit and debugging method therefor | |
US5587957A (en) | Circuit for sharing a memory of a microcontroller with an external device | |
US7100086B1 (en) | Microcomputer, electronic equipment and debugging system | |
US4933840A (en) | I/O control system using buffer full/empty and zero words signals to control DMA read/write commands | |
CN106681953B (zh) | 使用i2c总线与主机连接的从机及其通信方法 | |
CN110765058A (zh) | Gpio实现spi从机功能方法、系统、设备及介质 | |
US10417172B2 (en) | Sensors global bus | |
CN101206614B (zh) | 仿真特殊功能寄存器的仿真器 | |
US20190356412A1 (en) | Fast termination of multilane double data rate transactions | |
CN115858431A (zh) | 数据传输控制方法、控制器及电子设备 | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
US7353300B2 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN114296799A (zh) | 代码生成方法、访问存储器芯片的方法、总线接口和存储介质 | |
CN111782027A (zh) | Ddr存储器运行频率调整方法及装置 | |
CN116192624A (zh) | 通信接口的配置方法和通信接口 | |
CN110795369A (zh) | 基于gpio管脚实现mido从机功能的方法及终端 | |
US6917994B2 (en) | Device and method for automatically generating an appropriate number of wait cycles while reading a nonvolatile memory | |
US11580052B2 (en) | I2C communication | |
CN113722261A (zh) | Spi扩展片选数目和增强读写响应时间灵活性的方法 | |
CN114925010B (zh) | 一种Quad SPI转AXI接口的方法 | |
CN113934671B (zh) | 一种接口控制芯片及网络设备 | |
US10977196B2 (en) | Communication interface control system | |
CN115037413B (zh) | 一种面向SpaceFibre协议的标准化可配置多速率切换系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |