CN109683940A - 一种基于国产处理器的嵌入式系统程序的安全下载方法 - Google Patents
一种基于国产处理器的嵌入式系统程序的安全下载方法 Download PDFInfo
- Publication number
- CN109683940A CN109683940A CN201811422606.9A CN201811422606A CN109683940A CN 109683940 A CN109683940 A CN 109683940A CN 201811422606 A CN201811422606 A CN 201811422606A CN 109683940 A CN109683940 A CN 109683940A
- Authority
- CN
- China
- Prior art keywords
- embeded processor
- downloading
- processor
- instruction
- flash
- 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/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于国产处理器的嵌入式系统程序的安全下载方法,其技术特点在于:包括以下步骤:步骤1、PC机向嵌入式处理器发送“进入下载模式指令”;步骤2、嵌入式处理器执行设置标志位flag状态字操作;步骤3、复位嵌入式处理器;步骤4、嵌入式处理器进入下载服务模式;步骤5、PC机向嵌入式处理器发送“下载嵌入式处理器Flash”指令;步骤6、主设备发送“置嵌入式处理器模块工作状态”指令,嵌入式处理器将其片内Flash标志位flag写入;步骤7、PC机通过USB接口向嵌入式处理器发送“模块复位指令”;步骤8、嵌入式处理器复位嵌入式处理器模块。本发明具有安全控制措施,保证下载过程的安全性。
Description
技术领域
本发明属于嵌入式硬件系统技术领域,涉及嵌入式系统程序的安全下载方法,尤其是一种基于国产处理器的嵌入式系统程序的安全下载方法。
背景技术
随着嵌入式系统的广泛应用,在嵌入式系统软件的升级、维护过程中可能存在缺陷,如软件升级、维护后硬件系统需断电重启,软件升级、维护过程中会有开盖、拔卡(或跳线)等操作,主设备的通讯接口可直接访问嵌入式系统内部空间,上述这些情况都暴露出嵌入式系统潜在的安全问题。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于国产处理器的嵌入式系统程序的安全下载方法,能在不更改任何硬件接口的前提下,方便地实现国产处理器的软件升级和维护,有效解决嵌入式系统程序更新问题。
本发明解决其现实问题是采取以下技术方案实现的:
一种基于国产处理器的嵌入式系统程序的安全下载方法,包括以下步骤:
步骤1、PC机通过USB接口向嵌入式处理器发送“进入下载模式指令”;
步骤2、嵌入式处理器收到指令后执行设置标志位flag状态字操作:擦除片内Flash标志位flag状态字;
步骤3、复位嵌入式处理器;
步骤4、嵌入式处理器复位后进入下载服务模式;
步骤5、PC机通过USB接口向嵌入式处理器发送“下载嵌入式处理器Flash”指令,完成数据下载;
步骤6、嵌入式处理器Flash下载完成后,主设备发送“置嵌入式处理器模块工作状态”指令,嵌入式处理器将其片内Flash标志位flag写入0x12345678;
步骤7、PC机通过USB接口向嵌入式处理器发送“模块复位指令”;
步骤8、嵌入式处理器收到“模块复位指令”指令后复位嵌入式处理器模块;
步骤9、嵌入式处理器工作程序被引导,进入工作状态。
而且,所述步骤4的具体方法是:嵌入式处理器上电后查询片内Flash标志位flag状态字,若状态字不等于0x12345678,则进入下载流程,等待PC机指令。
本发明的优点和有益效果:
1、本发明提供了一种在软件的升级、维护的全过程中的安全可控的基于国产处理器的嵌入式系统程序的安全下载方法,以国产专用指令处理器芯片为基础,从嵌入式开发的角度阐述了嵌入式系统的程序下载的安全性设计方法和具体开发流程。本发明的具体操作不涉及改变嵌入式硬件系统,仅通过国产处理器内引导程序和系统对外通信接口实现用户程序的下载和升级,该方法具有安全控制措施,保证下载过程的安全性。
2、本发明以国产处理器为核心,系统通过该处理器的对外通信接口(USB口)与主设备进行数据交互。在系统上电、引导程序(Boot)运行后,根据相关标志位flag的值进行判断系统的启动模式,如果条件满足则跳转到用户指定程序运行;如果条件不满足则顺序运行自身程序完成程序下载工作。在没有国产处理器内部引导程序的配合的情况下,非法用户无法篡改和获取Flash内的关键信息,从而保证了嵌入式系统的安全。
3、本发明具备下载端口防护措施:本发明的嵌入式系统的用户程序的下载通过USB接口实现,其原理是主设备程序通过USB接口,将数据和操作命令发送到国产处理器上,由国产处理器负责将代码和数据下载到Flash芯片,而主设备不能通过USB接口直接访问模块上的Flash芯片。这样,如果没有国产处理器内部程序的配合,则非法用户无法篡改和获取Flash内的关键信息。
4、本发明不涉及嵌入式硬件系统断电重启:传统方式中,程序下载完毕后需要断电后重新启动嵌入式系统后才能运行用户程序。而本发明在程序更新完毕后立即引导用户程序,可以在不影响系统工作的情况下完成嵌入式系统程序的更新。
5、本发明不涉及改变嵌入式硬件系统:传统方式中,工作程序下载和升级时会有开盖、拔卡(或跳线)操作,而本发明在程序和数据的下载过程中没有上述或其他任何改变嵌入式硬件系统的操作,保证下载过程的安全性。
附图说明
图1为本发明的嵌入式处理器引导程序流程图;
图2为本发明的主设备端下载程序流程图;
图3为本发明的嵌入式系统存储空间划分示意图。
具体实施方式
以下结合附图对本发明实施例作进一步详述:
本发明的嵌入式系统为XX模块,其用户程序的下载通过XX模块的USB接口实现,其原理是主设备程序通过USB接口,将数据和操作命令发送到XX模块的国产处理器上,由国产处理器负责将代码和数据下载到Flash芯片,而主设备不能通过USB接口直接访问模块上的Flash芯片。这样,如果没有国产处理器内部程序的配合,则非法用户无法篡改和获取Flash内的关键信息。
本发明的下载安全性设计流程如图1和图2所示,其中图1是嵌入式处理器引导程序流程,图2是主设备端下载程序流程。
一种基于国产处理器的嵌入式系统程序的安全下载方法,如图1和图2所示,包括以下步骤:
步骤1、PC机通过USB接口向嵌入式处理器发送“进入下载模式指令”;
步骤2、嵌入式处理器收到指令后执行设置标志位flag状态字操作:擦除片内Flash标志位flag状态字(0xFFFFFFFF);
步骤3、复位嵌入式处理器;
步骤4、嵌入式处理器复位后进入下载服务模式:嵌入式处理器上电后查询片内Flash标志位flag状态字,若状态字不等于0x12345678,则进入下载流程,等待PC机指令;
步骤5、PC机通过USB接口向嵌入式处理器发送“下载嵌入式处理器Flash”指令,完成数据下载;
步骤6、嵌入式处理器Flash下载完成后,主设备发送“置嵌入式处理器模块工作状态”指令,嵌入式处理器将其片内Flash标志位flag写入0x12345678;
步骤7、PC机通过USB接口向嵌入式处理器发送“模块复位指令”;(可选)
步骤8、嵌入式处理器收到“模块复位指令”指令后复位嵌入式处理器模块;
步骤9、嵌入式处理器工作程序被引导,进入工作状态。
下面分别对嵌入式处理器引导程序和存储空间分配作进一步详细说明:
(1)引导程序(Boot)
引导程序(Boot):在完成初始化后,Boot通过USB口与主设备之间进行命令交互,主设备通过USB口终端软件发送各种命令如“烧写Flash,启动应用程序”等。XX模块内程序接收命令并执行相应的操作,并显示处理结果。
引导程序(Boot)主要实现以下功能:
1)如果Flash内没有用户程序代码,执行用户代码下载流程,用户代码的下载通过USB接口,需要主设备端下载程序与嵌入式处理器内部程序配合;
2)如果Flash内有用户程序代码,则将Flash代码通过DMA指令搬运指定的程序代码到嵌入式处理器存储器地址并执行。
以上两个流程的选择通过查询相关标志位的值来实现。如果条件满足则表示用户代码已经下载到Flash,可以执行代码的搬运操作及程序引导过程;否则说明用户代码未下载,需要执行Flash代码的下载操作。
(2)存储空间分配
嵌入式系统中存储空间分为两个部分:片内Flash和片外Flash。根据开发设计考虑,数据空间按如下分配。
片内Flash大小为256KB,片外Flash大小为16MB。引导程序(Boot)存放在片内Flash 0地址区域,用户程序APP存放在片外Flash中。地址0x0~0xE000为Boot区域存放引导程序,此处为boot.bin文件,地址0xE000~0x10000为标志位flag区域存放跳转标志,现在是在最高地址0xFFFC存放一个32bit的flag标志,地址0x40000000~0xXXXXXXXX为用户程序区域存放用户自身程序,此处为app.bin文件。具体分配如图2所示。
上述方法具有通用性,所有嵌入式系统的程序下载和升级可通过此方法实现相应程序的安全下载和升级。
需要强调的是,本发明所述实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
Claims (2)
1.一种基于国产处理器的嵌入式系统程序的安全下载方法,其特征在于:包括以下步骤:
步骤1、PC机通过USB接口向嵌入式处理器发送“进入下载模式指令”;
步骤2、嵌入式处理器收到指令后执行设置标志位flag状态字操作:擦除片内Flash标志位flag状态字;
步骤3、复位嵌入式处理器;
步骤4、嵌入式处理器复位后进入下载服务模式;
步骤5、PC机通过USB接口向嵌入式处理器发送“下载嵌入式处理器Flash”指令,完成数据下载;
步骤6、嵌入式处理器Flash下载完成后,主设备发送“置嵌入式处理器模块工作状态”指令,嵌入式处理器将其片内Flash标志位flag写入0x12345678;
步骤7、PC机通过USB接口向嵌入式处理器发送“模块复位指令”;
步骤8、嵌入式处理器收到“模块复位指令”指令后复位嵌入式处理器模块;
步骤9、嵌入式处理器工作程序被引导,进入工作状态。
2.根据权利要求1所述的一种基于国产处理器的嵌入式系统程序的安全下载方法,其特征在于:所述步骤4的具体方法是:嵌入式处理器上电后查询片内Flash标志位flag状态字,若状态字不等于0x12345678,则进入下载流程,等待PC机指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811422606.9A CN109683940A (zh) | 2018-11-23 | 2018-11-23 | 一种基于国产处理器的嵌入式系统程序的安全下载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811422606.9A CN109683940A (zh) | 2018-11-23 | 2018-11-23 | 一种基于国产处理器的嵌入式系统程序的安全下载方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109683940A true CN109683940A (zh) | 2019-04-26 |
Family
ID=66185592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811422606.9A Pending CN109683940A (zh) | 2018-11-23 | 2018-11-23 | 一种基于国产处理器的嵌入式系统程序的安全下载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109683940A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837720A (zh) * | 2019-11-04 | 2020-02-25 | 中科寒武纪科技股份有限公司 | 指令执行的方法、装置及相关产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271396A (zh) * | 2008-04-15 | 2008-09-24 | 威盛电子股份有限公司 | 电子装置及其在线更新固件的方法 |
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
CN102890636A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
US20140059518A1 (en) * | 2012-08-24 | 2014-02-27 | Velocio Networks, Inc. | Method for Object Oriented Programming of Programmable Logic Controllers in Graphical Programming Languages |
-
2018
- 2018-11-23 CN CN201811422606.9A patent/CN109683940A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271396A (zh) * | 2008-04-15 | 2008-09-24 | 威盛电子股份有限公司 | 电子装置及其在线更新固件的方法 |
CN102890636A (zh) * | 2011-07-20 | 2013-01-23 | 中兴通讯股份有限公司 | 安卓系统下的固件升级方法及系统 |
CN102622253A (zh) * | 2012-03-09 | 2012-08-01 | 瑞斯康达科技发展股份有限公司 | 一种单片机及其在线升级的方法 |
US20140059518A1 (en) * | 2012-08-24 | 2014-02-27 | Velocio Networks, Inc. | Method for Object Oriented Programming of Programmable Logic Controllers in Graphical Programming Languages |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110837720A (zh) * | 2019-11-04 | 2020-02-25 | 中科寒武纪科技股份有限公司 | 指令执行的方法、装置及相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109656593B (zh) | 基于zynq芯片实现fpga程序远程升级的方法 | |
CN102236621B (zh) | 计算机接口信息配置系统及方法 | |
CN102855151B (zh) | 不打断业务的光模块固件在应用升级方法 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN105159731B (zh) | 一种fpga配置文件远程升级的装置 | |
CN102945173B (zh) | 用户程序在线升级系统和升级方法 | |
CN105718281B (zh) | 一种触摸屏固件升级方法及装置 | |
CN109189434A (zh) | 一种电能表的在线升级方法 | |
CN105045603A (zh) | 一种构建有限状态机模型框架的方法、装置及电子装置 | |
CN101169729A (zh) | 嵌入式系统及其更新应用程序的方法 | |
CN106789334A (zh) | 一种固件升级的方法和设备 | |
CN104461859B (zh) | 一种支持nvm软断点调试的仿真器和方法 | |
CN103677897A (zh) | 系统芯片及对系统芯片的烧写方法 | |
CN103559910A (zh) | 应用于烧录器的实现智能切换烧录芯片时序的系统及方法 | |
CN204595832U (zh) | 一种基于单片机的无线编程设备 | |
CN106789210A (zh) | 一种基于can总线的多dsp智能节点软件在线升级方法 | |
CN103064309B (zh) | 确定选针器地址的方法及系统 | |
CN109683940A (zh) | 一种基于国产处理器的嵌入式系统程序的安全下载方法 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
CN105354061A (zh) | 一种保护mcu工作程序的方法及系统 | |
CN104750532A (zh) | 一种基于Android的双系统土地核查PAD及启动方法 | |
CN109426511A (zh) | 软核更新方法和系统 | |
CN109165037A (zh) | 一种基于串口处理器的程序在线更新方法及系统 | |
CN105677422A (zh) | 同时更新监控程序和应用程序及后续更新应用程序的方法 | |
CN203102252U (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |