CN107066301B - 一种嵌入式计算机固件程序的下载方法 - Google Patents

一种嵌入式计算机固件程序的下载方法 Download PDF

Info

Publication number
CN107066301B
CN107066301B CN201710287514.3A CN201710287514A CN107066301B CN 107066301 B CN107066301 B CN 107066301B CN 201710287514 A CN201710287514 A CN 201710287514A CN 107066301 B CN107066301 B CN 107066301B
Authority
CN
China
Prior art keywords
setting
cpu
flash
firmware program
downloading
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
CN201710287514.3A
Other languages
English (en)
Other versions
CN107066301A (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.)
Beijing Etrol Oil And Gas Technology Co ltd
Original Assignee
Beijing Echo Technologies 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 Beijing Echo Technologies Co ltd filed Critical Beijing Echo Technologies Co ltd
Priority to CN201710287514.3A priority Critical patent/CN107066301B/zh
Publication of CN107066301A publication Critical patent/CN107066301A/zh
Application granted granted Critical
Publication of CN107066301B publication Critical patent/CN107066301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种嵌入式计算机固件程序的下载方法。所述方法包括:安装Segger公司开发的ARM开发工具包,打开J‑Flash ARM软件;修改嵌入式计算机的CPU对应的.jflash配置文件;装载修改后的.jflash配置文件,设置Jlink下载器参数;使用Jlink下载器向所述CPU的外接Flash并行加载固件程序。本发明所述方法具有操作简便、下载速度快等优点,解决了现有下载方法中存在的操作繁复、因串行传输数据使下载速度缓慢等问题。

Description

一种嵌入式计算机固件程序的下载方法
技术领域
本发明涉及电子信息领域,特别涉及一种嵌入式计算机固件程序的下载方法,应用于因CPU自身不带Flash程序存储器需外接并行Flash作为存储器的嵌入式计算机。
背景技术
在众多的嵌入式CPU处理器中,有一部分CPU不带内部Flash,并且其自身的内部RAM容量也很小,例如Atmel公司的AT91M55800处理器。在产品开发中选用这样的CPU处理器时,往往需要外接并行Flash作为嵌入式固件程序存储器,同时需要外接RAM作为数据存储器。选用这种CPU的好处是Flash和RAM的容量可以由用户根据自己的实际情况合理地进行选择,通常选择这类CPU的原因是那些自带Flash和RAM的CPU的内部Flash或者RAM容量太小,无法满足功能强大的嵌入式计算机的需求。而使用外部Flash作为嵌入式固件存储器的一个难点在于,由于客户所选择的Flash芯片各有不同,CPU生产厂家无法给出一个通用的嵌入式固件程序下载(编程)方法。而通常使用的方案是使用AXD(ARM eXtended Debugger,ARM扩展调试器)软件加载编译好的.axf文件,在RAM环境下进行程序仿真,在仿真程序里编写Flash的读/写驱动程序,结合上位机软件使用串口协议向CPU发送固件程序数据,CPU通过编写的串口驱动程序接收到数据后将其写入Flash。由于串口通讯速率较慢,当固件程序容量很大时,使用串口进行固件程序下载耗时很长。因此,上述固件程序下载方法存在步骤繁琐、耗时长、效率低等问题,严重时甚至会影响下一道工序的正常操作。
发明内容
为了解决现有技术中存在的上述问题,本发明提出一种嵌入式计算机固件程序的下载方法,能够简化操作程序、提高下载速度。
为实现上述目的,本发明采用如下技术方案:
本发明提供一种嵌入式计算机固件程序的下载方法,包括在上位机上执行的以下步骤:
安装Segger公司开发的ARM开发工具包,打开J-Flash ARM软件;
修改嵌入式计算机的CPU对应的.jflash配置文件;
装载修改后的.jflash配置文件,设置Jlink下载器参数;
使用Jlink下载器向所述CPU的外接Flash并行加载固件程序。
进一步地,所述修改嵌入式计算机的CPU对应的.jflash配置文件,具体包括:
找到所述CPU对应的.jflash配置文件。首先将CPU复位时间设置为0ms(使CPU停止程序运行回到初始状态);然后根据所述CPU的数据手册,通过设置时钟模式寄存器的值,设置外部晶振为时钟源,允许主时钟,设置时钟稳定的计数值;设置等待PLL(Phase LockedLoop,锁相环)合成器时钟发生器稳定工作的延迟时间,设置PLL合成器时钟发生器的第一倍频时钟频率和第二倍频时钟频率(PLL合成器时钟发生器首先工作在第一倍频时钟频率,然后稳定在第二倍频时钟频率);最后根据外接Flash的数据手册,通过设置EBI(ExternalBus Interface,外部总线接口)寄存器的值,对所述外接Flash的数据总线宽度、等待状态的时钟周期、页大小、片选信号使能以及地址重映射信息进行设置。
进一步地,所述设置Jlink下载器参数,具体包括:
在J-Flash ARM下的Project settings设置项里设置下载方式为JTAG(JointTest Action Group,联合测试工作组),并且设置JTAG speed以及JTAG扫描工具链信息。
进一步地,所述使用Jlink下载器向所述CPU的外接Flash并行加载固件程序,具体包括:
使用Target->Connect连接所述CPU,使所述CPU停止程序运行回到初始状态;使用Target->Erase chip对所述外接Flash进行整片擦除,再使用Target->Program&Verify对所述外接Flash进行写操作。
与现有技术相比,本发明具有以下有益效果:
本发明提出的一种嵌入式计算机固件程序的下载方法,通过在上位机上执行以下步骤:安装Segger公司开发的ARM开发工具包,打开J-Flash ARM软件,修改嵌入式计算机的CPU对应的.jflash配置文件,装载修改后的.jflash配置文件,设置Jlink下载器参数,使用Jlink下载器向所述CPU的外接Flash并行加载固件程序,能够实现向嵌入式计算机CPU的外接Flash快速下载固件程序。本发明所述方法具有操作简便、下载速度快等优点,解决了现有下载方法中存在的操作繁复、因串行传输数据使下载速度缓慢等问题。
附图说明
图1本发明实施例一种嵌入式计算机固件程序的下载方法的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
本发明实施例一种嵌入式计算机固件程序的下载方法的流程图如图1所示,所述方法在上位机上运行,包括以下步骤:
步骤101,安装Segger公司开发的ARM开发工具包,打开J-Flash ARM软件;
步骤102,修改嵌入式计算机的CPU对应的.jflash配置文件;
步骤103,装载修改后的.jflash配置文件,设置Jlink下载器参数;
步骤104,使用Jlink下载器向所述CPU的外接Flash并行加载固件程序。
本实施例的上位机需要在Segger公司开发的J-Flash ARM软件平台上运行。J-flash arm是单独的Flash烧写软件,能够把单独的bin文件或者hex文件烧写到计算机的flash里面去。因此,如果上位机上没有安装该软件,需要先安装软件,软件安装成功后,打开所述软件。打开J-Flash ARM软件后,修改CPU对应的.jflash配置文件,在ARM开发工具包的安装目录找到.jflash配置文件,根据外接Flash的数据手册,采用文本编辑器打开并修改.jflash配置文件。修改完成后,使用J-Flash ARM软件工具装载修改过的.jflash配置文件。然后使用Jlink下载器连接CPU,并在上位机软件平台上装载需要下载的固件程序。Jlink下载器利用Flash的CFI(Common Flash Memory Interface,公共Flash接口)实现对外接Flash的擦除、编程等操作。
本实施例使用J-Flash ARM软件,通过修改并装载CPU对应的.jflash配置文件,使用Jlink下载器连接CPU,能够实现向嵌入式计算机CPU的外接Flash并行下载固件程序,提高了下载速度及编程的正确率。
作为一种可选实施例,所述修改嵌入式计算机的CPU对应的.jflash配置文件,具体包括:
找到所述CPU对应的.jflash配置文件。首先将CPU复位时间设置为0ms;然后根据所述CPU的数据手册,通过设置时钟模式寄存器的值,设置外部晶振为时钟源,允许主时钟,设置时钟稳定的计数值;设置等待PLL合成器时钟发生器稳定工作的延迟时间,设置PLL合成器时钟发生器的第一倍频时钟频率和第二倍频时钟频率;最后根据外接Flash的数据手册,通过设置EBI寄存器的值,对所述外接Flash的数据总线宽度、等待状态的时钟周期、页大小、片选信号使能以及地址重映射信息进行设置。
作为一种可选实施例,所述设置Jlink下载器参数,具体包括:
在J-Flash ARM下的Project settings设置项里设置下载方式为JTAG,并且设置JTAG speed以及JTAG扫描工具链信息。
作为一种可选实施例,所述使用Jlink下载器向所述CPU的外接Flash并行加载固件程序,具体包括:
使用Target->Connect连接所述CPU,使所述CPU停止程序运行回到初始状态;使用Target->Erase chip对所述外接Flash进行整片擦除,再使用Target->Program&Verify对所述外接Flash进行写操作。
为了更好地理解本发明实施例的技术方案,下面给出应用本发明所述方法,对Atmel公司的AT91M55800嵌入式微处理器的外接Flash(型号为SST36VF3203)快速下载固件程序的一个应用实例。方法如下:
S1、下载并且安装Segger公司开发的ARM开发工具包,打开J-Flash ARM软件。
S2、修改设置脚本文件。
AT91M55800嵌入式微处理器有1个EBI接口,该接口有8个片选信号CS0-CS7。进行硬件设计时,Flash的片选信号连接CPU的CS0引脚,外部RAM连接CPU的CS1引脚。按照CPU硬件初始化顺序进行设置:首先是CPU复位时间,设置其值为0ms,使CPU停止程序运行,回到初始状态。其次是设置系统时钟频率,根据AT91M55800的数据手册可知,寄存器地址0xFFFF4020对应的寄存器为APMC Clock Generator Mode Register,用于设置时钟模式。首先该将寄存器的值设置为0x002F0002,根据APMC Clock Generator Mode Register各个bit位的设置可知,当该寄存器的值为0x002F0002时,使用外部晶振作为时钟源,允许主时钟,以及时钟稳定计数值设定为47。然后设置延时等待20ms,等待晶振的PLL合成器时钟发生器稳定工作。延时结束之后,将寄存器的值设置为0x032F4102,先使PLL合成器时钟发生器的倍频时钟为16MHz,最后变到32MHz。系统时钟频率设置完成后,CPU将稳定运行在32MHz时钟频率。再次是设置EBI控制寄存器。由于Flash连接CPU的CS0,因此需要设置EBI_CSR0寄存器,寄存器地址为0xFFE00000。EBI_CSR0寄存器用于设置外部所接设备的数据总线宽度、等待状态的时钟周期、页大小、片选使能等信息。根据Flash芯片SST36VF3203的数据手册设置EBI_CSR0寄存器对应的bit区域值,并且一直允许片选CS0,这样Jlink就能对Flash进行持续的操作。最后设置EBI Remap Control Register寄存器,寄存器地址为0xFFE00020,将其值设置为1,这样设置可以取消CPU的RAM重映射功能,使计算机从Flash启动。
S3、装载修改后的.jflash配置文件。
在Project settings下的Target Interface中设置下载方式为JTAG,设置JTAGspeed before init值为30kHz,设置JTAG speed after init为12000kHz,设置JTAG scanchain information为Auto detection。
S4、装载嵌入式固件程序。
使用Target->Connect连接到CPU,使CPU停止程序运行,并使CPU处于halt状态,回到初始化状态。使用Target->Erase chip对Flash进行整片擦除,再使用Target->Program&Verify对Flash进行写操作,也就是下载固件程序到Flash。
上述仅对本发明中的几种具体实施例加以说明,但并不能作为本发明的保护范围,凡是依据本发明中的设计精神所做出的等效变化或修饰或等比例放大或缩小等,均应认为落入本发明的保护范围。

Claims (3)

1.一种嵌入式计算机固件程序的下载方法,其特征在于,包括:
安装Segger公司开发的ARM开发工具包,打开J-Flash ARM软件;
修改嵌入式计算机的CPU对应的.jflash配置文件:找到所述CPU对应的.jflash配置文件;首先将CPU复位时间设置为0ms;然后根据所述CPU的数据手册,通过设置时钟模式寄存器的值,设置外部晶振为时钟源,允许主时钟,设置时钟稳定的计数值;设置等待锁相环PLL合成器时钟发生器稳定工作的延迟时间,设置锁相环PLL合成器时钟发生器的第一倍频时钟频率和第二倍频时钟频率;最后根据外接Flash的数据手册,通过设置外部总线接口EBI寄存器的值,对所述外接Flash的数据总线宽度、等待状态的时钟周期、页大小、片选信号使能以及地址重映射信息进行设置;
装载修改后的.jflash配置文件,设置Jlink下载器参数;
使用Jlink下载器向所述CPU的外接Flash并行加载固件程序。
2.根据权利要求1所述的嵌入式计算机固件程序的下载方法,其特征在于,所述设置Jlink下载器参数,具体包括:
在J-Flash ARM下的Project settings设置项里设置下载方式为JTAG,并且设置JTAGspeed以及JTAG扫描工具链信息。
3.根据权利要求1所述的嵌入式计算机固件程序的下载方法,其特征在于,所述使用Jlink下载器向所述CPU的外接Flash并行加载固件程序,具体包括:
使用Target->Connect连接所述CPU,使所述CPU停止程序运行回到初始状态;使用Target->Erase chip对所述外接Flash进行整片擦除,再使用Target->Program&Verify对所述外接Flash进行写操作。
CN201710287514.3A 2017-04-27 2017-04-27 一种嵌入式计算机固件程序的下载方法 Active CN107066301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710287514.3A CN107066301B (zh) 2017-04-27 2017-04-27 一种嵌入式计算机固件程序的下载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710287514.3A CN107066301B (zh) 2017-04-27 2017-04-27 一种嵌入式计算机固件程序的下载方法

Publications (2)

Publication Number Publication Date
CN107066301A CN107066301A (zh) 2017-08-18
CN107066301B true CN107066301B (zh) 2020-12-15

Family

ID=59603670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710287514.3A Active CN107066301B (zh) 2017-04-27 2017-04-27 一种嵌入式计算机固件程序的下载方法

Country Status (1)

Country Link
CN (1) CN107066301B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062562A (zh) * 2018-07-27 2018-12-21 四川长虹电器股份有限公司 Mcu固件程序的下载方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127273B2 (en) * 2007-11-09 2012-02-28 International Business Machines Corporation Node selection for executing a Java application among a plurality of nodes
CN203839647U (zh) * 2014-05-14 2014-09-17 航天科工深圳(集团)有限公司 一种接口集线器
CN104182256B (zh) * 2014-08-21 2017-10-13 深圳维盟科技股份有限公司 一种嵌入式设备程序更新方法
CN104536774B (zh) * 2014-11-20 2018-02-02 成都九洲迪飞科技有限责任公司 芯片软件烧录方法
CN105117354A (zh) * 2015-07-23 2015-12-02 小米科技有限责任公司 固件的烧写方法、装置及系统
CN105590072A (zh) * 2015-12-18 2016-05-18 上海华测导航技术股份有限公司 一种实现嵌入式系统自动烧录的方法

Also Published As

Publication number Publication date
CN107066301A (zh) 2017-08-18

Similar Documents

Publication Publication Date Title
US8484631B2 (en) Supporting hardware configuration changes in a UEFI firmware component
CN1318979C (zh) 更新光盘系统固件的方法
CN103677654A (zh) 一种存储数据的方法及电子设备
US8285920B2 (en) Memory device with dynamic controllable physical logical mapping table loading
CN105930186B (zh) 多cpu的软件加载方法及基于多cpu的软件加载装置
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
CN101267623A (zh) 一种手机启动引导的构建方法
CN106909480B (zh) 一种嵌入式系统交叉调试方法和装置
CN103677885A (zh) 一种arm flash简易程序烧写的方法
KR20100088210A (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
US20070168905A1 (en) Networked linux machine and windows software development system
CN104156234A (zh) 启动多核处理器、bootloader大小端模式自适应的方法及装置
CN101477838B (zh) 一种与非快闪记忆体状态检测装置、系统及电子设备
US20090049232A1 (en) Execute-in-place implementation for a nand device
CN110780908A (zh) 屏幕显示程序升级方法、系统及终端设备
CN102073514A (zh) 基本输入输出系统的更新方法
CN107066301B (zh) 一种嵌入式计算机固件程序的下载方法
CN116301880A (zh) 微控制单元中的指令响应方法、装置、电子设备及介质
CN108304313B (zh) 一种用于数据测试的装置、客户端及方法
CN102375749B (zh) 一种采用i2c总线快速下载和更新固件的方法
CN106951268A (zh) 一种申威平台支持NVMe硬盘启动的实现方法
CN208722090U (zh) 带有内存参数精确配置功能的嵌入式终端
CN110515665B (zh) 一种处理器系统的启动方法、系统及装置
US20120150479A1 (en) Debug Access with Programmable Return Clock
CN103744698A (zh) 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
GR01 Patent grant
CP03 Change of name, title or address

Address after: 644000 Building 9, Jinrun Industrial Park, Xuzhou District, Yibin City, Sichuan Province

Patentee after: Sichuan Security Control Technology Co.,Ltd.

Address before: 100095 building 6, yard 9, Dijin Road, Haidian District, Beijing

Patentee before: BEIJING ECHO TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20221027

Address after: Room 101-10, 4th Floor, Building 5, Yard 9, Dijin Road, Haidian District, Beijing 100089

Patentee after: BEIJING ETROL OIL AND GAS TECHNOLOGY Co.,Ltd.

Address before: 644000 Building 9, Jinrun Industrial Park, Xuzhou District, Yibin City, Sichuan Province

Patentee before: Sichuan Security Control Technology Co.,Ltd.

TR01 Transfer of patent right