CN106598652B - FPGA环境下快速启动Linux内核的系统和启动方法 - Google Patents
FPGA环境下快速启动Linux内核的系统和启动方法 Download PDFInfo
- Publication number
- CN106598652B CN106598652B CN201611058759.0A CN201611058759A CN106598652B CN 106598652 B CN106598652 B CN 106598652B CN 201611058759 A CN201611058759 A CN 201611058759A CN 106598652 B CN106598652 B CN 106598652B
- Authority
- CN
- China
- Prior art keywords
- linux kernel
- fpga
- jlink
- chip
- starting
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种FPGA环境下快速启动Linux内核的系统和启动方法,该系统包括:Linux虚拟机、Windows平台、待验证功能的芯片、FPGA平台、FPGA平台子板以及jlink调试器,所述jlink调试器与所述芯片连接,所述jlink调试器通过所述FPGA平台子板与所述FPGA平台连接,通过所述jlink调试器快速启动Linux内核。与相关技术相比,本发明提供的FPGA环境下快速启动Linux内核的系统和启动方法,具有如下有益效果:省略了bootrom和uboot的繁琐过程,取消网络文件系统的挂载,节省了大量的平台搭建和调试时间;解决了芯片开发验证过程中与Linux系统驱动调试的衔接流程,可反向验证芯片功能,减少芯片开发周期,提高芯片质量,节省开发成本。
Description
技术领域
本发明涉及通信终端技术领域,尤其涉及一种FPGA环境下快速启动Linux内核的系统和启动方法。
背景技术
芯片开发过程中验证芯片功能是电子领域的一个重要部分。在芯片验证过程中调试Linux内核,可有效验证芯片功能,提升芯片开发质量,减少开发成本。因此FPGA环境下快速启动Linux内核就成为验证芯片功能的重要课题。
在传统的arm Linux内核启动过程中,先是通过bootrom启动uboot,然后是使用uboot启动Linux内核。并且在对内核的调试过程中,还可能会使用网口下载内核,并挂载网络文件系统。这个过程在FPGA环境下不单单会变得非常繁琐,并且从调试bootrom到内核启动的整个过程会耗费很长的时间。
因此,有必要提供一种新的FPGA环境下快速启动Linux内核的系统和启动方法来解决上述问题。
发明内容
本发明需要解决的技术问题是提供一种FPGA环境下快速启动Linux内核的系统和方法,其可验证芯片功能、减少芯片开发周期、提高芯片质量,以及节省开发成本。
本发明提供了一种FPGA环境下快速启动Linux内核的系统,在于,包括:
Linux虚拟机,具有Linux内核编译环境;
Windows平台,与所述Linux虚拟机连接,用于启动所述Linux虚拟机;
待验证功能的芯片,其与所述Linux虚拟机连接,包括内存、CPU和寄存器,所述寄存器包括寄存器r1、寄存器r2和寄存器r4;
FPGA平台、FPGA平台子板以及jlink调试器,所述jlink调试器与所述芯片连接,所述jlink调试器通过所述FPGA平台子板与所述FPGA平台连接;
其中,通过所述jlink调试器快速启动Linux内核。
优选的,所述FPGA平台子板包括jtag接口,所述jlink调试器通过所述jtag接口与所述FPGA平台子板连接。
优选的,所述jlink调试器通过GDB server查看所述jlink调试器是否与所述FPGA平台连接成功。
为了解决上述技术问题,本发明还提供了一种根据所述的FPGA环境下快速启动Linux内核的系统的启动方法,包括如下步骤:
通过FPGA平台子板将jlink调试器与FPGA平台连接;
初始化芯片的内存和CPU,通过jlink测试程序将所述芯片的机器码、uboot传递给所述Linux内核的参数地址以及将所述Linux内核的地址写入到寄存器;
将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台;
在所述FPGA平台启动所述jlink测试程序,设置完所述CPU和寄存器后直接启动所述Linux内核。
优选的,所述芯片的机器码写入到寄存器r1,uboot传递给所述Linux内核的参数地址写入到寄存器r2,所述Linux内核的地址写入到寄存器r4。
优选的,通过脚本或手动或所述jlink测试程序中的jlink软件将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台。
与相关技术相比,本发明提供的FPGA环境下快速启动Linux内核的系统和启动方法,具有如下有益效果:
1、芯片可以在FPGA环境下快速将Linux内核下载到FPGA平台,省略了bootrom和uboot的繁琐过程,取消网络文件系统的挂载,节省了大量的平台搭建和调试时间;
2、解决了芯片开发验证过程中与Linux系统驱动调试的衔接流程;
3、在芯片验证过程中可以快速进行Linux系统调试,并可反向验证芯片功能,减少芯片开发周期,提高芯片质量,节省开发成本。
附图说明
图1为本发明FPGA环境下快速启动Linux内核的系统结构框图;
图2为本发明FPGA环境下快速启动Linux内核的方法流程图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图为本发明FPGA环境下快速启动Linux内核的系统结构框图。所述FPGA环境下快速启动Linux内核的系统100包括Linux虚拟机1、Windows平台2、芯片3、FPGA平台4、FPGA平台子板5以及jlink调试器6。
所述Linux虚拟机1具有Linux内核编译环境,所述Windows平台2与所述Linux虚拟机1连接,用于启动所述Linux虚拟机1。在所述Linux虚拟机1启动后,进入Linux内核并配置所述Linux内核,运行Linux内核配置命令“make menuconfig”进入配置界面,在Generalsetup下的initrmafs source file中添加所述Linux内核的文件系统路径,其他模块的驱动根据所述芯片3的实际情况进行配置。所述Linux内核在编译时,会将文件系统压缩打包成单个文件,并放入所述Linux内核,在启动所述Linux内核后直接挂载内存文件系统。
待验证功能的所述芯片3与所述Linux虚拟机1连接,包括内存、CPU和寄存器,所述寄存器包括寄存器r1、寄存器r2和寄存器r4。
所述jlink调试器6与所述芯片3连接,所述jlink调试器6通过所述FPGA平台子板5与所述FPGA平台4连接,所述FPGA平台子板5包括jtag接口,所述jlink调试器6通过所述jtag接口与所述FPGA平台子板5连接。在启动所述FPGA平台4后,下载所述芯片3的仿真软核到所述FPGA平台4。通过所述jlink调试器6快速启动所述Linux内核。
请一并参阅图2,图2为本发明FPGA环境下快速启动Linux内核的方法流程图。本发明提供了一种根据所述FPGA环境下快速启动Linux内核的系统100的启动方法,包括如下步骤:
S1、通过所述FPGA平台子板5将所述jlink调试器6与所述FPGA平台4连接;
所述jlink调试器6通过GDB server工具查看其是否与所述FPGA平台4连接成功。
S2、初始化所述芯片3的内存和CPU,通过jlink测试程序将所述芯片3的机器码、uboot传递给所述Linux内核的参数地址以及Linux内核地址写入到所述寄存器;
具体的,所述芯片3的机器码写入到所述寄存器r1,uboot传递给所述Linux内核的参数地址写入到所述寄存器r2,所述Linux内核的地址写入到所述寄存器r4。
S3、将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台4;
具体的,通过脚本或手动或所述jlink测试程序中的jlink软件将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台4。
所述jlink测试程序主要用于启动所述jlink软件以及初始化所述芯片3的所述内存和所述CPU。所述jlink测试程序和脚本的具体功能是初始化所述芯片3的所述内存后,所述jlink调试器6可访问该内存,将需要传递到jlink内核的参数和linux内核通过所述jlink调试器6下载到该内存中;脚本的功能是下载所述jlink内核和传递到jlink内核的参数;测试程序功能是初始化所述芯片3的所述CPU,存放所述芯片3的机器码、参数地址和内核地址。
S4、在所述FPGA平台4启动所述jlink测试程序,设置完所述CPU和所述寄存器后直接启动所述Linux内核。这样,不需要除了所述芯片3的所述内存外的额外的存储设备。
在步骤S4之后,可以使用所述jlink调试器6随时暂停所述Linux内核,查看所述芯片3的所述寄存器和所述内存,当然,也可以直接在Linux终端上输入命令测试其它功能。
与相关技术相比,本发明提供的FPGA环境下快速启动Linux内核的系统和启动方法,具有如下有益效果:
1、所述芯片3可以在FPGA环境下快速将所述Linux内核下载到所述FPGA平台4,省略了bootrom和uboot的繁琐过程,取消网络文件系统的挂载,节省了大量的平台搭建和调试时间;
2、解决了所述芯片3开发验证过程中与Linux系统驱动调试的衔接流程;
3、在所述芯片3验证过程中可以快速进行Linux系统调试,并可反向验证芯片功能,减少芯片开发周期,提高芯片质量,节省开发成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种FPGA环境下快速启动Linux内核的系统的启动方法,其特征在于,包括如下步骤:
提供一种FPGA环境下快速启动Linux内核的系统,其包括:Linux虚拟机,具有Linux内核编译环境;Windows平台,与所述Linux虚拟机连接,用于启动所述Linux虚拟机;待验证功能的芯片,其与所述Linux虚拟机连接,包括内存、CPU和寄存器,所述寄存器包括寄存器r1、寄存器r2和寄存器r4;FPGA平台、FPGA平台子板以及jlink调试器,所述jlink调试器与所述芯片连接,所述jlink调试器通过所述FPGA平台子板与所述FPGA平台连接;其中,通过所述jlink调试器快速启动Linux内核;
通过FPGA平台子板将jlink调试器与FPGA平台连接;
初始化芯片的内存和CPU,通过jlink测试程序将所述芯片的机器码、uboot传递给所述Linux内核的参数地址以及将所述Linux内核的地址写入到寄存器;
将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台;
在所述FPGA平台启动所述jlink测试程序,设置完所述CPU和寄存器后直接启动所述Linux内核。
2.根据权利要求1所述的FPGA环境下快速启动Linux内核的系统的启动方法,其特征在于,所述芯片的机器码写入到寄存器r1,uboot传递给所述Linux内核的参数地址写入到寄存器r2,所述Linux内核的地址写入到寄存器r4。
3.根据权利要求1所述的FPGA环境下快速启动Linux内核的系统的启动方法,其特征在于,通过脚本或手动或所述jlink测试程序中的jlink软件将所述Linux内核和传递给所述Linux内核的参数文件下载到所述FPGA平台。
4.根据权利要求1所述的FPGA环境下快速启动Linux内核的系统的启动方法,其特征在于,所述FPGA平台子板包括jtag接口,所述jlink调试器通过所述jtag接口与所述FPGA平台子板连接。
5.根据权利要求1所述的FPGA环境下快速启动Linux内核的系统的启动方法,其特征在于,所述jlink调试器通过GDB server查看所述jlink调试器是否与所述FPGA平台连接成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611058759.0A CN106598652B (zh) | 2016-11-25 | 2016-11-25 | FPGA环境下快速启动Linux内核的系统和启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611058759.0A CN106598652B (zh) | 2016-11-25 | 2016-11-25 | FPGA环境下快速启动Linux内核的系统和启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598652A CN106598652A (zh) | 2017-04-26 |
CN106598652B true CN106598652B (zh) | 2021-01-01 |
Family
ID=58593436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611058759.0A Active CN106598652B (zh) | 2016-11-25 | 2016-11-25 | FPGA环境下快速启动Linux内核的系统和启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598652B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111240238B (zh) * | 2020-01-13 | 2021-05-14 | 大唐微电子技术有限公司 | 一种芯片控制系统 |
CN111767231B (zh) * | 2020-07-08 | 2023-10-31 | 瓴盛科技有限公司 | 多平台Bootrom验证方法、装置、系统和计算机可读介质 |
CN112363752B (zh) * | 2020-11-11 | 2023-11-03 | 海光信息技术股份有限公司 | 基于可配置的操作系统的芯片验证方法及其设备 |
CN112416446B (zh) * | 2020-11-19 | 2022-03-29 | 深圳忆联信息系统有限公司 | 基于微软布署系统的Linux网络启动方法及装置 |
CN113918228B (zh) * | 2021-09-15 | 2023-10-13 | 成都安恒信息技术有限公司 | 一种基于多cpu架构的内存文件系统启动方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211266A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 一种实现fpga自动下载和在线升级的方法 |
CN106155657A (zh) * | 2014-12-26 | 2016-11-23 | 美商安迈科技股份有限公司 | Uefi 固件的方法及其计算机系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100454319C (zh) * | 2007-10-15 | 2009-01-21 | 北京航空航天大学 | 一种导航系统的微型处理器ip核设计方法 |
-
2016
- 2016-11-25 CN CN201611058759.0A patent/CN106598652B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101211266A (zh) * | 2006-12-30 | 2008-07-02 | 北京天融信网络安全技术有限公司 | 一种实现fpga自动下载和在线升级的方法 |
CN106155657A (zh) * | 2014-12-26 | 2016-11-23 | 美商安迈科技股份有限公司 | Uefi 固件的方法及其计算机系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106598652A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598652B (zh) | FPGA环境下快速启动Linux内核的系统和启动方法 | |
US7185321B1 (en) | Method and system for debugging through supervisory operating codes and self modifying codes | |
US7171653B2 (en) | Systems and methods for providing communication between a debugger and a hardware simulator | |
CN110046479B (zh) | 一种基于安卓操作系统的链接库文件反调试方法及装置 | |
US20080126862A1 (en) | System and Method for Testing Software Code for Use on a Target Processor | |
CN112506785A (zh) | Html5游戏页面登录的自动化测试方法、装置、设备和介质 | |
KR100607023B1 (ko) | 프로그램 처리 장치 | |
US7016826B2 (en) | Apparatus and method of developing software for a multi-processor chip | |
CN110704113A (zh) | 一种基于fpga平台的启动方法、系统及开发板装置 | |
CN113392027A (zh) | 移动端应用的兼容性测试方法、系统及电子设备 | |
US6751569B2 (en) | System and method for receiving information from a test apparatus | |
CN111176757B (zh) | 基于JTAG的SoC启动方法和装置 | |
CN109902001B (zh) | 对未初始化变量的检测方法及终端设备 | |
CN111414182A (zh) | 一种基于spi的fpga远程升级方法 | |
CN115878267A (zh) | 对固件系统的仿真装置、方法、存储介质及电子设备 | |
CN114265786A (zh) | 自动化测试方法、装置,计算机设备及可读存储介质 | |
Anand | Secure bootloader for connectivity mcu | |
CN113672260A (zh) | 一种处理器cpu初始化方法 | |
CN104793964B (zh) | java卡及其应用更新方法、应用于java卡的终端、智能卡系统 | |
CN112463675A (zh) | 一种程序离线下载方法 | |
Fidalgo et al. | A modified debugging infrastructure to assist real time fault injection campaigns | |
CN115270107B (zh) | 一种信息验证方法、装置、可读介质及电子设备 | |
CN108170463B (zh) | 一种安卓设备的出厂设置方法和装置 | |
CN102799466B (zh) | 一种应用于PowerPC最小系统的引导装置及引导方法 | |
Pisa et al. | QEMU CAN Controller Emulation with Connection to a Host System CAN Bus |
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 | ||
GR01 | Patent grant |