CN104765626B - 一种固件程序烧写方法及装置 - Google Patents

一种固件程序烧写方法及装置 Download PDF

Info

Publication number
CN104765626B
CN104765626B CN201410008219.6A CN201410008219A CN104765626B CN 104765626 B CN104765626 B CN 104765626B CN 201410008219 A CN201410008219 A CN 201410008219A CN 104765626 B CN104765626 B CN 104765626B
Authority
CN
China
Prior art keywords
program
interface
firmware program
firmware
read
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
Application number
CN201410008219.6A
Other languages
English (en)
Other versions
CN104765626A (zh
Inventor
陈俊伟
张伟进
贾兵
石明
傅子奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN ZHONGDIAN CHANGCHENG INFORMATION SAFETY SYSTEM Co Ltd
Original Assignee
SHENZHEN ZHONGDIAN CHANGCHENG INFORMATION SAFETY SYSTEM Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENZHEN ZHONGDIAN CHANGCHENG INFORMATION SAFETY SYSTEM Co Ltd filed Critical SHENZHEN ZHONGDIAN CHANGCHENG INFORMATION SAFETY SYSTEM Co Ltd
Priority to CN201410008219.6A priority Critical patent/CN104765626B/zh
Publication of CN104765626A publication Critical patent/CN104765626A/zh
Application granted granted Critical
Publication of CN104765626B publication Critical patent/CN104765626B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明适用于计算机领域,提供了一种固件程序和开机图的烧写方法及装置,所述方法包括下述步骤:在内核程序中添加固件程序调用接口;在应用程序的驱动模块中添加调用固件程序接口的读写函数接口;应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。本发明通过在内核程序中添加固件程序调用接口,通过在应用程序中添加读写函数接口,读写函数调用内核程序中的固件程序调用接口直接将固件程序写入到flash芯片中,省去了通过专用烧写工具烧写飞腾平台固件程序的麻烦。

Description

一种固件程序烧写方法及装置
技术领域
本发明属于计算机领域,尤其涉及一种固件程序烧写方法及装置。
背景技术
在计算机硬件中,通常采用flash芯片存储着bios(Basic Input Output System)基本输入输出系统的固件程序,开机时bios程序会检测系统硬件的状态,显示开机图等,flash芯片是计算机引导过程的重要模块,在飞腾计算机平台的bios程序开发过程中,每次更新代码,都需要把flash芯片从计算机主板上卸载下来,然后通过专用的烧写工具,把新的代码写进flash芯片。而拆卸的过程比较麻烦,会大大影响工作效率。
发明内容
本发明实施例的目的在于提供一种固件程序烧写方法及装置,旨在提供一种固件程序烧写方法,在内核程序中添加固件程序调用接口,通过在应用程序中添加读写函数接口,读写函数调用内核程序中的固件程序调用接口直接将固件程序写入到flash芯片中,省去了通过专用烧写工具烧写飞腾平台固件程序的麻烦。
本发明实施例是这样实现的,一种固件程序和开机图的烧写方法,所述方法包括下述步骤:
在内核程序中添加固件程序调用接口;
在应用程序的驱动模块中添加调用固件程序接口的读写函数接口;
应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
进一步的,所述在应用程序的驱动模块中添加调用固件程序接口的读写函数接口的步骤包括:
在应用程序内定义与内核结构相同的结构体;
在应用程序的驱动模块中添加预设函数,所述预设函数用于调用读写函数接口,所述读写函数接口用于调用固件程序接口。
进一步的,所述应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中的步骤包括:
应用程序通过所述调用固件程序接口的读写函数接口调用内核程序;
选择要烧写的固件程序文件的和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
进一步的,所述方法在在应用程序的驱动模块中添加调用固件程序接口的读写函数接口步骤之后还包括:
将固件程序代码进行编译,并编译成预定文件格式的文件
本发明实施例的另一目的在于提供一种固件程序烧写装置,所述装置包括:
调用接口添加单元,用于在内核程序中添加固件程序调用接口;
读写接口添加单元,用于在应用程序的驱动模块中添加调用固件程序接口的读写函数接口;
烧写单元,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
进一步的,所述读写接口添加单元包括:
结构体定义单元,用于在应用程序内定义与内核结构相同的结构体;
函数添加单元,用于在应用程序的驱动模块中添加预设函数,所述预设函数用于调用读写函数接口,所述读写函数接口用于调用固件程序接口。
进一步的,所述烧写单元包括:
内核调用单元,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序;
写入单元,用于选择要烧写的固件程序文件的和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
进一步的,所述装置还包括:
编译单元,用于将固件程序代码进行编译,并编译成预定文件格式的文件。
本发明实施例通过一种固件程序烧写方法及装置,通过在内核程序中添加调用接口,在应用程序中添加函数读写接口,通过应用程序的读写接口调用内核的接口,应用程序直接将需要烧写的固件程序烧写到flash芯片中,完成对bios的更新,由于直接通过应用程序调用内核程序可以直接在本机上进行烧写,不必再将飞腾平台的flash芯片卸载下来通过专用的烧写工具进行烧写,提高烧写固件程序的效率。
附图说明
图1是本发明第一实施例提供的一种固件程序烧写方法的实现流程图;
图2是本发明第二实施例提供的一种固件程序烧写方法的实现流程图;
图3是本发明第三实施例提供的一种固件程序烧写装置的结构图;以及
图4是本发明第四实施例提供的一种固件程序烧写装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一:
图1示出了本发明第一实施例提供的一种固件程序烧写方法的实现流程,详述如下:
S101,在内核程序中添加固件程序调用接口。
在飞腾平台上,在飞腾平台的内核程序中添加一固件程序接口,其中内核程序为飞腾平台的主板内核程序。
S102,在应用程序的驱动模块中添加调用固件程序接口的读写函数接口。
在应用程序的驱动模块中添加可以调用固件程序接口的函数接口,具体的函数接口为读写函数接口,通过添加的读写函数接口,可以实现调用固件程序接口。
S103,应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
在飞腾平台上运行应用程序,应用程序存储在外接存储设备上,通过在外接存储设备上运行应用程序,应用程序通过调用固件程序接口的读写函数接口直接调用内核程序,通过调用内核程序将固件程序写入到flash的芯片中,完成对flash的升级更新。
本发明实施例通过上述方式,一种固件程序烧写方法,在飞腾平台上,通过对飞腾平台的内核程序添加固件程序调用接口,同时在应用程序的驱动模块中添加调用固件程序接口的读写函数接口,在运行应用程序时,直接通过应用程序中的读写函数接口调用内核程序中的固件程序调用接口完成对内核程序的调用,通过对内核程序的调用,可以直接将需要烧写的固件程序少写入flash芯片中,完成对固件程序的烧写,由于只需要在内核和应用程序中添加对应的接口,可以直接在本机上完成操作,在进行烧写时就不必再将flash卸载下来通过专有的烧写设备进行烧写,提高了更新固件程序时烧写固件程序的效率。
实施例二:
图2示出了本发明第二实施例提供的一种固件程序烧写方法的实现流程,详述如下:
S201,在内核程序中添加固件程序调用接口。
首先对飞腾平台的内核程序进行处理,在飞腾平台的内核中添加固件程序调用接口,添加的固件程序在具体实施时可以通过以下函数进行:
S202,在应用程序内定义与内核结构相同的结构体。
在应用程序内定义与内核结构相同的结构体,定义的结构体约定把固件程序写入到系统中哪个起始的地址,写入的固件程序大小以及在内存中如何通过约定的函数传递到内核中,在具体实施中可以通过ioct()函数。
S203,在应用程序的驱动模块中添加预设函数,所述预设函数用于调用读写函数接口,所述读写函数接口用于调用固件程序接口。
在应用程序的驱动模块中添加预设的预设函数,预设函数也可以通过ioct()函数进行,通过ioct()函数可以调用读写函数接口,读写函数可以调用固件程序接口。
S204,将固件程序代码进行编译,并编译成预定文件格式的文件。
由于固件程序在写入到flash芯片中时,需要以二进制的形式进行写入,因此需要对固件程序进行编译,编译为预定文件格式的文件。
S205,应用程序通过所述调用固件程序接口的读写函数接口调用内核程序。
在启动飞腾平台后,打卡应用程序通过应用程序调用固件程序接口的读写函数接口,读写函数接口直接调用内核程序。
S206,选择要烧写的固件程序文件的和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
在应用程序调用到内核程序以后,用户可以根据需要选择要烧写的固件程序文件,以及固件程序文件烧写入flash时的烧写模式,例如可以选择OBP(Open Boot PROM)诊断工具模式只烧入部分文件,或者全局烧入模式将固件程序文件烧入到flash芯片中。
本发明实施例通过上述方式,一种固件程序烧写方法,在飞腾平台上,通过对飞腾平台的主板内核程序添加固件程序调用接口,使得其他程序可以通过该固件程序调用接口调用内核程序,再在应用程序的驱动模块中添加一调用固件程序接口的读写函数接口,之后运行应用程序,通过应用程序的读写函数接口调用连接到固件程序调用接口,通过固件程序调用接口调用到内核程序,将需要写入到flash芯片中的固件程序通过内核程序写入到flash芯片中,完成对flash芯片的在线升级更新,由于可以直接通过内核程序进行写入便不需要通过专用的烧写工具进行更新,同时也不需要将飞腾平台上的flash芯片卸载下来,提高了更新flash芯片固件程序的效率。
实施例三:
图3示出了本发明第三实施例提供的一种固件程序烧写装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
调用接口添加单元31,用于在内核程序中添加固件程序调用接口。
调用接口添加单元用于在飞腾平台上,在飞腾平台的内核程序中添加一固件程序接口,其中内核程序为飞腾平台的主板内核程序。
读写接口添加单元32,用于在应用程序的驱动模块中添加调用固件程序接口的读写函数接口。
读写接口添加单元用于在应用程序的驱动模块中添加可以调用固件程序接口的函数接口,具体的函数接口为读写函数接口,通过添加的读写函数接口,可以实现调用固件程序接口。
烧写单元33,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
烧写单元用于在飞腾平台上运行应用程序,应用程序存储在外接存储设备上,通过在外接存储设备上运行应用程序,应用程序通过调用固件程序接口的读写函数接口直接调用内核程序,通过调用内核程序将固件程序写入到flash的芯片中,完成对flash的升级更新。
本发明实施例通过上述方式,一种固件程序烧写装置,在飞腾平台上,通过对飞腾平台的内核程序添加固件程序调用接口,同时在应用程序的驱动模块中添加调用固件程序接口的读写函数接口,在运行应用程序时,直接通过应用程序中的读写函数接口调用内核程序中的固件程序调用接口完成对内核程序的调用,通过对内核程序的调用,可以直接将需要烧写的固件程序少写入flash芯片中,完成对固件程序的烧写,由于只需要在内核和应用程序中添加对应的接口,可以直接在本机上完成操作,在进行烧写时就不必再将flash卸载下来通过专有的烧写设备进行烧写,提高了更新固件程序时烧写固件程序的效率。
实施例四:
图4示出了本发明第四实施例提供的一种固件程序烧写装置的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。
调用接口添加单元41,用于在内核程序中添加固件程序调用接口。
调用接口添加单元用于首先对飞腾平台的内核程序进行处理,在飞腾平台的内核中添加固件程序调用接口,添加的固件程序在具体实施时可以通过以下sun4v_flash_rw()函数进行。
结构体定义单元42,用于在应用程序内定义与内核结构相同的结构体。
结构体定义单元用于在应用程序内定义与内核结构相同的结构体,定义的结构体约定把固件程序写入到系统中哪个起始的地址,写入的固件程序大小以及在内存中如何通过约定的函数传递到内核中,在具体实施中可以通过ioct()函数。
函数添加单元43,用于在应用程序的驱动模块中添加预设函数,所述预设函数用于调用读写函数接口,所述读写函数接口用于调用固件程序接口。
函数添加单元用于在应用程序的驱动模块中添加预设的预设函数,预设函数也可以通过ioct()函数进行,通过ioct()函数可以调用读写函数接口,读写函数可以调用固件程序接口。
编译单元44,用于将固件程序代码进行编译,并编译成预定文件格式的文件。
由于固件程序在写入到flash芯片中时,需要以二进制的形式进行写入,因此需要对固件程序进行编译,编译为预定文件格式的文件,通过编译单元将固件程序代码进行编译,并编译成预定文件格式的文件。
内核调用单元45,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序。
内核调用单元用于在启动飞腾平台后,打卡应用程序通过应用程序调用固件程序接口的读写函数接口,读写函数接口直接调用内核程序。
写入单元46,用于选择要烧写的固件程序文件的和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
写入单元用于在应用程序调用到内核程序以后,用户可以根据需要选择要烧写的固件程序文件,以及固件程序文件烧写入flash时的烧写模式,例如可以选择OBP(OpenBoot PROM)诊断工具模式只烧入部分文件,或者全局烧入模式将固件程序文件烧入到flash芯片中。
本发明实施例通过上述方式,一种固件程序烧写装置,在飞腾平台上,通过对飞腾平台的主板内核程序添加固件程序调用接口,使得其他程序可以通过该固件程序调用接口调用内核程序,再在应用程序的驱动模块中添加一调用固件程序接口的读写函数接口,之后运行应用程序,通过应用程序的读写函数接口调用连接到固件程序调用接口,通过固件程序调用接口调用到内核程序,将需要写入到flash芯片中的固件程序通过内核程序写入到flash芯片中,完成对flash芯片的在线升级更新,由于可以直接通过内核程序进行写入便不需要通过专用的烧写工具进行更新,同时也不需要将飞腾平台上的flash芯片卸载下来,提高了更新flash芯片固件程序的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种固件程序烧写方法,其特征在于,所述方法包括下述步骤:
在内核程序中添加固件程序调用接口;
在应用程序的驱动模块中添加调用固件程序接口的读写函数接口;
应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中;
其中,所述在应用程序的驱动模块中添加调用固件程序接口的读写函数接口的步骤包括:
在应用程序内定义与内核结构相同的结构体,定义的结构体约定把固件程序写入到系统中哪个起始的地址,写入的固件程序大小以及在内存中如何通过约定的函数传递到内核中;
在应用程序的驱动模块中添加预设函数,所述预设函数用于通过ioct()函数调用读写函数接口,所述读写函数接口用于调用固件程序接口。
2.如权利要求1所述的方法,其特征在于,所述应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中的步骤包括:
应用程序通过所述调用固件程序接口的读写函数接口调用内核程序;
选择要烧写的固件程序文件和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
3.如权利要求1所述的方法,其特征在于,所述方法在在应用程序的驱动模块中添加调用固件程序接口的读写函数接口步骤之后还包括:
将固件程序代码进行编译,并编译成预定文件格式的文件。
4.一种固件程序烧写装置,其特征在于,所述装置包括:
调用接口添加单元,用于在内核程序中添加固件程序调用接口;
读写接口添加单元,用于在应用程序的驱动模块中添加调用固件程序接口的读写函数接口;
烧写单元,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中;
其中,所述读写接口添加单元包括:
结构体定义单元,用于在应用程序内定义与内核结构相同的结构体,定义的结构体约定把固件程序写入到系统中哪个起始的地址,写入的固件程序大小以及在内存中如何通过约定的函数传递到内核中;
函数添加单元,用于在应用程序的驱动模块中添加预设函数,所述预设函数用于通过ioct()函数调用读写函数接口,所述读写函数接口用于调用固件程序接口。
5.如权利要求4所述的装置,其特征在于,所述烧写单元包括:
内核调用单元,用于应用程序通过所述调用固件程序接口的读写函数接口调用内核程序;
写入单元,用于选择要烧写的固件程序文件和固件程序文件写入的模式,应用程序通过所述调用的内核程序将固件程序写入到flash芯片中。
6.如权利要求4所述的装置,其特征在于,所述装置还包括:
编译单元,用于将固件程序代码进行编译,并编译成预定文件格式的文件。
CN201410008219.6A 2014-01-08 2014-01-08 一种固件程序烧写方法及装置 Active CN104765626B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410008219.6A CN104765626B (zh) 2014-01-08 2014-01-08 一种固件程序烧写方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410008219.6A CN104765626B (zh) 2014-01-08 2014-01-08 一种固件程序烧写方法及装置

Publications (2)

Publication Number Publication Date
CN104765626A CN104765626A (zh) 2015-07-08
CN104765626B true CN104765626B (zh) 2018-05-04

Family

ID=53647475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410008219.6A Active CN104765626B (zh) 2014-01-08 2014-01-08 一种固件程序烧写方法及装置

Country Status (1)

Country Link
CN (1) CN104765626B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018032460A1 (zh) * 2016-08-18 2018-02-22 深圳中兴力维技术有限公司 一种设备的远程升级方法、装置及系统
CN106909426A (zh) * 2017-03-13 2017-06-30 合肥极友软件开发有限公司 基于FlashMemory的芯片程序升级方法
CN108932132A (zh) * 2018-05-23 2018-12-04 郑州云海信息技术有限公司 一种通过bios升级cpld的系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183337A (zh) * 2007-12-12 2008-05-21 中兴通讯股份有限公司 基于nand flash移动终端存储介质的空间管理方法
CN102662883A (zh) * 2012-03-31 2012-09-12 中国人民解放军国防科学技术大学 用于多硬件平台的飞腾服务器的机器类型识别方法
CN103425461A (zh) * 2012-05-14 2013-12-04 研祥智能科技股份有限公司 一种编程接口技术实现方法及计算机系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8402109B2 (en) * 2005-02-15 2013-03-19 Gytheion Networks Llc Wireless router remote firmware upgrade

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183337A (zh) * 2007-12-12 2008-05-21 中兴通讯股份有限公司 基于nand flash移动终端存储介质的空间管理方法
CN102662883A (zh) * 2012-03-31 2012-09-12 中国人民解放军国防科学技术大学 用于多硬件平台的飞腾服务器的机器类型识别方法
CN103425461A (zh) * 2012-05-14 2013-12-04 研祥智能科技股份有限公司 一种编程接口技术实现方法及计算机系统

Also Published As

Publication number Publication date
CN104765626A (zh) 2015-07-08

Similar Documents

Publication Publication Date Title
US20110154299A1 (en) Apparatus and method for executing instrumentation code
US20150363265A1 (en) Method for controlling memory apparatus, and associated memory apparatus and controller thereof
WO2017020647A1 (zh) 基于新型存储器的嵌入式文件系统及其实现方法
KR20130073804A (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
CN103838521A (zh) 一种数据处理方法及装置
CN104731622B (zh) 一种应用程序的加载方法、装置和移动终端
CN104765626B (zh) 一种固件程序烧写方法及装置
TWI232406B (en) Memory management method for simultaneously loading and executing program codes
CN106126146A (zh) 一种用于双屏异显的方法及系统
US8719637B2 (en) System and method for acquiring basic input/output system debug codes
CN104063284B (zh) 运行应用程序的方法和装置
CN114765051A (zh) 内存测试方法及装置、可读存储介质、电子设备
CN104484211A (zh) 共享镜像文件的方法及装置
JP2007226784A (ja) インラインされたメソッドの呼出方法およびそれを用いたジャバ仮想マシン
CN106294143B (zh) 芯片的寄存器的调试方法及装置
CN102750167B (zh) 应用程序启动方法、装置和计算机系统
CN113342702B (zh) 一种应用程序测试方法、装置、设备及可读存储介质
US9632805B2 (en) Data storage device and error correction method thereof
US20140052902A1 (en) Electronic device and method of generating virtual universal serial bus flash device
WO2017076034A1 (zh) 一种对移动终端的存储器进行格式化的方法和装置
CN110967612A (zh) 芯片测试方法、装置、设备与系统
CN112783562B (zh) 一种显示设备选择方法和装置
US20100205598A1 (en) Method for installing operating system in computer
CN103294491A (zh) Bios刷新方法及系统
US9268554B2 (en) Controlling method, memory controller, and data transmission system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant