CN112685066A - 一种异构平台的mcu软件代理模式开发方法 - Google Patents
一种异构平台的mcu软件代理模式开发方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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软件代理模式开发方法。
背景技术
目前,具有采用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之间通过心跳包进行时钟同步。
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)
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)
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 |
-
2020
- 2020-12-25 CN CN202011563809.7A patent/CN112685066B/zh active Active
Patent Citations (8)
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)
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 |