CN118093440B - 一种基于串口的QSPI Flash程序固化系统及其方法 - Google Patents
一种基于串口的QSPI Flash程序固化系统及其方法 Download PDFInfo
- Publication number
- CN118093440B CN118093440B CN202410494042.9A CN202410494042A CN118093440B CN 118093440 B CN118093440 B CN 118093440B CN 202410494042 A CN202410494042 A CN 202410494042A CN 118093440 B CN118093440 B CN 118093440B
- Authority
- CN
- China
- Prior art keywords
- qspi flash
- qspi
- serial port
- chip
- flash
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000006870 function Effects 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 claims description 17
- 238000003860 storage Methods 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 6
- 230000008023 solidification Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 3
- 238000012549 training Methods 0.000 claims description 3
- 238000001723 curing Methods 0.000 claims description 2
- 230000008520 organization Effects 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及QSPI Flash程序固化技术领域,特别涉及一种基于串口的QSPI Flash程序固化系统及其方法。包括如下步骤:在主控芯片上电后运行片内ROMCODE,ROMCODE的启动log输出到调试机的串口终端上,根据用户在串口终端输入的指令,ROMCODE进入串口程序加载模式,调试机通过串口终端向主控芯片发送QSPI Flash程序固化软件;QSPI Flash程序固化软件从主控芯片的片内SRAM开始运行,完成硬件初始化和用户命令执行功能,以实现QSPI Flash程序固化;本发明以解决QSPI Flash程序固化成本高、操作复杂、效率低的问题。
Description
技术领域
本发明涉及QSPI Flash程序固化技术领域,特别涉及一种基于串口的QSPI Flash程序固化系统及其方法。
背景技术
QSPI Flash是一种常见的非易失程序存储器,具有可供主控芯片直接寻址、连接信号简单、启动速度快等优点。其通常的使用方式为外接在主控芯片的QPSI控制器接口,将程序固化在指定的地址空间,作为二级启动程序;主控芯片的片内ROMCODE作为一级启动程序,ROMCODE上电运行后加载QSPI Flash内的程序,完成二级启动流程。ROMCODE在主控芯片流片时就已经固化在芯片内部;而QSPI Flash出厂时其存储区域是空白的,未存储任何程序数据。因此,如何将程序固化到QSPI Flash成为工程应用的实际问题。
目前,QSPI Flash的程序固化通常使用以下2种方法:(1)使用专用IDE软件和JTAG仿真器,通过JTAG仿真器连接板卡的JTAG接口,在IDE软件上配置下载的程序文件和下载地址,然后将程序固化到QSPI Flash。该方法在调试阶段较为常用,专用IDE和JTAG仿真器的成本一般较高,操作过程也较复杂。(2)使用QPSI Flash烧写器。该方法适用于批量生产阶段,使用时将QPSI Flash安装在烧写器上,在调试机的烧写器专用软件上配置下载的程序文件和下载地址,然后将程序固化到QSPI Flash,待程序固化完成后再将QSPI Flash焊接到板卡上;若需要更新QSPI Flash程序,则需要将QSPI Flash从板卡拆卸下来,再重新按上述步骤固化程序。显然,此种方法需要购置QPSI Flash烧写器,成本较高,操作过程也较复杂,效率较低。
综上,上述2种常用QSPI Flash程序固化方法均存在成本较高,操作过程复杂,效率较低的缺陷。
发明内容
本发明的目的在于提供一种基于串口的QSPI Flash程序固化系统及其方法,本发明以解决QSPI Flash程序固化成本高、操作复杂、效率低的问题。
为解决上述技术问题,本发明提供了一种基于串口的QSPI Flash程序固化方法,包括如下步骤:
步骤一:在主控芯片上电后运行片内ROMCODE,ROMCODE的启动log输出到调试机的串口终端上,根据用户在串口终端输入的指令,ROMCODE进入串口程序加载模式,调试机通过串口终端向主控芯片发送QSPI Flash程序固化软件;
步骤二:QSPI Flash程序固化软件从主控芯片的片内SRAM开始运行,完成硬件初始化和用户命令执行功能,以实现QSPI Flash程序固化;
其中,完成硬件初始化的流程包括:CPU初始化、串口初始化、DDR子系统初始化以及QSPI子系统初始化;
完成用户命令执行功能的流程包括:在命令行模式下,根据用户输入的命令执行相应的操作,并在串口终端输出执行结果;所述执行结果包括:串口数据传输功能、QSPIFlash配置功能和QSPI Flash读写功能。
优选的,所述步骤一中在串口程序加载模式下能够接收调试机下传的二进制格式的QSPI Flash程序固化软件,根据该软件的信息头解析出加载和运行地址,然后QSPIFlash程序固化软件从主控芯片的片内SRAM开始运行。
优选的,执行所述串口数据传输功能的流程包括:首先在串口终端输入二进制数据下载命令,在串口终端按相应的传输协议发送二进制数据即QSPI Flash程序二进制文件;
其中所述二进制数据下载命令包括:下载地址参数,根据使用需求将下载地址指定为片内SRAM或DDR地址存储空间,以实现通过调试机串口向主控芯片的片内SRAM或DDR地址存储空间传输数据。
优选的,所述传输协议包括:Kermit传输协议、XMODEM传输协议和YMODEM传输协议。
优选的,所述QSPI Flash配置功能包括:QSPI Flash线宽模式设置功能和QSPIFlash写保护区域设置功能;
其中执行所述QSPI Flash线宽模式设置功能的流程包括:所述QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前线宽配置信息,根据用户输入的命令将线宽配置值写入QSPI Flash的状态寄存器,以实现将线宽设置为1线或4线;
执行QSPI Flash写保护区域设置功能的流程包括:所述QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前写保护区域配置信息,根据用户输入的命令将写保护区域配置值写入QSPI Flash的状态寄存器。
优选的,执行所述QSPI Flash读写功能的流程包括:
QSPI Flash探测操作,完成对QSPI Flash的器件配置信息读取访问,并根据QSPIFlash的器件配置信息加载相应的设备驱动;其中器件配置信息包括:器件规格信息和存储空间组织形式信息;
擦除操作,根据用户命令完成以扇区为单位的数据擦除,将指定存储区域数据擦除为FF状态;
读操作,根据用户命令读取QSPI Flash的数据并写入主控芯片的片内SRAM或DDR地址存储空间;
写操作,根据用户命令将主控芯片的片内SRAM或DDR地址存储空间的数据写入QSPI Flash,完成QSPI Flash程序固化功能。
优选的,通过所述CPU初始化,为UART控制器、DDR控制器、QSPI控制器工作准备好执行环境;
通过所述串口初始化,完成波特率设置、通信报文格式设置工作,以保证后续与串口终端进行通信交互;
通过所述DDR子系统初始化,完成DDR控制器初始化和DDR芯片的链路训练工作,为软件运行和数据存储提供空间;
QSPI子系统初始化,完成QSPI控制器的初始化配置工作。
优选的,所述QSPI Flash程序固化软件具有扩展支持的QSPI Flash器件类型功能,即向QSPI Flash程序固化软件添加新的QSPI Flash器件配置信息及相应的驱动程序源码,即可增加对该QSPI Flash器件的配置功能和读写功能。
本发明还提供了一种基于串口的QSPI Flash程序固化系统,包括:主控芯片和调试机;所述主控芯片上集成有SRAM、QSPI控制器、DDR控制器和UART控制器;其中SRAM用于QSPI Flash程序固化软件的运行;QSPI控制器与QPSI Flash连接;DDR控制器与DDR芯片连接;DDR芯片用于QSPI Flash程序固化软件的运行和数据存储;UART控制器通过电平转换芯片与调试机的串口终端相连接,调试机内存储有QSPI Flash程序固化软件和QSPI Flash程序。
本发明与现有技术相比,具有如下有益效果:
(1)无需使用专用IDE软件、JTAG仿真器和QPSI Flash烧写器,成本更低。
(2)程序固化过程仅需最基本的调试串口,操作简单,效率更高。
(3)具有QSPI Flash线宽模式设置功能,满足更多使用场景需求。
(4)具有QSPI Flash的写保护区域设置功能,满足数据安全性需求。
附图说明
图1是本发明提供的一种基于串口的QSPI Flash程序固化系统的组成框图。
图2是本发明提供的QSPI Flash程序固化软件流程示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
如图1所示,本发明实施例提供的一种基于串口的QSPI Flash程序固化系统,在主控芯片运行QSPI Flash程序固化软件,实现通过串口向主控芯片的外接QSPI Flash固化程序的功能;主控芯片集成了SRAM、QSPI控制器、DDR控制器和UART控制器,其中SRAM用于QSPIFlash程序固化软件运行,QSPI控制器连接QPSI Flash,DDR控制器连接DDR芯片,DDR芯片用于QSPI Flash程序固化软件运行和数据存储,UART控制器连接电平转换芯片,电平转换芯片连接调试机的串口终端,调试机内存储有QSPI Flash程序固化软件和QSPI Flash程序。
如图2所示,本发明实施例提供的QSPI Flash程序固化软件流程,流程包括CPU初始化、串口初始化、DDR子系统初始化、QSPI子系统初始化和命令执行。
在主控芯片上电后运行片内ROMCODE,ROMCODE的启动log输出到调试机的串口终端上,根据用户在串口终端输入的指令,ROMCODE进入程序加载模式。调试机通过串口终端向主控芯片发送二进制格式的QSPI Flash程序固化软件。主控芯片通过串口接收QSPIFlash程序固化软件,根据该软件的信息头解析出加载和运行地址,然后QSPI Flash程序固化软件从主控芯片的片内SRAM开始运行。
上述QSPI Flash程序固化软件的CPU初始化,为UART控制器、DDR控制器、QSPI控制器工作准备好执行环境。
上述QSPI Flash程序固化软件的串口初始化,完成波特率设置、通信报文格式设置等工作,以便后续与串口终端进行通信交互。
上述QSPI Flash程序固化软件的DDR子系统初始化,完成DDR控制器初始化和DDR芯片链路训练等工作,DDR子系统初始化完成后为软件运行和数据存储提供空间。
上述QSPI Flash程序固化软件的QSPI子系统初始化,完成QSPI控制器的初始化配置工作。
在本发明的实施例中,QSPI Flash程序固化软件的命令执行流程如下:根据串口终端输入的用户命令,执行相应的操作,并在串口终端输出执行结果,包括串口数据传输功能、QSPI Flash线宽模式设置功能、QSPI Flash写保护区域设置功能和QSPI Flash读写功能。
在本发明的实施例中,串口数据传输功能:首先在串口终端输入二进制数据下载命令,支持诸如Kermit、XMODEM和YMODEM等传输协议,在串口终端按相应的协议发送二进制数据,即QSPI Flash程序二进制文件,二进制数据下载命令包括下载地址参数,根据使用需求可以将下载地址指定为SRAM或DDR地址空间。
在本发明的实施例中,QSPI Flash线宽模式设置功能:QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前线宽配置信息,根据用户输入的命令将线宽配置值写入QSPI Flash的状态寄存器,实现将线宽设置为1线或4线。
在本发明的实施例中,QSPI Flash写保护区域设置功能:QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前写保护区域配置信息,根据用户输入的命令将写保护区域配置值写入QSPI Flash的状态寄存器。
在本发明的实施例中,QSPI Flash读写功能:包括QSPI Flash探测操作、擦除操作、写操作和读操作。其中,QSPI Flash探测操作首先读取QSPI Flash的器件配置信息,并根据QSPI Flash的器件配置信息加载相应的设备驱动;擦除操作根据用户命令完成以扇区为单位的数据擦除,擦除到FF状态;读操作根据用户命令读取QSPI Flash的数据并写入主控芯片的片内SRAM或DDR存储空间;写操作根据用户命令将主控芯片的片内SRAM或DDR存储空间的数据写入QSPI Flash,完成QSPI Flash程序固化功能。
上述QSPI Flash程序固化软件具有扩展支持的QSPI Flash器件类型功能,具体方法为向QSPI Flash程序固化软件添加新的QSPI Flash器件配置信息及相应的驱动程序源码,从而增加对新的QSPI Flash器件的配置功能和读写功能。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (8)
1.一种基于串口的QSPI Flash程序固化方法,其特征在于,包括如下步骤:
步骤一:在主控芯片上电后运行片内ROMCODE,ROMCODE的启动log输出到调试机的串口终端上,根据用户在串口终端输入的指令,ROMCODE进入串口程序加载模式,调试机通过串口终端向主控芯片发送QSPI Flash程序固化软件;
步骤二:QSPI Flash程序固化软件从主控芯片的片内SRAM开始运行,完成硬件初始化和用户命令执行功能,以实现QSPI Flash程序固化;
其中,完成硬件初始化的流程包括:CPU初始化、串口初始化、DDR子系统初始化以及QSPI子系统初始化;
完成用户命令执行功能的流程包括:在命令行模式下,根据用户输入的命令执行相应的操作,并在串口终端输出执行结果;所述执行结果包括:串口数据传输功能、QSPI Flash配置功能和QSPI Flash读写功能;
执行所述QSPI Flash读写功能的流程包括:
QSPI Flash探测操作,完成对QSPI Flash的器件配置信息读取访问,并根据QSPIFlash的器件配置信息加载相应的设备驱动;其中器件配置信息包括:器件规格信息和存储空间组织形式信息;
擦除操作,根据用户命令完成以扇区为单位的数据擦除,将指定存储区域数据擦除为FF状态;
读操作,根据用户命令读取QSPI Flash的数据并写入主控芯片的片内SRAM或DDR地址存储空间;
写操作,根据用户命令将主控芯片的片内SRAM或DDR地址存储空间的数据写入QSPIFlash,完成QSPI Flash程序固化功能。
2.如权利要求1所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,所述步骤一中在串口程序加载模式下能够接收调试机下传的二进制格式的QSPI Flash程序固化软件,根据该软件的信息头解析出加载和运行地址,然后QSPI Flash程序固化软件从主控芯片的片内SRAM开始运行。
3.如权利要求1所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,执行所述串口数据传输功能的流程包括:首先在串口终端输入二进制数据下载命令,在串口终端按相应的传输协议发送二进制数据即QSPI Flash程序二进制文件;
其中所述二进制数据下载命令包括:下载地址参数,根据使用需求将下载地址指定为片内SRAM或DDR地址存储空间,以实现通过调试机串口向主控芯片的片内SRAM或DDR地址存储空间传输数据。
4.如权利要求3所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,所述传输协议包括:Kermit传输协议、XMODEM传输协议和YMODEM传输协议。
5.如权利要求1所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,所述QSPI Flash配置功能包括:QSPI Flash线宽模式设置功能和QSPI Flash写保护区域设置功能;
其中执行所述QSPI Flash线宽模式设置功能的流程包括:所述QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前线宽配置信息,根据用户输入的命令将线宽配置值写入QSPI Flash的状态寄存器,以实现将线宽设置为1线或4线;
执行QSPI Flash写保护区域设置功能的流程包括:所述QSPI Flash程序固化软件读取QSPI Flash的状态寄存器,获取当前写保护区域配置信息,根据用户输入的命令将写保护区域配置值写入QSPI Flash的状态寄存器。
6.如权利要求1所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,通过所述CPU初始化,为UART控制器、DDR控制器、QSPI控制器工作准备好执行环境;
通过所述串口初始化,完成波特率设置、通信报文格式设置工作,以保证后续与串口终端进行通信交互;
通过所述DDR子系统初始化,完成DDR控制器初始化和DDR芯片的链路训练工作,为软件运行和数据存储提供空间;
QSPI子系统初始化,完成QSPI控制器的初始化配置工作。
7.如权利要求1所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,所述QSPI Flash程序固化软件具有扩展支持的QSPI Flash器件类型功能,即向QSPI Flash程序固化软件添加新的QSPI Flash的器件配置信息及相应的驱动程序源码,即可增加对该QSPIFlash器件的配置功能和读写功能。
8.一种基于串口的QSPI Flash程序固化系统,采用如权利要求1~7任一项所述的一种基于串口的QSPI Flash程序固化方法,其特征在于,包括:主控芯片和调试机;所述主控芯片上集成有SRAM、QSPI控制器、DDR控制器和UART控制器;其中SRAM用于QSPI Flash程序固化软件的运行;QSPI控制器与QPSI Flash连接;DDR控制器与DDR芯片连接;DDR芯片用于QSPI Flash程序固化软件的运行和数据存储;UART控制器通过电平转换芯片与调试机的串口终端相连接,调试机内存储有QSPI Flash程序固化软件和QSPI Flash程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410494042.9A CN118093440B (zh) | 2024-04-24 | 2024-04-24 | 一种基于串口的QSPI Flash程序固化系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410494042.9A CN118093440B (zh) | 2024-04-24 | 2024-04-24 | 一种基于串口的QSPI Flash程序固化系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118093440A CN118093440A (zh) | 2024-05-28 |
CN118093440B true CN118093440B (zh) | 2024-07-02 |
Family
ID=91155655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410494042.9A Active CN118093440B (zh) | 2024-04-24 | 2024-04-24 | 一种基于串口的QSPI Flash程序固化系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093440B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951334A (zh) * | 2015-05-22 | 2015-09-30 | 中国电子科技集团公司第十研究所 | FPGA双片QSPI flash的程序加载方法 |
CN114281394A (zh) * | 2021-12-06 | 2022-04-05 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种快速在线升级程序的方法、系统、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194289A (zh) * | 2023-09-11 | 2023-12-08 | 电子科技大学 | 一种基于fmql的多通道可重构数据传输装置 |
CN117762513A (zh) * | 2023-11-24 | 2024-03-26 | 天津津航计算技术研究所 | 一种基于qspi接口的安全加载系统及加载方法 |
-
2024
- 2024-04-24 CN CN202410494042.9A patent/CN118093440B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951334A (zh) * | 2015-05-22 | 2015-09-30 | 中国电子科技集团公司第十研究所 | FPGA双片QSPI flash的程序加载方法 |
CN114281394A (zh) * | 2021-12-06 | 2022-04-05 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 一种快速在线升级程序的方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN118093440A (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101454746B (zh) | 一种以多功能存储卡通讯的方法 | |
JPH04256088A (ja) | Icメモリカードシステム | |
US8386694B2 (en) | Memory device, its access method, and memory system | |
US8000153B2 (en) | Enhanced erase for flash storage device | |
CN113377408B (zh) | 一种高可靠sram型fpga在线升级方法及系统 | |
US20060224821A1 (en) | System for parallel updating flash memory and method for the same | |
US9437312B2 (en) | Management of write-protected data in a semiconductor memory | |
JPH08263361A (ja) | フラッシュメモリカード | |
CN111679839B (zh) | 一种mcu flash的在线烧写方法 | |
CN112925569A (zh) | 一种固件数据处理方法、装置、设备及存储介质 | |
KR20200005220A (ko) | 데이터 저장 장치 및 동작 방법, 이를 위한 펌웨어 제공 서버 | |
US7644247B2 (en) | System controller for flash memory | |
JP4180757B2 (ja) | シミュレーション装置 | |
CN118093440B (zh) | 一种基于串口的QSPI Flash程序固化系统及其方法 | |
CN111104064B (zh) | Flash存储器写保护处理方法及装置、计算机设备、介质 | |
CN110119284B (zh) | Flash存储器烧写系统及方法 | |
CN111007989A (zh) | 一种弹载flash芯片坏块信息存储和使用方法 | |
US20070088905A1 (en) | System and method for purging a flash storage device | |
CN111638899A (zh) | 一种通过dsp串口升级fpga程序的方法 | |
CN113467842B (zh) | 适用于工业级应用场景的嵌入式设备的启动方法、嵌入式设备和计算机可读存储介质 | |
CN111858406B (zh) | 一种使SPI主控兼容flash芯片的方法、装置、设备和介质 | |
CN220399927U (zh) | 一种新型下变频器控制程序远程升级系统 | |
CN116244000A (zh) | 处理器boot程序加载与固化方法 | |
KR100371267B1 (ko) | 롬에뮬레이터 | |
CN117573151A (zh) | 一种在risc-v dsp芯片的闪存中烧录数据的方法、芯片 |
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 | ||
GR01 | Patent grant |