CN104503804A - 一种在线更新单片机程序的方法 - Google Patents

一种在线更新单片机程序的方法 Download PDF

Info

Publication number
CN104503804A
CN104503804A CN201410848834.8A CN201410848834A CN104503804A CN 104503804 A CN104503804 A CN 104503804A CN 201410848834 A CN201410848834 A CN 201410848834A CN 104503804 A CN104503804 A CN 104503804A
Authority
CN
China
Prior art keywords
program
district
zone
driver
hardware
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
Application number
CN201410848834.8A
Other languages
English (en)
Other versions
CN104503804B (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.)
Tianjin Ic Card Public Network System Co Ltd
Original Assignee
Tianjin Ic Card Public Network 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 Tianjin Ic Card Public Network System Co Ltd filed Critical Tianjin Ic Card Public Network System Co Ltd
Priority to CN201410848834.8A priority Critical patent/CN104503804B/zh
Publication of CN104503804A publication Critical patent/CN104503804A/zh
Application granted granted Critical
Publication of CN104503804B publication Critical patent/CN104503804B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种在线更新单片机程序的方法。把单片机片载FLASH划分开两部分,BOOT区和应用程序区,将应用程序区再划分为4个区,即:工作程序区;驱动程序区;驱动程序出口区;硬件版本区;工作过程如下:工作程序区程序把硬件版本区内容发送给远程服务端程序;远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;把接收的内容保存在缓存区,下载完毕后设备重新启动;本发明的优点:同样的工作程序区应用程序可以安装到不同型号的设备上。

Description

一种在线更新单片机程序的方法
技术领域:
本发明涉及单片机,进一步涉及一种在线更新单片机程序的方法。
背景技术:
单片机等CPU因其有成本低、电路简单、编程简单等优点,被广大技术人员利用开发各种设备。
单片机片载FLASH程序存储区,提供在线编程功能。这样就可以把单片机片载FLASH划分开两部分,BOOT区和应用程序区。BOOT区程序调用单片机提供的在线编程功能,更新应用程序区内容,完成在线升级功能。
利用单片机开发的设备永远在升级换代,外围器件总是在变化,型号在升级改变,BOOT区功能简单调整方便,同一型号的设备使用相同的BOOT区程序,设备型号和BOOT区程序基本是一对一的关系,这些改变对BOOT区影响较小。而应用程序涉及大量的应用,千奇百怪。同一型号的设备会装载不同的应用程序,实现不同的功能;也会不同型号的设备实现相同的功能。设备型号和应用程序是网状的关系,修改测试应用程序的工作量相当大。亟需改进。
发明内容:
本发明对单片机片载FLASH空间进行重新分配,实现在线更新单片机程序。
原理如下:对把应用程序中和硬件相关的函数分离出来,放到驱动程序区,这部分函数叫做驱动程序;驱动程序和硬件型号一一对应,驱动程序和硬件型号是一对一的关系,维护量小;驱动程序只是连接应用程序使用硬件的桥梁。
应用程序中和硬件无关的函数放到到工作程序区,这部分函数叫做应用程序。工作程序区应用程序通过调用驱动程序区程序和硬件进行交互。工作程序区应用程序和硬件无关,硬件的改动对工作程序区应用程序没有影响,工作程序区应用程序不用修改。工作程序区应用程序也减小了好多,更新速度会更快。工作程序区应用程序和硬件无关,编写工作程序区应用程序员不需要了解硬件。
一种在线更新单片机程序的方法,把单片机片载FLASH划分开两部分,BOOT区和应用程序区,将应用程序区再划分为4个区,即
工作程序区:存放和硬件无关的应用程序;
驱动程序区:存放驱动硬件的函数,不同型号的硬件对应不同的函数,每个型号的设备和驱动程序一一对应;
驱动程序出口区:存放驱动程序区各个函数的调用地址,应用程序通过驱动程序出口区调用驱动程序区程序完成和硬件交互工作;
硬件版本区:存放各个型号硬件对应的编号,硬件型号和硬件版本号一一对应;
工作过程如下:
工作程序区程序和远程服务端程序通讯,把硬件版本区内容发送给远程服务端程序;
远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;
工作程序区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;
重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作程序区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作程序区。
本发明相对于现有技术具有以下优点:
(一)同样的工作程序区应用程序可以安装到不同型号的设备上。
(二)工作程序区应用程序简单明了,体积小。
(三)程序分开管理,保证程序的保密性。
附图说明:
图1为本发明实现在线更新程序的具体过程逻辑框图。
具体实施方式:
采用LPC2378做CPU开发的IC卡刷卡机,LPC2378内部FLASH为512kbyte,地址从0到0x7ffff。IC卡刷卡机还具有SST25VF032的FLASH芯片。分区方式如下:
BOOT区:LPC2378的0x00000-0xffff为BOOT区,放置BOOT区程序。
工作程序区:LPC2378的0x10000-0x5ffff为工作程序区。放置交易流程、显示、通讯、存储等函数。
驱动程序区:LPC2378的0x60000-0x77fff为驱动程序区,放置驱动FLASH、显示、非接触等芯片的函数。
驱动程序出口区:LPC2378的0x78000-0x78fff为驱动程序出口区,放置驱动程序区各函数的调用出口。
硬件版本区:LPC2378的0x79000-0x79fff为硬件版本区,放置刷卡机各型号的硬件版本号。
缓冲区:采用SST25VF032做缓冲区,缓存下载的程序。
工作过程如下:
工作程序区程序和远程服务端程序通讯,把硬件版本区内关于刷卡机的版本号发送给远程服务端程序;
远程服务端程序根据刷卡机的版本号传输对应的驱动程序区内容和驱动程序出口区内容;
工作程序区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;
重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作程序区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作程序区。

Claims (1)

1.一种在线更新单片机程序的方法,把单片机片载FLASH划分开两部分,BOOT区和应用程序区,其特征在于:将应用程序区再划分为4个区,即
工作程序区:存放和硬件无关的应用程序;
驱动程序区:存放驱动硬件的函数,不同型号的硬件对应不同的函数,每个型号的设备和驱动程序一一对应;
驱动程序出口区:存放驱动程序区各个函数的调用地址,应用程序通过驱动程序出口区调用驱动程序区程序完成和硬件交互工作;
硬件版本区:存放各个型号硬件对应的编号,硬件型号和硬件版本号一一对应;
工作过程如下:
工作程序区程序和远程服务端程序通讯,把硬件版本区内容发送给远程服务端程序;
远程服务端程序根据硬件版本下发对应的驱动程序区内容和驱动程序出口区内容;
工作区程序把接收的内容保存在缓存区,下载完毕后设备重新启动;
重启后,BOOT区检测缓冲区内容,如果缓冲区中没有需要更新的程序,则跳转到工作区;如果缓冲区中有需要更新的程序,由BOOT区程序把缓冲区内容更新到对应的驱动程序区与驱动程序出口区;完成后跳转到工作区。
CN201410848834.8A 2014-12-31 2014-12-31 一种在线更新单片机程序的方法 Expired - Fee Related CN104503804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410848834.8A CN104503804B (zh) 2014-12-31 2014-12-31 一种在线更新单片机程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410848834.8A CN104503804B (zh) 2014-12-31 2014-12-31 一种在线更新单片机程序的方法

Publications (2)

Publication Number Publication Date
CN104503804A true CN104503804A (zh) 2015-04-08
CN104503804B CN104503804B (zh) 2017-08-08

Family

ID=52945205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410848834.8A Expired - Fee Related CN104503804B (zh) 2014-12-31 2014-12-31 一种在线更新单片机程序的方法

Country Status (1)

Country Link
CN (1) CN104503804B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105760165A (zh) * 2016-02-22 2016-07-13 深圳威迈斯电源有限公司 一种mcu自我备份加载刷新的方法
CN106095480A (zh) * 2016-05-31 2016-11-09 青岛海信宽带多媒体技术有限公司 一种光模块固件升级的方法及装置
WO2016197883A1 (zh) * 2015-06-11 2016-12-15 中兴通讯股份有限公司 一种在线更新单片机程序的方法及系统
CN111124461A (zh) * 2019-12-12 2020-05-08 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477471A (zh) * 2009-01-07 2009-07-08 杭州海康威视数字技术股份有限公司 一种嵌入式系统固件在线升级方法
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法
CN103136015A (zh) * 2011-12-05 2013-06-05 深圳长城开发科技股份有限公司 控制Uboot进入下载操作模式的方法及系统
CN103473067A (zh) * 2013-09-23 2013-12-25 福建三元达软件有限公司 嵌入式Linux分区与数据还原方法、系统及系统开发方法
US8863072B1 (en) * 2013-06-19 2014-10-14 Altera Corporation FPGA and OS image build tool

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477471A (zh) * 2009-01-07 2009-07-08 杭州海康威视数字技术股份有限公司 一种嵌入式系统固件在线升级方法
CN101763279A (zh) * 2010-01-15 2010-06-30 上海维宏电子科技有限公司 一种BootLoader架构设计方法
CN103136015A (zh) * 2011-12-05 2013-06-05 深圳长城开发科技股份有限公司 控制Uboot进入下载操作模式的方法及系统
US8863072B1 (en) * 2013-06-19 2014-10-14 Altera Corporation FPGA and OS image build tool
CN103473067A (zh) * 2013-09-23 2013-12-25 福建三元达软件有限公司 嵌入式Linux分区与数据还原方法、系统及系统开发方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016197883A1 (zh) * 2015-06-11 2016-12-15 中兴通讯股份有限公司 一种在线更新单片机程序的方法及系统
CN105760165A (zh) * 2016-02-22 2016-07-13 深圳威迈斯电源有限公司 一种mcu自我备份加载刷新的方法
CN105760165B (zh) * 2016-02-22 2019-09-06 深圳威迈斯新能源股份有限公司 一种mcu自我备份加载刷新的方法
CN106095480A (zh) * 2016-05-31 2016-11-09 青岛海信宽带多媒体技术有限公司 一种光模块固件升级的方法及装置
CN106095480B (zh) * 2016-05-31 2019-09-17 青岛海信宽带多媒体技术有限公司 一种光模块固件升级的方法及装置
CN111124461A (zh) * 2019-12-12 2020-05-08 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机
CN111124461B (zh) * 2019-12-12 2023-08-18 青岛海尔科技有限公司 用于单片机ota升级的方法、装置和单片机

Also Published As

Publication number Publication date
CN104503804B (zh) 2017-08-08

Similar Documents

Publication Publication Date Title
CN104503804A (zh) 一种在线更新单片机程序的方法
CN109656593B (zh) 基于zynq芯片实现fpga程序远程升级的方法
CN103207797B (zh) 基于通用可扩展固件接口固件系统的胶囊式定制更新方法
CN104077204B (zh) 可重构的8位rsic单片机仿真器
CN104991872A (zh) 一种实现智能设备驱动外围设备的方法及装置
CN105204913A (zh) 一种在Android操作系统上运行Linux应用程序的方法及系统
CN102308280B (zh) 基本输入/输出系统bios配置数据管理方法及系统
CN107402776A (zh) 一种基于蓝牙4的手机无线升级stm32单片机控制器固件方法
CN105159731B (zh) 一种fpga配置文件远程升级的装置
CN103677943A (zh) 一种缝纫机控制器软件升级方法
CN103995939A (zh) 一种基于arm与fpga的动态可重构嵌入式系统
CN104391714A (zh) 一种车辆的软件更新方法和装置
CN103761125A (zh) 一种程序升级的应用系统和方法
CN106020905A (zh) 一种微控制器固件开发与更新的方法及系统
CN105468390A (zh) Boot在线升级装置及方法
CN103853557A (zh) 一种用Uboot网络启动WinCE的方法
CN116225501B (zh) Ecu升级方法、装置及可读存储介质
CN103077017B (zh) 一种嵌入式内存复用方法
CN104699500A (zh) 智能设备中实现引导程序自动升级的方法
CN104461638A (zh) 一种基于Bootloader的XFP光模块升级方法
US8458730B2 (en) Multi-level driver configuration
CN106775796B (zh) 一种固件升级方法、装置及系统
CN106126211A (zh) 一种支持调试接口的mcu在线编程系统
CN103678751A (zh) 处理器芯片仿真调试系统
CN204423360U (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
CB02 Change of applicant information

Address after: 300142 Hebei District, Chen Chen Road, No. 3, Tianjin

Applicant after: TIANJIN TONGKA INTELLIGENT NETWORK TECHNOLOGY CO.,LTD.

Address before: 300142 Hebei District, Chen Chen Road, No. 3, Tianjin

Applicant before: TIANJIN IC CARD PUBLIC NETWORK SYSTEM Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Jin Zhan

Inventor after: Wu Hao

Inventor after: Li Xiang

Inventor after: Gao Zhuhu

Inventor after: big and tall

Inventor before: Jin Zhan

Inventor before: Gao Zhuhu

Inventor before: Li Xiang

Inventor before: big and tall

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170808

Termination date: 20211231

CF01 Termination of patent right due to non-payment of annual fee