CN112685066A - 一种异构平台的mcu软件代理模式开发方法 - Google Patents

一种异构平台的mcu软件代理模式开发方法 Download PDF

Info

Publication number
CN112685066A
CN112685066A CN202011563809.7A CN202011563809A CN112685066A CN 112685066 A CN112685066 A CN 112685066A CN 202011563809 A CN202011563809 A CN 202011563809A CN 112685066 A CN112685066 A CN 112685066A
Authority
CN
China
Prior art keywords
mcu
module
upgrading
substep
soc
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
CN202011563809.7A
Other languages
English (en)
Other versions
CN112685066B (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.)
Inbo Supercomputing Nanjing Technology Co Ltd
Original Assignee
Inbo Supercomputing Nanjing Technology 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 Inbo Supercomputing Nanjing Technology Co Ltd filed Critical Inbo Supercomputing Nanjing Technology Co Ltd
Priority to CN202011563809.7A priority Critical patent/CN112685066B/zh
Publication of CN112685066A publication Critical patent/CN112685066A/zh
Application granted granted Critical
Publication of CN112685066B publication Critical patent/CN112685066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种异构平台的MCU软件代理模式开发方法,其技术方案要点是包括提供包括Soc和MCU的异构系统,Soc上配置有McuAgent模块,该异构平台的MCU软件代理模式开发方法包括以下步骤:升级步骤:通过硬盘将需要升级的固件拷贝到Soc的ARM端文件夹内;McuAgent模块接收到升级指令时将固件发送至MCU进行升级;调试步骤:Soc与MCU之间配置有日志通道,McuAgent模块通过日志通道接收MCU的日志信息并保存至预设的日志文件中,McuAgent模块接收到调试指令时可查询MCU的运行状态。通过该方法能够简化对MCU应用程序的开发调试,操作流程更加简单,并能够大幅度降低后期排查解决问题的难度。

Description

一种异构平台的MCU软件代理模式开发方法
技术领域
本发明涉及软件开发领域,更具体的说是涉及一种异构平台的MCU软件代理模式开发方法。
背景技术
目前,具有采用Soc+MCU的异构系统架构的域控制器。这种域控制器由于受MCU资源的限制,MCU软件开发方法及调试手段非常受限。现有的MCU软件开发方式采用普遍通用的交叉开发模式,具体步骤如下:
1、在宿主机(PC机)上搭建交叉开发环境(例如Hightec、Tasking等集成开发环境),对源代码进行编译,生成MCU上运行的固件程序(Hex文件或者ELF文件);2、使用劳特巴赫等调试工具通过JTAG接口连接MCU,加载ELF文件对程序进行调试;3、使用下载工具通过JTAG接口或者以太网口(OTA)将程序下载到MCU的片内Flash运行;4、在运行过程中通过串口监测日志,通过日志分析定位程序的运行状态和错误信息,然后解决问题。
这种开发模型下的所有软件业务都依赖于MCU本身,包括驱动程序、操作系统、通信协议栈、上层应用程序等。这种软件架构下的模块间耦合性高,调试手段受限,导致版本更新、问题排查跟踪难度增大。
现有的MCU升级方式主要有以下三种:
第一,通过JTAG接口烧写。这种升级方式在项目开发早起比较适用,但是在版本发布后,产品一般不会对外预留JTAG接口,因此,产品发布后,甚至在产品发布前、平台软件开发完成、应用软件开发后期,如果有升级MCU软件的需求,就要面临拆机的风险。
第二,通过CAN接口使用UDS协议(ISO14229、ISO15765)进行升级。这种升级方式解决了JTAG接口不对外预留的情况下,在软件版本发布后期的升级问题。但是这种升级方式升级速度非常慢,影响开发效率,并且电脑一般没有CAN接口,要依赖于专门的CAN工具,才能完成升级。
第三,通过以太网进行OTA升级。这种升级手段应用比较广泛,并且升级速度快,是目前汽车电子行业普遍推荐的一种升级方式,但是这种方式在项目开发早期功能模块并不完善,且需要依赖于升级服务器才能完成升级,操作流程比较繁琐。
现有的MCU调试方法主要有以下两种:
第一,通过JTAG单步调试。这种调试方式通常用于调试MCU的底层驱动问题,例如寄存器配置是否正确,时钟系统是否工作正常,中断是否产生等。但用此方法调试应用程序就显得有些繁琐,当上层应用出现问题时,就意味着要使用调试器从上层应用一直单步跟踪驱动中,调试步骤比较冗余。
第二,通过串口日志打印分析。这种方式需要使用串口工具一直连接MCU调试串口才不会遗漏掉事故现场的日志,当然有些好的做法也会将日志保存在MCU的片内Flash上,但是这种方式也会面临MCU的片内Flash资源紧张的问题,并且如果MCU程序出现死机问题,从外部去读写MCU的片内Flash也是一个待解决的难题。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种异构平台的MCU软件代理模式开发方法,通过该方法能够简化对MCU应用程序的开发调试,操作流程更加简单,并能够大幅度降低后期排查解决问题的难度。
为实现上述目的,本发明提供了如下技术方案:一种异构平台的MCU软件代理模式开发方法,提供包括Soc和MCU的异构系统,所述Soc上配置有McuAgent模块,该异构平台的MCU软件代理模式开发方法包括以下步骤:
升级步骤:通过硬盘将需要升级的固件拷贝到所述Soc的ARM端文件夹内;所述McuAgent模块接收到升级指令时将所述固件发送至MCU进行升级;
调试步骤:所述Soc与所述MCU之间配置有日志通道,所述McuAgent模块通过所述日志通道接收所述MCU的日志信息并保存至预设的日志文件中,所述McuAgent模块接收到调试指令时可查询所述MCU的运行状态。
作为本发明的进一步改进,所述Soc与所述MCU之间配置有诊断事件管理通道,所述McuAgent模块包括有EventMonitor子模块,该异构平台的MCU软件代理模式开发方法还包括诊断事件监测步骤,所述诊断事件监测步骤包括所述EventMonitor子模块对所述Soc的ARM进行诊断事件监测,并通过所述诊断事件管理通道发送至所述MCU。
作为本发明的进一步改进,所述McuAgent模块包括有OTA_Server子模块,所述MCU上配置有OTA升级模块,所述升级步骤具体包括以下子步骤:
拷贝子步骤:通过硬盘将需要升级的固件拷贝到所述Soc的ARM端文件夹内,并进入触发子步骤;
触发子步骤:所述McuAgent模块等待接收升级指令,当所述McuAgent模块接收到升级指令时,进入比较子步骤;
比较子步骤:所述OTA_Server子模块将需要升级的固件的版本与之前的版本进行比较,比较结束后进入升级子步骤;
升级子步骤:所述OTA_Server子模块通过所述OTA升级模块对所述MCU进行升级,升级过程中,所述OTA_Server子模块记录升级进度;
编译子步骤:升级完成后,所述OTA_Server子模块记录升级后的版本信息,并进入重启子步骤;
重启子步骤:立即重启或者延时重启以在所述MCU上运行升级后的版本。
作为本发明的进一步改进,所述McuAgent模块包括有McuDebug子模块,所述MCU上配置有Debug/SysStatus调试相关模块,所述调试步骤具体包括以下子步骤:
接收子步骤:所述McuDebug子模块创建调试模块线程,并通过所述日志通道于所述Debug/SysStatus调试相关模块获取所述MCU的日志信息,并进入保存子步骤;
保存子步骤:所述McuDebug子模块将接受到的日志信息保存至预设的日志文件中;
查询子步骤:所述McuDebug子模块接收到调试指令时通过所述Debug/SysStatus调试相关模块获取所述MCU的运行状态。
作为本发明的进一步改进,所述接收子步骤之前还设置有文件创建子步骤,所述文件创造子步骤包括所述异构系统每启动一次,所述McuDebug子模块创建一个日志文件,并进入所述接收子步骤;所述保存子步骤中,所述McuDebug子模块将接受到的日志信息保存至最新创建的日志文件中。
作为本发明的进一步改进,每个所述日志文件均已创建时的日期时间命名。
作为本发明的进一步改进,所述MCU和所述Soc的ARM之间通过心跳包进行时钟同步。
本发明的有益效果:本发明充分用Soc平台Linux系统下文件操作的便利性,以及通过硬盘调试开发Linux应用程序的方法来开发调试MCU应用程序。具体为通过在Soc配置McuAgent模块,作为MCU软件的代理,用于处理MCU侧处理起来比较复杂的MCU的升级、调试等问题。
对于MCU程序的升级,可以简化为Soc的Linux侧的文件拷贝过程,操作流程简单。相对于JTAG烧写,无需依赖于昂贵的烧录工具即可完成烧写;相对于OTA升级的方式,在开发初期也无需花费大量的精力搭建OTA升级服务器,同时又很好的利用了OTA升级以太网传输速度快的优点。
对于调试方法上,McuAgent和MCU之间是一种GDB-GDB Server的调试模型,McuAgent可以通过命令交互的方式查询MCU端的运行状态,对于大部分应用程序的调试,无需连接JTAGd调试器进行调试。并且McuAgent还可以实时记录MCU的日志信息,并进行存储,即使在没有连接外部串口线的情况下,依然可以很好的保存事故现场,方便后期的分析与问题定位。
因此本发明的方法能够简化对MCU应用程序的开发调试,操作流程更加简单,并能够大幅度降低后期排查解决问题的难度。
附图说明
图1为异构系统的的架构示意图;
图2为升级步骤的流程示意图;
图3为调试步骤的流程示意图。
附图标记:S11、拷贝子步骤;S12、触发子步骤;S13、比较子步骤;S14、升级子步骤;S15、编译子步骤;S16、重启子步骤;S21、文件创造子步骤;S22、接收子步骤;S23、保存子步骤;S24、查询子步骤。
具体实施方式
下面结合附图和实施例,对本发明进一步详细说明。
参照图1所示,本实施例的一种异构平台的MCU软件代理模式开发方法,提供包括Soc和MCU的异构系统,Soc上配置有McuAgent模块,McuAgent模块包括有EventMonitor子模块、OTA_Server子模块以及McuDebug子模块。MCU上配置有OTA升级模块、Debug/SysStatus调试相关模块、MCU Appliaction模块、Drivers驱动模块、FreeRTOS+lwip模块、以及Interface模块,其中MCU Appliaction模块是MCU上的应用程序,与其他模块在开发过程中完全解耦,且MCU Appliaction模块支持跨平台调用,在开发初期完全可以在X86平台完成调试,最终无缝的移植到MCU上,减少片上调试的工作量。Soc与MCU之间配置有诊断事件管理通道和日志通道。
该异构平台的MCU软件代理模式开发方法包括升级步骤、调试步骤以及诊断事件监测步骤。
参照图2所示,其中升级步骤具体包括以下子步骤:
拷贝子步骤S11:通过硬盘将需要升级的固件拷贝到Soc的ARM端文件夹内,并进入触发子步骤S12。
触发子步骤S12:McuAgent模块等待接收升级指令,当McuAgent模块接收到升级指令时,进入比较子步骤S13。
比较子步骤S13:OTA_Server子模块将需要升级的固件的版本与之前的版本进行比较,比较结束后进入升级子步骤S14。
升级子步骤S14:OTA_Server子模块通过OTA升级模块对MCU进行升级,升级过程中,OTA_Server子模块记录升级进度。
编译子步骤S15:升级完成后,OTA_Server子模块记录升级后的版本信息,并进入重启子步骤S16。
重启子步骤S16:立即重启或者延时重启以在MCU上运行升级后的版本。
参照图3所示,调试步骤具体包括以下子步骤:
文件创造子步骤S21:异构系统每启动一次,McuDebug子模块创建一个日志文件,每个日志文件均已创建时的日期时间命名,MCU和Soc的ARM之间通过心跳包进行时钟同步,从而保证日志输出的时间戳的一致性,并进入接收子步骤S22。
接收子步骤S22:McuDebug子模块创建调试模块线程,并通过日志通道于Debug/SysStatus调试相关模块获取MCU的日志信息,并进入保存子步骤S23。
保存子步骤S23:McuDebug子模块将接受到的日志信息保存至最新创建的日志文件中。
查询子步骤S24:McuDebug子模块接收到调试指令时通过Debug/SysStatus调试相关模块获取MCU的运行状态。
诊断事件监测步骤包括EventMonitor子模块对Soc的ARM进行诊断事件监测,并通过诊断事件管理通道发送至MCU。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种异构平台的MCU软件代理模式开发方法,其特征在于:提供包括Soc和MCU的异构系统,所述Soc上配置有McuAgent模块,该异构平台的MCU软件代理模式开发方法包括以下步骤:
升级步骤:通过硬盘将需要升级的固件拷贝到所述Soc的ARM端文件夹内;所述McuAgent模块接收到升级指令时将所述固件发送至MCU进行升级;
调试步骤:所述Soc与所述MCU之间配置有日志通道,所述McuAgent模块通过所述日志通道接收所述MCU的日志信息并保存至预设的日志文件中,所述McuAgent模块接收到调试指令时可查询所述MCU的运行状态。
2.根据权利要求1所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:所述Soc与所述MCU之间配置有诊断事件管理通道,所述McuAgent模块包括有EventMonitor子模块,该异构平台的MCU软件代理模式开发方法还包括诊断事件监测步骤,所述诊断事件监测步骤包括所述EventMonitor子模块对所述Soc的ARM进行诊断事件监测,并通过所述诊断事件管理通道发送至所述MCU。
3.根据权利要求1所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:所述McuAgent模块包括有OTA_Server子模块,所述MCU上配置有OTA升级模块,所述升级步骤具体包括以下子步骤:
拷贝子步骤:通过硬盘将需要升级的固件拷贝到所述Soc的ARM端文件夹内,并进入触发子步骤;
触发子步骤:所述McuAgent模块等待接收升级指令,当所述McuAgent模块接收到升级指令时,进入比较子步骤;
比较子步骤:所述OTA_Server子模块将需要升级的固件的版本与之前的版本进行比较,比较结束后进入升级子步骤;
升级子步骤:所述OTA_Server子模块通过所述OTA升级模块对所述MCU进行升级,升级过程中,所述OTA_Server子模块记录升级进度;
编译子步骤:升级完成后,所述OTA_Server子模块记录升级后的版本信息,并进入重启子步骤;
重启子步骤:立即重启或者延时重启以在所述MCU上运行升级后的版本。
4.根据权利要求1所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:所述McuAgent模块包括有McuDebug子模块,所述MCU上配置有Debug/SysStatus调试相关模块,所述调试步骤具体包括以下子步骤:
接收子步骤:所述McuDebug子模块创建调试模块线程,并通过所述日志通道于所述Debug/SysStatus调试相关模块获取所述MCU的日志信息,并进入保存子步骤;
保存子步骤:所述McuDebug子模块将接受到的日志信息保存至预设的日志文件中;
查询子步骤:所述McuDebug子模块接收到调试指令时通过所述Debug/SysStatus调试相关模块获取所述MCU的运行状态。
5.根据权利要求4所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:所述接收子步骤之前还设置有文件创建子步骤,所述文件创造子步骤包括所述异构系统每启动一次,所述McuDebug子模块创建一个日志文件,并进入所述接收子步骤;所述保存子步骤中,所述McuDebug子模块将接受到的日志信息保存至最新创建的日志文件中。
6.根据权利要求5所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:每个所述日志文件均已创建时的日期时间命名。
7.根据权利要求6所述的一种异构平台的MCU软件代理模式开发方法,其特征在于:所述MCU和所述Soc的ARM之间通过心跳包进行时钟同步。
CN202011563809.7A 2020-12-25 2020-12-25 一种异构平台的mcu软件代理模式开发方法 Active CN112685066B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011563809.7A CN112685066B (zh) 2020-12-25 2020-12-25 一种异构平台的mcu软件代理模式开发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011563809.7A CN112685066B (zh) 2020-12-25 2020-12-25 一种异构平台的mcu软件代理模式开发方法

Publications (2)

Publication Number Publication Date
CN112685066A true CN112685066A (zh) 2021-04-20
CN112685066B CN112685066B (zh) 2023-07-07

Family

ID=75453263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011563809.7A Active CN112685066B (zh) 2020-12-25 2020-12-25 一种异构平台的mcu软件代理模式开发方法

Country Status (1)

Country Link
CN (1) CN112685066B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113341796A (zh) * 2021-05-25 2021-09-03 英博超算(南京)科技有限公司 一种自动驾驶的传感器标定系统
CN116560688A (zh) * 2023-05-05 2023-08-08 上汽通用汽车有限公司 用于域控制器的软件更新方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073489A (zh) * 2009-11-23 2011-05-25 新奥特(北京)视频技术有限公司 一种调试日志生成方法及装置
US20120102334A1 (en) * 2008-11-24 2012-04-26 Certicom Corp. System and Method for Hardware Based Security
CN103186458A (zh) * 2011-12-29 2013-07-03 联芯科技有限公司 基于嵌入式操作系统的仿真调试系统及方法
CN108415717A (zh) * 2018-03-22 2018-08-17 南京尤尼泰信息科技有限公司 一种zynqsoc固件升级方法及升级装置
CN110147244A (zh) * 2019-04-30 2019-08-20 惠州市德赛西威智能交通技术研究院有限公司 一种车载软件升级的方法
CN110457215A (zh) * 2019-07-31 2019-11-15 上海赫千电子科技有限公司 一种跨平台的mcu调试方法
CN111831309A (zh) * 2020-07-16 2020-10-27 深圳市朗科智能电气股份有限公司 物联网Wifi带载多MCU的升级方法、装置、设备及介质
CN112084142A (zh) * 2020-08-10 2020-12-15 广州汽车集团股份有限公司 一种日志存储方法、装置及t-box

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120102334A1 (en) * 2008-11-24 2012-04-26 Certicom Corp. System and Method for Hardware Based Security
CN102073489A (zh) * 2009-11-23 2011-05-25 新奥特(北京)视频技术有限公司 一种调试日志生成方法及装置
CN103186458A (zh) * 2011-12-29 2013-07-03 联芯科技有限公司 基于嵌入式操作系统的仿真调试系统及方法
CN108415717A (zh) * 2018-03-22 2018-08-17 南京尤尼泰信息科技有限公司 一种zynqsoc固件升级方法及升级装置
CN110147244A (zh) * 2019-04-30 2019-08-20 惠州市德赛西威智能交通技术研究院有限公司 一种车载软件升级的方法
CN110457215A (zh) * 2019-07-31 2019-11-15 上海赫千电子科技有限公司 一种跨平台的mcu调试方法
CN111831309A (zh) * 2020-07-16 2020-10-27 深圳市朗科智能电气股份有限公司 物联网Wifi带载多MCU的升级方法、装置、设备及介质
CN112084142A (zh) * 2020-08-10 2020-12-15 广州汽车集团股份有限公司 一种日志存储方法、装置及t-box

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113341796A (zh) * 2021-05-25 2021-09-03 英博超算(南京)科技有限公司 一种自动驾驶的传感器标定系统
CN116560688A (zh) * 2023-05-05 2023-08-08 上汽通用汽车有限公司 用于域控制器的软件更新方法

Also Published As

Publication number Publication date
CN112685066B (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
CN100458729C (zh) 嵌入式操作系统中接口测试的自动化运行方法
CN112685066B (zh) 一种异构平台的mcu软件代理模式开发方法
US7873859B2 (en) Restarting failed IMS auto-restart batch applications
CN100395725C (zh) 日志信息输出系统及输出方法
KR101949115B1 (ko) 디바이스 드라이버 검출 에러들의 자가 진단 및 자동 진단 데이터 수집
CN103019941B (zh) 程序调试方法和装置
WO2017124799A1 (zh) 固件管理方法和装置
CN105740139A (zh) 一种基于虚拟环境的嵌入式软件调试方法
CN115757183A (zh) 天熠嵌入式操作系统下一种基于代理的任务级调试方法
CN110737452A (zh) 一种fpga固件在线升级方法及系统
TWI774391B (zh) 實時配置韌體數據的方法與除錯裝置
WO2024055757A1 (zh) 驱动程序的硬件资源自动配置方法、装置、系统及介质
CN112685212A (zh) 一种处理器异常的调试追踪方法、装置和系统
US7073096B2 (en) File path resolving debugger
CN112764995B (zh) 一种服务器硬件资源监控方法、装置和介质
WO2021027852A1 (zh) 列车信号系统及其联动方法
CN109783417B (zh) 一种串口通讯装置及方法
CN108536586B (zh) Android移动终端的信息获取方法、设备以及系统
CN112328491A (zh) 追踪消息的输出方法、电子设备及存储介质
TWI838264B (zh) 電腦系統及其電腦系統除錯資訊處理之方法
CN110018928B (zh) 基于固件的系统备份和还原方法
CN115934139B (zh) 一种fpga在线升级方法及系统
CN116431408B (zh) 屏幕调试方法、装置、电子设备及存储介质
CN113688055B (zh) 一种基于dss的单一dsp设备测试装置
WO2024000354A1 (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
GR01 Patent grant
GR01 Patent grant