CN106126211A - 一种支持调试接口的mcu在线编程系统 - Google Patents
一种支持调试接口的mcu在线编程系统 Download PDFInfo
- Publication number
- CN106126211A CN106126211A CN201610431438.4A CN201610431438A CN106126211A CN 106126211 A CN106126211 A CN 106126211A CN 201610431438 A CN201610431438 A CN 201610431438A CN 106126211 A CN106126211 A CN 106126211A
- Authority
- CN
- China
- Prior art keywords
- mcu
- module
- programming
- debugging
- online programming
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种支持调试接口的MCU在线编程系统,涉及在线可编程技术,本发明主要由MCU在线编程支持固件和上位编程/调试软件组成;所述MCU在线编程支持固件由引导程序和应用程序构成;所述上位编程/调试软件由人机交互模块、通信模块、“.hex”文件加载/解析模块和“.map”文件加载/解析模块组成。该系统对难以拆卸的加固外设产品进行在线程序更新、调试和维护,以提高外设产品的可维护性与可维修性。
Description
技术领域
本发明涉及在线可编程技术,尤其涉及一种支持调试接口的MCU在线编程系统。
背景技术
在线可编程技术已在MCU中得以实现,系统中始终驻留用于代码更新的引导程序(BootLoader),该引导程序在MCU复位时执行,根据外部条件决策运行现有程序或对系统进行在线编程。开发者可利用上位软件,通过产品固有的通信接口(USB、RS232或CAN等)对程序存储器进行修改(既修改应用软件),从而在不拆卸产品机箱的情况下使产品得到升级,特别适用于加固外设产品的调试与维护,可有效节约开发时间,降低开发成本。
但现有在线可编程系统不具有调试功能,无法在不拆卸产品机箱的情况下进行在线调试,在线可编程技术的优势难以充分发挥,不能有效提升产品的可维护性和可维修性。
发明内容
为了解决以上的技术问题,本发明提出了一种支持调试接口的MCU在线编程系统。该系统由MCU在线编程支持固件和上位编程/调试软件组成,实现简单、有效。
所述MCU在线编程支持固件由引导程序和应用程序构成。其中引导程序长期驻留在系统内,不在程序更新过程中修改。该引导程序在MCU复位时执行,根据系统当前状态决策执行当前程序或进行在线编程。
所述应用程序由实时操作系统(RTOS)内核、在线编程支持模块和功能性应用程序组成。RTOS内核为在线编程支持模块和功能性应用程序提供多线程调度与管理、内存管理等基础服务;在线编程支持模块为具有较高优先级的线程,负则响应编程与调试指令;功
能性应用程序为一组优先级较在线编程支持模块低的线程,负则实现产品功能,因具体产品而不同。
所述上位编程/调试软件由人机交互模块、通信模块、“.hex”文件加载/解析模块和“.map”文件加载/解析模块组成。人机交互模块负则引导开发者对MCU进行在线编程或调试;通信模块负则向MCU发送编程指令和调试指令,并将所接收到的调试信息传递至人机
交互模块;“.hex”文件加载/解析模块负则加载并解析MCU工程编译所产生的“.hex”文件得到程序更新数据;“.map”文件加载/解析模块负则加载并解析MCU工程编译所产生的“.map”文件获取调试信息。
该系统利用产品固有的通信接口,对难以拆卸的加固外设产品进行在线程序更新、调试和维护,以提高外设产品的可维护性与可维修性。
附图说明
图1为本发明系统结构框图;
图2为MCU程序存储器区域划分示例图;
图3为引导程序流程图;
图4为在线编程支持模块流程图。
具体实施方式
为对本发明专利有更加详细的了解,下面结合附图,对本发明专利的具体实施方式进行详细描述。
该在线可编程系统由MCU在线编程支持固件和上位编程/调试软件组成。其中MCU在线编程支持固件由引导程序和应用程序构成,上位编程/调试软件由人机交互模块、通信模块、“.hex”文件加载/解析模块、“.map”文件加载解析模块构成,系统整体结构如图1所示。
为实现在系统可编程功能,需要对MCU的程序存储区域进行划分,图2展示了一种可行的划分方法。其中引导程序在首次编程下载至程序存储区后不再改写,在线编程时仅更新应用程序区域中的数据。进行在线编程时,首先将接收自上位软件的程序更新数据存放
至临时存放区,置位参数存放区中的在线编程标志位并复位MCU。复位后引导程序执行,引导程序首先读取参数存放区中的数据以判断系统当前状态,若系统首次运行或在线编程标志位未置位,执行现有应用程序;否则对临时存放区中的程序更新数据进行校验,校验正确则对应用程序存储区域进行擦写,擦写完成后清零在线编程标志位并使MCU复位,校验错误则清零在线编程标志位并执行现有应用程序。其程序流程如图3所示。
应用程序又可划分为RTOS内核、在线编程支持模块和功能性应用程序。其中在线编程支持模块为系统核心模块,其本质为一个具有较高优先级的线程,负则实时响应来自上位软件的编程与调试指令。收到调试指令时向上位软件回复所需调试信息;收到编程指令时解析并存储程序更新数据,收到完整程序更新数据后置位在线编程标志位,并使MCU复位;未收到上位机指令时,该模块始终处于挂起状态,不影响功能性应用程序的执行。其程序流程如图4所示。
上位编程/调试软件又可划分为人机交互模块、通信模块、“.hex”文件加载/解析模块和“.map”文件加载/解析模块。人机交互模块向开发者提供友好的人机界面,实现源文件路径设定、编译器选择、在线编程、调试功能使能/禁用、全局变量实时显示和调试字符串打印功能;通信模块利用产品固有通信接口,根据指定通信协议与MCU进行通信,完成数据的打包与解析;“.hex”文件加载/解析模块解析MCU工程编译所产生的“.hex”文件,截取应用程序段的内容,得到程序的起始地址、长度与程序更新数据,并对数据进行初次校验确保其合法性;“.map”文件加载/解析模块解析MCU工程编译所产生的“.map”文件,得到源代码中各全局变量的基址与长度,以在调试过程中实现全局变量的实时显示。
Claims (3)
1.一种支持调试接口的MCU在线编程系统,其特征在于,
该系统主要由MCU在线编程支持固件和上位编程/调试软件组成;
所述MCU在线编程支持固件由引导程序和应用程序构成;所述上位编程/调试软件由人机交互模块、通信模块、“.hex”文件加载/解析模块和“.map”文件加载/解析模块组成。
2.根据权利要求1所述的编程系统,其特征在于,
所述引导程序长期驻留在系统内,不在程序更新过程中修改;该引导程序在MCU复位时执行,根据系统当前状态决策执行当前程序或进行在线编程;
所述应用程序由实时操作系统内核、在线编程支持模块和功能性应用程序组成;实时操作系统内核为在线编程支持模块和功能性应用程序提供多线程调度与管理、内存管理等基础服务;在线编程支持模块为具有较高优先级的线程,负则响应编程与调试指令;功能性应用程序为一组优先级较在线编程支持模块低的线程,负则实现产品功能。
3.根据权利要求1所述的编程系统,其特征在于,
人机交互模块负则引导开发者对MCU进行在线编程或调试;通信模块负则向MCU发送编程指令和调试指令,并将所接收到的调试信息传递至人机交互模块;“.hex”文件加载/解析模块负则加载并解析MCU工程编译所产生的“.hex”文件得到程序更新数据;“.map”文件加载/解析模块负则加载并解析MCU工程编译所产生的“.map”文件获取调试信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610431438.4A CN106126211A (zh) | 2016-06-17 | 2016-06-17 | 一种支持调试接口的mcu在线编程系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610431438.4A CN106126211A (zh) | 2016-06-17 | 2016-06-17 | 一种支持调试接口的mcu在线编程系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126211A true CN106126211A (zh) | 2016-11-16 |
Family
ID=57470558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610431438.4A Pending CN106126211A (zh) | 2016-06-17 | 2016-06-17 | 一种支持调试接口的mcu在线编程系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126211A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN106843805A (zh) * | 2016-12-23 | 2017-06-13 | 北京时代民芯科技有限公司 | 一种8031系列mcu在线下载模块及实现方法 |
CN109491688A (zh) * | 2018-11-16 | 2019-03-19 | 珠海云洲智能科技有限公司 | 对无人船的控制设备进行固件升级的方法、装置及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627254A (zh) * | 2003-12-10 | 2005-06-15 | 华为技术有限公司 | 嵌入式系统的调试方法及其装置 |
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN102253672A (zh) * | 2011-02-17 | 2011-11-23 | 重庆长安汽车股份有限公司 | 一种基于can总线的整车控制器在线调试方法 |
CN102253859A (zh) * | 2010-05-21 | 2011-11-23 | 康佳集团股份有限公司 | 嵌入式设备系统死锁调试装置及方法 |
CN102568583A (zh) * | 2011-12-19 | 2012-07-11 | 聂章龙 | Freescale HCS12系列MCU的Flash存储器在线编程方法 |
CN102867087A (zh) * | 2012-09-11 | 2013-01-09 | 西安电子科技大学 | 图形化雷达信号处理高层集成设计平台及方法 |
CN103136107A (zh) * | 2011-12-03 | 2013-06-05 | 南京南瑞继保电气有限公司 | 一种嵌入式程序动态分配内存的变量调试方法 |
CN105116868A (zh) * | 2015-06-29 | 2015-12-02 | 江苏大学 | 一种基于can总线的小型电控汽油机触摸式hmi标定方法 |
-
2016
- 2016-06-17 CN CN201610431438.4A patent/CN106126211A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627254A (zh) * | 2003-12-10 | 2005-06-15 | 华为技术有限公司 | 嵌入式系统的调试方法及其装置 |
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN102253859A (zh) * | 2010-05-21 | 2011-11-23 | 康佳集团股份有限公司 | 嵌入式设备系统死锁调试装置及方法 |
CN102253672A (zh) * | 2011-02-17 | 2011-11-23 | 重庆长安汽车股份有限公司 | 一种基于can总线的整车控制器在线调试方法 |
CN103136107A (zh) * | 2011-12-03 | 2013-06-05 | 南京南瑞继保电气有限公司 | 一种嵌入式程序动态分配内存的变量调试方法 |
CN102568583A (zh) * | 2011-12-19 | 2012-07-11 | 聂章龙 | Freescale HCS12系列MCU的Flash存储器在线编程方法 |
CN102867087A (zh) * | 2012-09-11 | 2013-01-09 | 西安电子科技大学 | 图形化雷达信号处理高层集成设计平台及方法 |
CN105116868A (zh) * | 2015-06-29 | 2015-12-02 | 江苏大学 | 一种基于can总线的小型电控汽油机触摸式hmi标定方法 |
Non-Patent Citations (1)
Title |
---|
朱少辉等: "基于CAN总线的ECU在线编程技术", 《单片机与嵌入式系统应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN106557351B (zh) * | 2016-11-21 | 2019-08-09 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN106843805A (zh) * | 2016-12-23 | 2017-06-13 | 北京时代民芯科技有限公司 | 一种8031系列mcu在线下载模块及实现方法 |
CN109491688A (zh) * | 2018-11-16 | 2019-03-19 | 珠海云洲智能科技有限公司 | 对无人船的控制设备进行固件升级的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103207797B (zh) | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 | |
CN105446712B (zh) | 一种应用程序缺陷修补方法及装置 | |
JP2021002317A (ja) | アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体 | |
CN103777983A (zh) | 一种星载软件在轨维护及升级方法 | |
CN105487907A (zh) | 一种差分包的制作方法和装置 | |
CN102246142A (zh) | 在运行时开发应用程序 | |
CN106897090B (zh) | 一种嵌入式设备程序升级方法及系统 | |
CN102402427A (zh) | 一种Java应用程序的更新方法及装置 | |
CN105242962A (zh) | 基于异构众核的轻量级线程快速触发方法 | |
CN103942065A (zh) | 用于更新固件兼容性数据的方法和系统 | |
CN102156643A (zh) | 软件集成方法及系统 | |
CN111897570A (zh) | 一种基于Maven插件的多依赖项文件提取方法及装置 | |
CN104407878A (zh) | C6000数字信号处理器在线升级方法 | |
CN106126211A (zh) | 一种支持调试接口的mcu在线编程系统 | |
CN102364433B (zh) | 在ARM处理器上实现Wine构建工具移植的方法 | |
CN109213570A (zh) | 一种虚拟机迁移方法、装置、设备及可读存储介质 | |
CN111880804A (zh) | 应用程序代码的处理方法及装置 | |
CN111158743B (zh) | 大数据运维管理平台 | |
CN103853557A (zh) | 一种用Uboot网络启动WinCE的方法 | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN107844300A (zh) | 脚本处理方法及系统 | |
CN102331961A (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
CN104317723A (zh) | 一种驱动程序运行信息的跟踪方法及系统 | |
CN107544813B (zh) | 一种静态库配置的切换方法和系统 | |
CN104714792A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161116 |
|
RJ01 | Rejection of invention patent application after publication |