CN104572211A - 基于arm的fpga程序多镜像加载方法 - Google Patents
基于arm的fpga程序多镜像加载方法 Download PDFInfo
- Publication number
- CN104572211A CN104572211A CN201510035839.3A CN201510035839A CN104572211A CN 104572211 A CN104572211 A CN 104572211A CN 201510035839 A CN201510035839 A CN 201510035839A CN 104572211 A CN104572211 A CN 104572211A
- Authority
- CN
- China
- Prior art keywords
- programmable gate
- gate array
- field programmable
- bus interface
- external bus
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
本发明涉及一种基于ARM的FPGA程序多镜像加载方法,包括如下步骤:1:在电脑中通过现场可编程门阵列编译器将不同信号制式的现场可编程门阵列文件打包;2:ARM处理器通过串行外设接口总线,将打包后的现场可编程门阵列文件由电脑写入闪存中;3:当需要加载打包后的现场可编程门阵列文件中的一个时,通过ARM处理器向外部总线接口写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。发明能同时实现显示模组测试信号的快速切换和掉电保护。
Description
技术领域
本发明涉及FPGA嵌入式系统技术和显示模组测试技术领域,具体涉及一种基于ARM的FPGA程序多镜像加载方法。
背景技术
根据应用场合的不同,显示模组支持的信号也会不同。目前,显示模组一般支持LVDS信号(Low Voltage Differential Signaling,低压差分信号)、MIPI信号(Mobile Industry Processor Interface,移动产业处理器接口)或DP信号(Display Port,视频电子标准协会推动的数字视频接口标准)。基于FPGA(Field Programmable Gate Array,现场可编程门电路)的显示模组测试设备在实现兼容点亮不同信号接口的显示模组时,往往会导致FPGA芯片资源不够使用的情况,现有解决方案如下:
1)将FPGA程序按照信号制式编译成多个,分别存放于ARM架构的文件系统中解决。此方案可以避免资源不够用的瓶颈,但是如果在使用的过程中需要切换信号时,就必须使用ARM通过SPI总线(Serial Peripheral Interface,串行外设接口)写入到FPGA芯片的内部RAM(Random-Access Memory,随机存储存储器)上,会因为SPI总线传输速率影响切换速度较慢,且每次掉电后必须重新从磁盘经SPI加载到RAM中。
2)将FPGA程序固化到Flash Memory(闪存颗粒)中,且FPGA芯片可以直接读取Flash Memory里面的FPGA程序,并直接加载到RAM中。这种方法实现了FPGA程序加载、运行自动化的方法,虽然提高了运行速度且掉电也不会对原功能产生影响,但同样存在切换速度较慢的情况,还是需要通过SPI加载到FPGA芯片的RAM中或者覆盖原有的FPGA程序。
发明内容
本发明的目的在于提供一种基于ARM的FPGA程序多镜像加载方法,该方法能同时实现显示模组测试信号的快速切换和掉电保护。
为解决上述技术问题,本发明公开的一种基于ARM的FPGA程序多镜像加载方法,其特征在于,它包括如下步骤:
步骤1:在电脑中通过现场可编程门阵列编译器将不同信号制式的现场可编程门阵列文件打包;
步骤2:ARM处理器通过串行外设接口总线,将步骤1中打包后的现场可编程门阵列文件由电脑写入闪存中;
步骤3:当需要加载步骤1中打包后的现场可编程门阵列文件中的某一个时,通过ARM处理器向外部总线接口写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片根据上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。
本发明的有益效果:
(1)FPGA程序断电不会丢失,上电后可自动运行;
可在点某一信号制式模组的时候,快速切换到另外一制式模组,且掉电后FPGA程序不会丢失(由于存储程序的闪存为可擦写的ROM(Read-Only Memory,只读存储器),所以掉电后FPGA程序不会丢失),每次都会默认加载FPGA程序到FPGA芯片上的RAM中并自动运行,写入或者更新一次程序,终身不用再花时间维护FPGA程序(因为掉电不会丢失且在通电后能自动运行)。
(2)加快FPGA程序的启动时间(原来方式是通过ARM去加载FPGA程序,是被动加载,因牵涉文件读写所耗时间相对较多,而本发明为自动操作),启动时间可以控制200毫秒以内;
(3)本发明的上述步骤中为通知FPGA程序,让其自动加载,实现几纳秒内快速切换。切换不同制式信号的FPGA程序可以控制在200毫秒以内,此处只是配置一个寄存器就可以运行不同程序;
(4)提高产品生产效率,(切换速度快且不用断电切换)可以满足突发不同信号制式的模组的研发或生产。
附图说明
图1为本发明中的硬件环境框图。
图2为ARM架构下FPGA程序快速切换示意图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细说明:
本发明的基于ARM的FPGA程序多镜像加载方法的硬件环境,如图1所述它包括:计算机、ARM处理器、闪存、现场可编程门阵列芯片和现场可编程门阵列芯片的随机存取存储器,所述计算机连接ARM处理器,ARM处理器通过串行外设接口总线连接闪存,ARM处理器还通过外部总线接口连接现场可编程门阵列芯片,所述闪存通过串行外设接口总线连接现场可编程门阵列芯片。
本发明的基于ARM的FPGA程序多镜像加载方法,它包括如下步骤:
步骤1:在电脑中通过现场可编程门阵列编译器(QUARTUS)将不同信号制式的现场可编程门阵列文件打包;
步骤2:ARM处理器通过串行外设接口总线(SPI,SerialPeripheral Interface),将步骤1中打包后的现场可编程门阵列文件由电脑写入闪存中;
步骤3:当需要加载步骤1中打包后的现场可编程门阵列文件中的某一个时,通过ARM处理器向外部总线接口(EBI,ExternalBus)写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片根据上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。
上述技术方案中,步骤1的打包过程中由于低压差分信号技术接口(LVDS)与移动产业处理器接口(MIPI)所耗资源不多,将现场可编程门阵列文件中的低压差分信号技术接口描述文件和移动产业处理器接口描述文件存放在一个子程序中,将现场可编程门阵列文件中的数字视频接口(Display Port,视频电子标准协会推动的数字视频接口)描述文件单独存放于另外一个子程序中。
上述技术方案的步骤3中,当需要加载低压差分信号技术接口描述文件、移动产业处理器接口描述文件或数字视频接口描述文件中的某一个时,通过ARM处理器向外部总线接口写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片根据上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。
上述技术方案的步骤1中通过现场可编程门阵列编译器虚拟一个文件存储器,对该文件存储器格式化后将两个子程序写入其中形成一个整合后的FPGA程序。
ARM架构下FPGA程序快速切换如图2所示,其中ARM上运行Linux操作系统,spi设备和FPGA芯片均可访问,ARM可接受来自PC(个人电脑)端的命令且能从PC端获取整合后FPGA程序文件用于升级闪存。具体实施如下,以型号类型为n25q256a13esf40f的这款spi芯片(闪存)为例:
1、编译ARM上Linux内核,让其支持上述型号的spi flash(具有通过串行外设接口的总线闪存)芯片;
2、系统启动后由bootloader加载内核,内核中可以对spi flash芯片的控制寄存器置位,并将spi flash以块设备挂载到/dev/mtd1下,即该设备为MTD(Memory Technology Device内存技术设备),并将设备按照16kb作为扇区(数据块);
3、通过应用程序对spi flash上的gpio(General Purpose InputOutput,通用输入/输出)进行操作,使能可烧写模式;
4、通过系统调用,使用mtd库对spi flash进行擦除(格式化),即该设备上的每一个bit都置为高电平;
5、通过系统调用写入整合后的FPGA程序,并关闭烧写模式,切换至读模式;
6、FPGA程序至此在固件中已经可以跑起来了,下次开电默认设置读模式即可在底板上电后自动运行程序。
当要切换模组的时候只需要EBI(Extended Bus Interface,扩展总线接口)写入固定的数值(存储地址)即可快速切换LVDS、MIPI、DP等信号制式程序以满足点不同信号制式的模组。
本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (4)
1.一种基于ARM的FPGA程序多镜像加载方法,其特征在于,它包括如下步骤:
步骤1:在电脑中通过现场可编程门阵列编译器将不同信号制式的现场可编程门阵列文件打包;
步骤2:ARM处理器通过串行外设接口总线,将步骤1中打包后的现场可编程门阵列文件由电脑写入闪存中;
步骤3:当需要加载步骤1中打包后的现场可编程门阵列文件中的某一个时,通过ARM处理器向外部总线接口写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片根据上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。
2.根据权利要求1所述的基于ARM的FPGA程序多镜像加载方法,其特征在于:所述步骤1的打包过程中将现场可编程门阵列文件中的低压差分信号技术接口描述文件和移动产业处理器接口描述文件存放在一个子程序中,将现场可编程门阵列文件中的数字视频接口描述文件单独存放于另外一个子程序中。
3.根据权利要求2所述的基于ARM的FPGA程序多镜像加载方法,其特征在于:所述步骤3中,当需要加载低压差分信号技术接口描述文件、移动产业处理器接口描述文件或数字视频接口描述文件中的某一个时,通过ARM处理器向外部总线接口写入上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址,现场可编程门阵列芯片根据上述需要加载文件的外部总线接口存放地址信息以及对应的外部总线接口寄存器地址从闪存中加载需要的现场可编程门阵列文件到现场可编程门阵列芯片的随机存取存储器中。
4.根据权利要求2所述的基于ARM的FPGA程序多镜像加载方法,其特征在于:所述步骤1中通过现场可编程门阵列编译器虚拟一个文件存储器,对该文件存储器格式化后将两个子程序写入其中形成一个整合后的FPGA程序。2 -->
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510035839.3A CN104572211B (zh) | 2015-01-23 | 2015-01-23 | 基于arm的fpga程序多镜像加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510035839.3A CN104572211B (zh) | 2015-01-23 | 2015-01-23 | 基于arm的fpga程序多镜像加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572211A true CN104572211A (zh) | 2015-04-29 |
CN104572211B CN104572211B (zh) | 2017-10-10 |
Family
ID=53088369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510035839.3A Active CN104572211B (zh) | 2015-01-23 | 2015-01-23 | 基于arm的fpga程序多镜像加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572211B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935786A (zh) * | 2015-05-28 | 2015-09-23 | 武汉精测电子技术股份有限公司 | 一种基于软处理器的图像信号源及其处理图像信号的方法 |
CN106020864A (zh) * | 2016-05-10 | 2016-10-12 | 西安电子工程研究所 | 基于网络和光纤数据传输实现的多板卡fpga程序烧写方法 |
CN107766251A (zh) * | 2017-11-08 | 2018-03-06 | 郑州云海信息技术有限公司 | 加载image的检测方法、系统、设备及可读存储介质 |
CN108073427A (zh) * | 2017-10-19 | 2018-05-25 | 深圳市风云实业有限公司 | Fpga镜像加载方法及系统 |
CN108231132A (zh) * | 2017-12-28 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证系统 |
CN109144914A (zh) * | 2018-07-25 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种存储服务器、主板与硬盘之间的通信方法及cpld |
CN111784872A (zh) * | 2020-06-30 | 2020-10-16 | 湖南中车时代通信信号有限公司 | 一种监控记录插件的列车多交路运行数据切换存储装置 |
CN115145642A (zh) * | 2022-06-14 | 2022-10-04 | 杭州未名信科科技有限公司 | 一种软件启动方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281082B1 (en) * | 2004-03-26 | 2007-10-09 | Xilinx, Inc. | Flexible scheme for configuring programmable semiconductor devices using or loading programs from SPI-based serial flash memories that support multiple SPI flash vendors and device families |
US20070245049A1 (en) * | 2006-04-12 | 2007-10-18 | Dell Products L.P. | System and method for transferring serial data |
CN101354657A (zh) * | 2008-09-09 | 2009-01-28 | 京信通信系统(中国)有限公司 | 现场可编程门阵列的加载方法及加载电路 |
CN101452502A (zh) * | 2008-12-30 | 2009-06-10 | 华为技术有限公司 | 加载现场可编程门阵列fpga的方法、装置与系统 |
CN102609287A (zh) * | 2012-02-10 | 2012-07-25 | 株洲南车时代电气股份有限公司 | 一种通过cpu远程更新fpga的装置及其方法 |
CN102662686A (zh) * | 2012-03-09 | 2012-09-12 | 中国科学院微电子研究所 | Fpga的加载方法及其装置 |
-
2015
- 2015-01-23 CN CN201510035839.3A patent/CN104572211B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7281082B1 (en) * | 2004-03-26 | 2007-10-09 | Xilinx, Inc. | Flexible scheme for configuring programmable semiconductor devices using or loading programs from SPI-based serial flash memories that support multiple SPI flash vendors and device families |
US20070245049A1 (en) * | 2006-04-12 | 2007-10-18 | Dell Products L.P. | System and method for transferring serial data |
CN101354657A (zh) * | 2008-09-09 | 2009-01-28 | 京信通信系统(中国)有限公司 | 现场可编程门阵列的加载方法及加载电路 |
CN101452502A (zh) * | 2008-12-30 | 2009-06-10 | 华为技术有限公司 | 加载现场可编程门阵列fpga的方法、装置与系统 |
CN102609287A (zh) * | 2012-02-10 | 2012-07-25 | 株洲南车时代电气股份有限公司 | 一种通过cpu远程更新fpga的装置及其方法 |
CN102662686A (zh) * | 2012-03-09 | 2012-09-12 | 中国科学院微电子研究所 | Fpga的加载方法及其装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935786A (zh) * | 2015-05-28 | 2015-09-23 | 武汉精测电子技术股份有限公司 | 一种基于软处理器的图像信号源及其处理图像信号的方法 |
CN104935786B (zh) * | 2015-05-28 | 2018-03-27 | 武汉精测电子集团股份有限公司 | 一种基于软处理器的图像信号源及其处理图像信号的方法 |
CN106020864A (zh) * | 2016-05-10 | 2016-10-12 | 西安电子工程研究所 | 基于网络和光纤数据传输实现的多板卡fpga程序烧写方法 |
CN108073427A (zh) * | 2017-10-19 | 2018-05-25 | 深圳市风云实业有限公司 | Fpga镜像加载方法及系统 |
CN107766251A (zh) * | 2017-11-08 | 2018-03-06 | 郑州云海信息技术有限公司 | 加载image的检测方法、系统、设备及可读存储介质 |
CN107766251B (zh) * | 2017-11-08 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 加载image的检测方法、系统、设备及可读存储介质 |
CN108231132A (zh) * | 2017-12-28 | 2018-06-29 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证系统 |
CN108231132B (zh) * | 2017-12-28 | 2020-12-25 | 北京兆易创新科技股份有限公司 | 一种nand闪存验证装置和验证系统 |
CN109144914A (zh) * | 2018-07-25 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种存储服务器、主板与硬盘之间的通信方法及cpld |
CN111784872A (zh) * | 2020-06-30 | 2020-10-16 | 湖南中车时代通信信号有限公司 | 一种监控记录插件的列车多交路运行数据切换存储装置 |
CN115145642A (zh) * | 2022-06-14 | 2022-10-04 | 杭州未名信科科技有限公司 | 一种软件启动方法和系统 |
CN115145642B (zh) * | 2022-06-14 | 2024-05-17 | 杭州未名信科科技有限公司 | 一种软件启动方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104572211B (zh) | 2017-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104572211A (zh) | 基于arm的fpga程序多镜像加载方法 | |
US20190339869A1 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
KR101281326B1 (ko) | 메모리 장치의 활용 영역 확장 | |
EP3161622B1 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology | |
US10866737B2 (en) | Apparatus, method and system to store information for a solid state drive | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN101840345A (zh) | 一种配置参数的识别方法、系统及嵌入式设备 | |
JP2014508332A (ja) | 判定方法、判定装置、判定システム、記憶媒体 | |
WO2013192633A2 (en) | Virtual memory module | |
CN104156234A (zh) | 启动多核处理器、bootloader大小端模式自适应的方法及装置 | |
CN105573913A (zh) | 一种onu系统中的程序调试方法及系统 | |
CN104050006A (zh) | 一种fpga的更新系统及其更新方法 | |
CN105556461B (zh) | 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
CN101118494A (zh) | 嵌入式设备从外接电子卡启动操作系统的系统与方法 | |
CN112363959B (zh) | 一种数据寻址方法、存储装置、芯片和数据存储系统 | |
KR102116096B1 (ko) | 다중시스템 및 이의 부팅 방법 | |
CN102662617A (zh) | 一种kvm中vga信号切换的实现方法 | |
CN114385524B (zh) | 嵌入式固件仿真系统及其方法、装置和电子设备 | |
CN104765626A (zh) | 一种固件程序烧写方法及装置 | |
CN105068835A (zh) | 移动终端及其调试信息显示方法 | |
CN104699410A (zh) | 一种信息处理方法及电子设备 | |
CN104021006A (zh) | 可延伸韧体接口外接显示卡、主机系统、及相关开机方法 | |
CN107229413B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 | |
CN105094935A (zh) | 一种在电子设备中写固件的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 430070 Hubei City, Hongshan Province, South Lake Road, No. 53, Hongshan Venture Center, building on the 4 floor, No. Patentee after: Wuhan fine test electronics group Limited by Share Ltd Address before: 430070 Hubei City, Hongshan Province, South Lake Road, No. 53, Hongshan Venture Center, building on the 4 floor, No. Patentee before: Wuhan Jingce Electronic Technology Co., Ltd. |