CN110058865A - 一种单片机的程序烧写及运行方法 - Google Patents
一种单片机的程序烧写及运行方法 Download PDFInfo
- Publication number
- CN110058865A CN110058865A CN201910172936.5A CN201910172936A CN110058865A CN 110058865 A CN110058865 A CN 110058865A CN 201910172936 A CN201910172936 A CN 201910172936A CN 110058865 A CN110058865 A CN 110058865A
- Authority
- CN
- China
- Prior art keywords
- program
- memory space
- programming
- run
- chip microcontroller
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种单片机的程序烧写及运行方法,包括如下步骤:(1)将芯片存储空间分为A,B两部分;(2)单片机上电后,程序指针到达bootloader,然后根据程序存储空间标志位内的数值,为1的话运行存储空间A内的程序,为0的话运行存储空间B内的程序。本发明所公开的程序烧写及运行方法,将芯片存储空间分为A,B两部分,程序在各自独立的存储空间内运行。在每次烧写程序时保留当前存储空间内运行的旧程序,对非当前存储空间内的非运行程序进行擦除和重新烧写,在重新烧写成功后才运行新烧写的程序,这样即使烧写失败,还有旧程序可以运行,这样既防止单片机因程序烧写失败而变砖,又提高了烧写效率、方便程序的现场升级,同时还降低了程序的运行风险。
Description
技术领域
本发明属于单片机领域,特别涉及该领域中的一种单片机的程序烧写及运行方法。
背景技术
目前单片机的程序烧写及运行步骤如图1所示,在单片机上电的时候,程序指针经bootloader到达存储空间,然后就一直运行存储空间内的程序。当接收到要烧写新程序的指令后,程序指针跳转回bootloader中,等待擦除存储空间内的旧程序,待擦除成功后,再把新程序烧写进存储空间,然后继续运行存储空间内的新程序。普通的bootloader烧写程序时会因死机而失败,而一旦烧写失败,则既无法运行之前的旧程序,又没法运行新程序,造成单片机变砖。
发明内容
本发明所要解决的技术问题就是提供一种可以防止单片机因程序烧写失败而变砖的程序烧写及运行方法。
本发明采用如下技术方案:
一种单片机的程序烧写及运行方法,其改进之处在于,包括如下步骤:
(1)将芯片存储空间分为A,B两部分;
(2)单片机上电后,程序指针到达bootloader,然后根据程序存储空间标志位内的数值,为1的话运行存储空间A内的程序,为0的话运行存储空间B内的程序;
(31)如果运行存储空间A内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间B内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为0并运行存储空间B内新烧写的程序;
(32)如果运行存储空间B内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间A内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为1并运行存储空间A内新烧写的程序。
本发明的有益效果是:
本发明所公开的程序烧写及运行方法,将芯片存储空间分为A,B两部分,程序在各自独立的存储空间内运行。在每次烧写程序时保留当前存储空间内运行的旧程序,对非当前存储空间内的非运行程序进行擦除和重新烧写,在重新烧写成功后才运行新烧写的程序,这样即使烧写失败,还有旧程序可以运行,这样既防止单片机因程序烧写失败而变砖,又提高了烧写效率、方便程序的现场升级,同时还降低了程序的运行风险。
附图说明
图1是现有单片机的程序烧写及运行方法步骤图;
图2是本发明实施例1所公开单片机的程序烧写及运行方法步骤图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1,如图2所示,本实施例公开了一种单片机的程序烧写及运行方法,包括如下步骤:
(1)将芯片存储空间分为A,B两部分;
(2)单片机上电后,程序指针到达bootloader,然后根据程序存储空间标志位内的数值,为1的话运行存储空间A内的程序,为0的话运行存储空间B内的程序;
(31)如果运行存储空间A内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间B内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为0并运行存储空间B内新烧写的程序;
(32)如果运行存储空间B内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间A内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为1并运行存储空间A内新烧写的程序。
Claims (1)
1.一种单片机的程序烧写及运行方法,其特征在于,包括如下步骤:
(1)将芯片存储空间分为A,B两部分;
(2)单片机上电后,程序指针到达bootloader,然后根据程序存储空间标志位内的数值,为1的话运行存储空间A内的程序,为0的话运行存储空间B内的程序;
(31)如果运行存储空间A内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间B内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为0并运行存储空间B内新烧写的程序;
(32)如果运行存储空间B内的程序,在接收到重新烧写程序的指令后,先跳转到bootloader,然后擦除存储空间A内的程序并重新烧写,烧写成功后将程序存储空间标志位内的数值改为1并运行存储空间A内新烧写的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910172936.5A CN110058865A (zh) | 2019-03-07 | 2019-03-07 | 一种单片机的程序烧写及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910172936.5A CN110058865A (zh) | 2019-03-07 | 2019-03-07 | 一种单片机的程序烧写及运行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110058865A true CN110058865A (zh) | 2019-07-26 |
Family
ID=67316083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910172936.5A Pending CN110058865A (zh) | 2019-03-07 | 2019-03-07 | 一种单片机的程序烧写及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110058865A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596766A (zh) * | 2020-12-24 | 2021-04-02 | 浙江合众新能源汽车有限公司 | 基于Bootloader的软件升级方法及装置 |
CN116360846A (zh) * | 2022-12-05 | 2023-06-30 | 北京白驹易行科技有限公司 | 一种对微服务变更的正确性对比方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140238A1 (en) * | 2002-01-22 | 2003-07-24 | Texas Instruments Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
CN104750505A (zh) * | 2013-12-26 | 2015-07-01 | 北京谊安医疗***股份有限公司 | 用于单片机的在线升级方法及*** |
CN105183501A (zh) * | 2015-08-10 | 2015-12-23 | 珠海格力电器股份有限公司 | 防止在线程序烧写出错的方法 |
CN107179909A (zh) * | 2017-05-16 | 2017-09-19 | 广东美的暖通设备有限公司 | 软件升级方法、装置及计算机可读存储介质 |
-
2019
- 2019-03-07 CN CN201910172936.5A patent/CN110058865A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140238A1 (en) * | 2002-01-22 | 2003-07-24 | Texas Instruments Incorporated | Implementation of a secure computing environment by using a secure bootloader, shadow memory, and protected memory |
CN104750505A (zh) * | 2013-12-26 | 2015-07-01 | 北京谊安医疗***股份有限公司 | 用于单片机的在线升级方法及*** |
CN105183501A (zh) * | 2015-08-10 | 2015-12-23 | 珠海格力电器股份有限公司 | 防止在线程序烧写出错的方法 |
CN107179909A (zh) * | 2017-05-16 | 2017-09-19 | 广东美的暖通设备有限公司 | 软件升级方法、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596766A (zh) * | 2020-12-24 | 2021-04-02 | 浙江合众新能源汽车有限公司 | 基于Bootloader的软件升级方法及装置 |
CN116360846A (zh) * | 2022-12-05 | 2023-06-30 | 北京白驹易行科技有限公司 | 一种对微服务变更的正确性对比方法及*** |
CN116360846B (zh) * | 2022-12-05 | 2023-11-17 | 北京白驹易行科技有限公司 | 一种对微服务变更的正确性对比方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095620B (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN105159777B (zh) | 进程的内存回收方法及装置 | |
CN104021043B (zh) | 批量应用程序的中断重入方法及*** | |
CN102831022B (zh) | 修改***配置的方法和装置 | |
CN110058865A (zh) | 一种单片机的程序烧写及运行方法 | |
US9710340B2 (en) | Replacement of a corrupt driver variable record | |
CN109284252B (zh) | 一种通信设备中轻量级文件***管理方法 | |
CN103020304A (zh) | 一种数据处理方法及设备 | |
CN105652115A (zh) | 主板测试方法及其***、主板程序安装方法及其*** | |
CN103257887B (zh) | 终端和进程控制方法 | |
CN108459885A (zh) | 一种资源分散加载的方法及其单片机 | |
US8990532B2 (en) | Method of managing memory in computer system, computer system and memory managing program | |
CN104572454B (zh) | 一种定位资源的方法及装置 | |
CN106055404A (zh) | 一种清理后台应用程序的方法和装置 | |
CN106371871A (zh) | 一种防止升级不匹配的bin文件的方法 | |
CN115065574B (zh) | 车辆控制器的唤醒方法、装置、电子设备和自动驾驶车辆 | |
JP2000242484A (ja) | 制御プログラムの変更方法 | |
CN109947576A (zh) | 一种虚拟机内部代理程序管理的方法 | |
CN102855162B (zh) | 一种数据更新方法、数据更新***及存储器 | |
CN106708518B (zh) | 一种染色器驱动运行时重构方法 | |
CN103294606A (zh) | 一种分配内存及检测内存溢出的方法和装置 | |
CN106886444A (zh) | 一种在线编程方法及装置 | |
CN104750505A (zh) | 用于单片机的在线升级方法及*** | |
EP2854036A1 (en) | Storage space mapping method and device | |
CN104572450B (zh) | 一种检测资源配置的方法及装置 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190726 |