CN117376229B - 基于嵌入式设备的ftp文件***软件交叉调试方法及*** - Google Patents

基于嵌入式设备的ftp文件***软件交叉调试方法及*** Download PDF

Info

Publication number
CN117376229B
CN117376229B CN202311679909.XA CN202311679909A CN117376229B CN 117376229 B CN117376229 B CN 117376229B CN 202311679909 A CN202311679909 A CN 202311679909A CN 117376229 B CN117376229 B CN 117376229B
Authority
CN
China
Prior art keywords
gdb
file system
debugging
component
embedded
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.)
Active
Application number
CN202311679909.XA
Other languages
English (en)
Other versions
CN117376229A (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.)
Chengdu Jingrong Lianchuang Technology Co ltd
Original Assignee
Chengdu Jingrong Lianchuang 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 Chengdu Jingrong Lianchuang Technology Co ltd filed Critical Chengdu Jingrong Lianchuang Technology Co ltd
Priority to CN202311679909.XA priority Critical patent/CN117376229B/zh
Publication of CN117376229A publication Critical patent/CN117376229A/zh
Application granted granted Critical
Publication of CN117376229B publication Critical patent/CN117376229B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于嵌入式设备的FTP文件***软件交叉调试方法及***,涉及嵌入式设备交叉调试领域,本发明基于嵌入式实时操作***,实现标准网络服务,通过网络实现GDB代理,实现GDB调试,从而提供一种适用于多类嵌入式设备的FTP文件***软件交叉调试方法及***。该方法及***能够将网络协议栈、GDB组件和GDB server组件统一管理,通过对应的交叉编译工具链编译后,同一套网络协议栈、GDB组件和GDB server组件将能够应用于多类嵌入式设备,大大降低了开发工作量,规避了分别交叉编译***、GDB组件和GDB server组件可能存在的编译问题,降低了交叉编译工具链的版本匹配与版本管理的压力。

Description

基于嵌入式设备的FTP文件***软件交叉调试方法及***
技术领域
本发明涉及嵌入式设备交叉调试领域,具体涉及一种基于嵌入式设备的FTP文件***软件交叉调试方法及***。
背景技术
当前嵌入式领域的交叉调试方法主要有以下四种方式:ROM仿真、在线仿真、片上调试、调试桩和调试服务器。
(1)ROM仿真
ROM仿真是指将ROM monitor小程序存储在作为目标机的嵌入式设备的ROM或Flash中,用户在开发运行在嵌入式设备上的嵌入式程序时,可以通过ROM monitor获得开发过程中的辅助测试与调试功能。ROM Monitor也有缺点,比如需要占用单片机的程序空间和串口资源,当ROM Monitor占用CPU时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。
(2)在线仿真(ICE)
在线仿真器取代了目标机上的CPU进行工作,功能与目标机处理器完全一致,而且它能产生外部电路所需信号,并且捕获外部所有信号。满足用户查看处理器内部数据并控制CPU运行的需求。主机调试器通过在线仿真器控制目标机上的用户程序。在线仿真器具备许多优点,如不消耗目标***资源和对硬件断点的支持等。同时,在线仿真器也存在着典型的缺陷,如开发成本高,价格昂贵,可扩展性差。在线仿真器通常提供固定的处理速度,在目标机处理器速度提高时,其速度很难扩展。
(3)片上调试(OCD)
片上调试通过在目标机微处理器内部嵌入控制模块,由该模块接管目标机的中断和异常处理,其调试形式与ROM监控基本一致。用户可设置需要进入调试状态的中断和异常。进入调试状态后,内嵌控制模块向外部通信接口发送信号,通知监听该接口的主机调试器,主机调试器通过该内嵌模块控制目标机,进行内存/寄存器读写操作,控制被调试程序的运行。片上调试方式的主要缺点是:调试的实时性不如在线仿真强,不支持非干扰调试查询,CPU必须具有片上调试功能,片上调试存在各种实现且标准不统一。
(4)调试桩和调试服务器
调试桩(Debugging Stub)和调试服务器(Debugging Server)是一小段驻留在目标机上的代码。采用这种调试方式进行交叉调试需要在目标机上运行调试桩(或调试服务器)和被调试程序,宿主机的调试器和目标机的调试桩(或调试服务器)使用远程调试协议进行连接。
与ROM Monitor调试方式不同的是,ROM Monitor程序是驻留在目标机的ROM中的,***复位时首先被执行,然后下载被调试程序进行调试;而调试桩和调试服务器不是固化在目标机上的,需要先通过某种工具将它们下载到目标机中,因此调试桩和调试服务器的使用更加灵活,能够和***启动过程解耦,对***启动和***运行的影响更小。
由于调试桩往往是被设计用来独立运行于目标板上的,不需要***软件环境的支持,因此它必须与被调试程序编译、连接在一起运行,一般用于底层***软件的调试;而调试服务器通常作为目标机***上的一个应用程序运行,一般用于应用软件的调试。
对于嵌入式设备而言,软件交叉调试可以采用上述调试服务器的方式进行。由于嵌入式设备***资源有限,因此大部分软件调试无法在目标设备上进行,需要采用交叉调试的方式尽可能确保开发者、测试者或使用者所调试的软件能够在目标设备上正常运行,同时减小调试过程对嵌入式设备及其***的影响。调试服务器的使用需要嵌入式***支持网络,需要嵌入式设备的***能够支持对宿主机/上位机发送过来的调试命令的解析与处理。
现有的应用于应用软件调试的调试服务器,以GNU调试器gdb为例,其主要过程如下:
1)使用buildroot或其他工具编译GDB server服务和GDB应用;
2)通过网卡驱动适配等方式使嵌入式操作***支持网络服务功能;
3)嵌入式设备上电,启动运行于嵌入式设备的嵌入式操作***;
4)宿主机/上位机上电启动;
5)为成功启动嵌入式操作***的嵌入式设备配置网络服务;
6)通过网络,将编译好的GDB server服务上传到嵌入式设备;
7)通过网络,将编译好的GDB上传到宿主机/上位机;
8)嵌入式设备,通过命令行等方式启动GDB server服务;
9)通过网络,上传待调试的应用程序到宿主机/上位机;
10)宿主机/上位机,通过命令行等方式启动GDB;
11)宿主机/上位机,通过GDB工具输入命令连接到嵌入式设备的GDB server服务端;
12)宿主机/上位机,通过命令行输入GDB调试命令发送至嵌入式设备的GDBserver服务端;
13)嵌入式设备,接收到来自宿主机/上位机的GDB调试命令,进行相应处理并返回处理结果;
14)宿主机/上位机收到嵌入式设备的GDB server返回的处理结果,调试完成,宿主机/上位机通过GDB命令断开与GDB server 的连接;
15)嵌入式设备,通过命令行关闭GDB server服务;宿主机/上位机退出GDB应用。
上述流程存在以下缺点:
(1)依赖目标嵌入式设备提供可用的网络服务,嵌入式设备使用GDB server服务之前,需要确保其网络服务可用,因此使用GDB server之前可能存在较大的网络协议栈开发工作;
(2)提供了网络服务的嵌入式设备的***大多不具有强实时性,不适用于要求实时性的嵌入式场景;
(3) GDB server和GDB单独编译,并没有和嵌入式网络文件***配套编译,可能存在与交叉编译相关的潜在问题,不能确保其可用性;
(4) GDB server和GDB单独编译,增加了交叉编译工具链的版本匹配与版本管理相关的工作。
综上所述,受限于嵌入式设备有限的资源条件和复杂的设备类型与应用场景,运行在嵌入式设备上的调试服务器的通用性、易用性与资源低占用就成为了调试服务器开发与适配工作的重点。
发明内容
针对现有技术中的上述不足,本发明提供的基于嵌入式设备的FTP文件***软件交叉调试方法及***解决了现有方法对嵌入式设备进行调试过程中的通用性和易用性较差的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于嵌入式设备的FTP文件***软件交叉调试方法,其包括以下步骤:
S1、基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
S2、采用YDI接口标准,向嵌入式设备移植yaffs2文件***作为flash文件***;
S3、构建GDB组件;其中GDB组件包括GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
S4、向嵌入式设备移植TFTP服务组件,并将其集成到yaffs2文件***中;
S5、统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server组件在内的FTP文件***及软件交叉调试工具;
S6、将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
提供一种基于嵌入式设备的FTP文件***软件交叉调试***,其包括:
LwIP网络协议栈移植组件,用于基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
yaffs2文件***移植组件,用于采用YDI接口标准,移植yaffs2文件***作为flash文件***;
GDB组件构建模块,用于构建GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
TFTP服务组件组件,用于移植TFTP服务组件,并将其集成到yaffs2文件***中;
统一编译组件,用于统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server组件在内的FTP文件***及软件交叉调试工具;
FTP文件***及软件交叉调试组件,用于将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
本发明的有益效果为:本发明基于嵌入式实时操作***,实现标准网络服务,通过网络实现GDB代理,实现GDB调试,从而提供一种适用于多类嵌入式设备的FTP文件***软件交叉调试方法及***。该方法及***能够将网络协议栈、GDB组件和GDB server组件统一管理,通过对应的交叉编译工具链编译后,同一套网络协议栈、GDB组件和GDB server组件将能够应用于多类嵌入式设备,大大降低了开发工作量,规避了分别交叉编译***、GDB组件和GDB server组件可能存在的编译问题,降低了交叉编译工具链的版本匹配与版本管理的压力。
附图说明
图1为本方法的流程示意图;
图2为移植yaffs2文件***作为flash文件***中重点需要实现的接口示意图;
图3为GDB中断处理模块的操作流程图;
图4为GDB命令处理模块的操作流程图;
图5为通过GDB调试通信模块向嵌入式设备发送数据的流程图;
图6为嵌入式设备通过GDB调试通信模块接收数据的流程图;
图7为移植工作完成后的***整体框图;
图8为实施例中本方法以复旦微FMQL10S400嵌入式硬件设备为例的交叉调试流程图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图1所示,该基于嵌入式设备的FTP文件***软件交叉调试方法包括以下步骤:
S1、基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
S2、采用YDI接口标准,向嵌入式设备移植yaffs2文件***作为flash文件***;
S3、构建GDB组件;其中GDB组件包括GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
S4、向嵌入式设备移植TFTP服务组件,并将其集成到yaffs2文件***中;
S5、统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server组件在内的FTP文件***及软件交叉调试工具;
S6、将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
步骤S1中移植LwIP网络协议栈包括移植LwIP网络协议栈的***配置文件LwIPSystem Config部分和移植LwIP的硬件驱动抽象层。
移植LwIP网络协议栈的***配置文件LwIP System Config部分的具体方法包括以下子步骤:
A1、创建tcp ip stack线程,并调用lwip init()函数初始化LwIP网络协议栈;
A2、申请一个网络接口(struct netif),设置其默认的IP地址、子网掩码和网关,并将该网络接口添加到接口列表(netif list);
A3、将步骤A2的网络接口注册为默认网络接口并启动;
A4、通过DHCP自动获取IP地址。
移植LwIP的硬件驱动抽象层的具体方法为:设置以太网的输入输出(GPIOs)、时钟(clocks)、多址接入信道(MAC)、直接内存访问(DMA),并创建读取以太网消息的线程。
在具体实施过程中,以嵌入式实时操作***中的FreeRTOS为例,它为LwIP协议栈提供了Mutex、Mail box和Create Thread等API接口,因此我们基于上述接口及FreeRTOS的API接口实现模板开展具体的移植工作,从而使得本发明能够在嵌入式实时操作***中使用。
步骤S2的具体方法包括以下子步骤:
S2-1、采用YDI接口标准,移植实现应用调用yaffs2的接口;
S2-2、移植实现yaffs2文件***和嵌入式实时操作***交互所使用的通讯接口;
S2-3、移植实现yaffs2文件***和Flash设备的交互接口;重点需要实现的接口如图2所示;
S2-4、移植实现yaffs2文件***和嵌入式实时操作***一起工作的多任务环境下所需的接口,包括信号量全局变量检查接口和内存区域检查接口;
S2-5、修改嵌入式实时操作***配置文件,配置yaffs2文件***所需的RAM资源。
步骤S6的具体方法为:
将FTP文件***及软件交叉调试工具中的GDB server组件、GDB中断处理模块和GDB命令处理模块应用到嵌入式设备上,将FTP文件***及软件交叉调试工具中的GDB调试通信模块同时应用在嵌入式设备和上位机上,并进行如下操作:
F1、启动嵌入式设备,并启动嵌入式设备的网络服务;
F2、启动嵌入式设备的GDB server组件;
F3、启动上位机,并启动上位机的网络服务;
F4、在上位机中获取待交叉调试的应用软件;
F5、在上位机中通过GDB组件连接嵌入式设备的GDB server组件;
F6、在上位机中通过GDB组件开展嵌入式设备的软件交叉调试工作。
在具体实施过程中,GDB组件包括运行在上位机的部分和运行在嵌入式设备的部分。GDB server组件运行在嵌入式设备,但是它只是一个服务端,用于确保上位机和嵌入式设备的顺利连接,确保上位机能够通过GDB server组件连接到嵌入式设备;而在嵌入式设备上的具体处理,是由运行在嵌入式设备上的GDB组件来实现的。
如图3所示,GDB中断处理模块的具体操作过程为:
B1、实时监测触发调试的中断信号,并在收到中断信号时将其保存在寄存器,进入步骤B2;
B2、查找断点向量表中是否存在与中断信号相对应的断点,若是则将控制权转交给GDB server组件进行调试代理,并在调试代理程序结束后恢复寄存器、继续原有操作***的处理;否则直接恢复寄存器、继续原有嵌入式实时操作***的处理。
在具体实施过程中,GDB中断处理模块用于负责处理运行中的异常,在中断信号到来时将控制权转交给GDB server组件进行调试代理,并在GDB server组件调试代理完成后将控制权移交给嵌入式实时操作***。
如图4所示,GDB命令处理模块的具体操作过程为:
C1、调用命令接收函数monitor接收来自上位机的数据包;数据包包括命令和信息;命令包括寄存器相关命令、内存相关命令和程序控制命令;
C2、通过串口接收函数getmsg向上位机返回即将处理的命令;
C3、解析命令:解析数据包中命令开始符号与命令结束符号之间的一个或多个用于组成要发送的消息的ASCII字节;
C4、格式转换:将解析得到的ASCII字节转换为可识别命令;
C5、处理可识别命令;
C6、判断是否需要向调试前端发送返回信息,若是则形成相应的可识别命令并调用putmsg函数向调试前端发送返回信息,返回步骤C5;否则进入步骤C7;
C7、判断是否继续接收命令并进行处理,若是则返回步骤C2;否则退回到GDB中断处理模块。
在具体实施过程中,GDB命令处理模块用于在调试处理程序中处理各调试命令,包括单步、多步、设置断点、读取内存和感知操作***。
如图5所示,通过GDB调试通信模块向嵌入式设备发送数据的过程为:
D1、向嵌入式设备上发送表示消息开始发送的字符;
D2、通过ASCII码对本次通信发送流程需要发送的消息进行传输,直至字符串长度len为0,判定当前发送流程结束;其中字符串长度len为当前剩余待发送数据的总数;
D3、向嵌入式设备发送代表发送流程结束的符号;
D4、向嵌入式设备发送验证码,即命令的校验和;并判断是否接收到来自嵌入式设备的表示校验成功的字符,若是则判定通信成功,结束本次通信流程;否则返回步骤D1。
如图6所示,嵌入式设备通过GDB调试通信模块接收数据的过程为:
E1、接收来自上位机的字符,并将其存入变量ch中;
E2、判断变量ch中存入的字符是否为表示消息开始发送的字符,若是则继续接收来自上位机的字符,并进入步骤E3;否则返回步骤E1;
E3、判断变量ch中最新存入的字符是否为代表发送流程结束的符号,若是则判定本次数据传输结束,验证码传输开始,进入步骤E5;否则进入步骤E4;
E4、更新变量checksum的值并将变量ch存入对应的缓存空间,同时将缓存计数+1,返回步骤E3;
E5、将验证码存入变量xmitcsum中,判断接收到的验证码与变量checksum 的值是否相等,若相等则判定成功完成数据接收,并向上位机返回表示校验成功的字符;否则向上位机返回表示通信失败的字符,并返回“checksum=0”以及“count=0”的信息到上位机,返回步骤E1。
移植工作完成后的***整体框图如图7所示。
该基于嵌入式设备的FTP文件***软件交叉调试***包括:
LwIP网络协议栈移植组件,用于基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
yaffs2文件***移植组件,用于采用YDI接口标准,向嵌入式设备移植yaffs2文件***作为flash文件***;
GDB组件构建模块,用于构建GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
TFTP服务组件组件,用于向嵌入式设备移植TFTP服务组件,并将其集成到yaffs2文件***中;
统一编译组件,用于统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server组件在内的FTP文件***及软件交叉调试工具;
FTP文件***及软件交叉调试组件,用于将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
在本发明的一个实施例中,以复旦微FMQL10S400嵌入式硬件设备为例,本发明提出的一种基于嵌入式设备的FTP文件***软件交叉调试工具及方法的工作流程如图8所示。上述流程与现有技术的软件交叉调试流程对比,主要差异在于运行GDB组件和GDB server组件的嵌入式设备的网络协议栈实现与文件***环境。复旦微FMQL10S400设备通过本发明提出的网络协议栈、yaffs文件***、GDB组件、TFTP服务组件以及组件统一编译这五个步骤,实现了GDB组件和GDB server组件作为软件交叉调试工具集成到网络文件***中的功能,实现了GDB组件和GDB server组件在嵌入式实时操作***下的运行,提升了FTP文件***交叉调试工具在不同嵌入式设备上的通用性,规避了分别编译可能带来的编译问题,降低了网络协议栈、GDB组件/GDB server工具以及交叉编译工具链在版本匹配与版本管理方面的压力。
具体来说,现有方法通过网卡驱动适配等方式使嵌入式操作***支持网络服务功能,并不采用统一的网络协议栈;本方法移植LwIP网络协议栈,采用了统一的网络协议栈。现有方法各个嵌入式板卡使用不同的文件***环境,需要根据文件***环境适配GDB组件和GDB server的可用性;本方法移植yaffs2文件***,无需根据文件***环境适配GDBserver的可用性。现有技术使用buildroot或其他工具编译单独GDB server服务和GDB应用;本方法统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server这些组件在内的FTP文件***及软件交叉调试工具,解决了通用性和易用性较差的问题。
综上所述,本发明提出的网络协议栈、GDB组件和GDB server将能够应用于多类嵌入式设备,大大降低开发工作量;本发明适配了嵌入式实时操作***,能够在有强实时性要求的嵌入式场景下使用;本发明能够将网络协议栈、GDB组件和GDB server工具统一管理,通过对应的交叉编译工具链编译后,规避了分别交叉编译***、GDB组件和GDB server可能存在的编译问题,降低了交叉编译工具链的版本匹配与版本管理的压力。

Claims (10)

1.一种基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,包括以下步骤:
S1、基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
S2、采用YDI接口标准,向嵌入式设备移植yaffs2文件***作为flash文件***;
S3、构建GDB组件;其中GDB组件包括GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
S4、向嵌入式设备移植TFTP服务组件,并将其集成到yaffs2文件***中;
S5、统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDB server组件在内的FTP文件***及软件交叉调试工具;
S6、将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
2.根据权利要求1所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,步骤S1中移植LwIP网络协议栈包括移植LwIP网络协议栈的***配置文件LwIP SystemConfig部分和移植LwIP的硬件驱动抽象层。
3.根据权利要求2所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,移植LwIP网络协议栈的***配置文件LwIP System Config部分的具体方法包括以下子步骤:
A1、创建tcp ip stack线程,并调用lwip init()函数初始化LwIP网络协议栈;
A2、申请一个网络接口,设置其默认的IP地址、子网掩码和网关,并将该网络接口添加到接口列表;
A3、将步骤A2的网络接口注册为默认网络接口并启动;
A4、通过DHCP自动获取IP地址。
4.根据权利要求2所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,移植LwIP的硬件驱动抽象层的具体方法为:
设置以太网的输入输出、时钟、多址接入信道、直接内存访问,并创建读取以太网消息的线程。
5.根据权利要求1所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,步骤S2的具体方法包括以下子步骤:
S2-1、采用YDI接口标准,移植实现应用调用yaffs2的接口;
S2-2、移植实现yaffs2文件***和嵌入式实时操作***交互所使用的通讯接口;
S2-3、移植实现yaffs2文件***和Flash设备的交互接口;
S2-4、移植实现yaffs2文件***和嵌入式实时操作***一起工作的多任务环境下所需的接口,包括信号量全局变量检查接口和内存区域检查接口;
S2-5、修改嵌入式实时操作***配置文件,配置yaffs2文件***所需的RAM资源。
6.根据权利要求1所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,步骤S6的具体方法为:
将FTP文件***及软件交叉调试工具中的GDB server组件、GDB中断处理模块和GDB命令处理模块应用到嵌入式设备上,将FTP文件***及软件交叉调试工具中的GDB调试通信模块同时应用在嵌入式设备和上位机上,并进行如下操作:
F1、启动嵌入式设备,并启动嵌入式设备的网络服务;
F2、启动嵌入式设备的GDB server组件;
F3、启动上位机,并启动上位机的网络服务;
F4、在上位机中获取待交叉调试的应用软件;
F5、在上位机中通过GDB组件连接嵌入式设备的GDB server组件;
F6、在上位机中通过GDB组件开展嵌入式设备的软件交叉调试工作。
7.根据权利要求6所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,GDB中断处理模块的具体操作过程为:
B1、实时监测触发调试的中断信号,并在收到中断信号时将其保存在寄存器,进入步骤B2;
B2、查找断点向量表中是否存在与中断信号相对应的断点,若是则将控制权转交给GDBserver组件进行调试代理,并在调试代理程序结束后恢复寄存器、继续原有操作***的处理;否则直接恢复寄存器、继续原有嵌入式实时操作***的处理;
GDB命令处理模块的具体操作过程为:
C1、调用命令接收函数monitor接收来自上位机的数据包;数据包包括命令和信息;命令包括寄存器相关命令、内存相关命令和程序控制命令;
C2、通过串口接收函数getmsg向上位机返回即将处理的命令;
C3、解析命令:解析数据包中命令开始符号与命令结束符号之间的一个或多个用于组成要发送的消息的ASCII字节;
C4、格式转换:将解析得到的ASCII字节转换为可识别命令;
C5、处理可识别命令;
C6、判断是否需要向调试前端发送返回信息,若是则形成相应的可识别命令并调用putmsg函数向调试前端发送返回信息,返回步骤C5;否则进入步骤C7;
C7、判断是否继续接收命令并进行处理,若是则返回步骤C2;否则退回到GDB中断处理模块。
8.根据权利要求7所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,通过GDB调试通信模块向嵌入式设备发送数据的过程为:
D1、向嵌入式设备上发送表示消息开始发送的字符;
D2、通过ASCII码对本次通信发送流程需要发送的消息进行传输,直至字符串长度len为0,判定当前发送流程结束;其中字符串长度len为当前剩余待发送数据的总数;
D3、向嵌入式设备发送代表发送流程结束的符号;
D4、向嵌入式设备发送验证码,即命令的校验和;并判断是否接收到来自嵌入式设备的表示校验成功的字符,若是则判定通信成功,结束本次通信流程;否则返回步骤D1。
9.根据权利要求7所述的基于嵌入式设备的FTP文件***软件交叉调试方法,其特征在于,嵌入式设备通过GDB调试通信模块接收数据的过程为:
E1、接收来自上位机的字符,并将其存入变量ch中;
E2、判断变量ch中存入的字符是否为表示消息开始发送的字符,若是则继续接收来自上位机的字符,并进入步骤E3;否则返回步骤E1;
E3、判断变量ch中最新存入的字符是否为代表发送流程结束的符号,若是则判定本次数据传输结束,验证码传输开始,进入步骤E5;否则进入步骤E4;
E4、更新变量checksum的值并将变量ch存入对应的缓存空间,同时将缓存计数+1,返回步骤E3;
E5、将验证码存入变量xmitcsum中,判断接收到的验证码与变量checksum 的值是否相等,若相等则判定成功完成数据接收,并向上位机返回表示校验成功的字符;否则向上位机返回表示通信失败的字符,并返回“checksum=0”以及“count=0”的信息到上位机,返回步骤E1。
10.一种基于权利要求1~9任一所述的基于嵌入式设备的FTP文件***软件交叉调试方法的***,其特征在于,包括:
LwIP网络协议栈移植组件,用于基于嵌入式实时操作***提供的API接口,移植LwIP网络协议栈;
yaffs2文件***移植组件,用于采用YDI接口标准,移植yaffs2文件***作为flash文件***;
GDB组件构建模块,用于构建GDB中断处理模块、GDB命令处理模块和GDB调试通信模块;
TFTP服务组件组件,用于移植TFTP服务组件,并将其集成到yaffs2文件***中;
统一编译组件,用于统一编译包括LwIP网络协议栈、yaffs2文件***、GDB组件、GDBserver组件在内的FTP文件***及软件交叉调试工具;
FTP文件***及软件交叉调试组件,用于将FTP文件***及软件交叉调试工具应用到嵌入式设备上,利用GDB server组件和GDB组件开展软件交叉调试工作。
CN202311679909.XA 2023-12-08 2023-12-08 基于嵌入式设备的ftp文件***软件交叉调试方法及*** Active CN117376229B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311679909.XA CN117376229B (zh) 2023-12-08 2023-12-08 基于嵌入式设备的ftp文件***软件交叉调试方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311679909.XA CN117376229B (zh) 2023-12-08 2023-12-08 基于嵌入式设备的ftp文件***软件交叉调试方法及***

Publications (2)

Publication Number Publication Date
CN117376229A CN117376229A (zh) 2024-01-09
CN117376229B true CN117376229B (zh) 2024-02-06

Family

ID=89404531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311679909.XA Active CN117376229B (zh) 2023-12-08 2023-12-08 基于嵌入式设备的ftp文件***软件交叉调试方法及***

Country Status (1)

Country Link
CN (1) CN117376229B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000033526A (ko) * 1998-11-24 2000-06-15 이계철 교차 디버깅을 위한 디버그 서버를 동적으로 자동 구동시키는방법
CN103729288A (zh) * 2013-11-01 2014-04-16 华中科技大学 一种嵌入式多核环境下应用程序的调试方法
CN105740139A (zh) * 2014-12-09 2016-07-06 北京中船信息科技有限公司 一种基于虚拟环境的嵌入式软件调试方法
CN109144849A (zh) * 2018-07-23 2019-01-04 武汉虹信通信技术有限责任公司 一种嵌入式软件调测方法
CN110673961A (zh) * 2018-07-03 2020-01-10 山东华软金盾软件股份有限公司 一种基于nfs服务的远程调试方法
CN111209046A (zh) * 2019-12-25 2020-05-29 北京时代民芯科技有限公司 一种面向多任务处理的嵌入式sparc处理器操作***设计方法
WO2022227411A1 (zh) * 2021-04-29 2022-11-03 苏州大学 一种嵌入式终端远程在线开发***
CN115757183A (zh) * 2022-12-06 2023-03-07 北京计算机技术及应用研究所 天熠嵌入式操作***下一种基于代理的任务级调试方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000033526A (ko) * 1998-11-24 2000-06-15 이계철 교차 디버깅을 위한 디버그 서버를 동적으로 자동 구동시키는방법
CN103729288A (zh) * 2013-11-01 2014-04-16 华中科技大学 一种嵌入式多核环境下应用程序的调试方法
CN105740139A (zh) * 2014-12-09 2016-07-06 北京中船信息科技有限公司 一种基于虚拟环境的嵌入式软件调试方法
CN110673961A (zh) * 2018-07-03 2020-01-10 山东华软金盾软件股份有限公司 一种基于nfs服务的远程调试方法
CN109144849A (zh) * 2018-07-23 2019-01-04 武汉虹信通信技术有限责任公司 一种嵌入式软件调测方法
CN111209046A (zh) * 2019-12-25 2020-05-29 北京时代民芯科技有限公司 一种面向多任务处理的嵌入式sparc处理器操作***设计方法
WO2022227411A1 (zh) * 2021-04-29 2022-11-03 苏州大学 一种嵌入式终端远程在线开发***
CN115757183A (zh) * 2022-12-06 2023-03-07 北京计算机技术及应用研究所 天熠嵌入式操作***下一种基于代理的任务级调试方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"嵌入式多线程远程调试器研究与实现";殷绍剑;《中国优秀硕士学位论文全文数据库 (信息科技辑)》(第1期);全文 *
GRDBS:一种针对嵌入式***的通用远程调试***;彭进展, 尹宝林, 黄鑫;计算机工程(第02期);全文 *
基于嵌入式平台的EPON***设计与实现;***;曹俊兴;宋昌林;汪欣;;计算机测量与控制(第02期);全文 *
嵌入式Linux-ARM9代码移植实现方法的研究;唐晓燕;陈居现;;电子与电脑(第09期);全文 *

Also Published As

Publication number Publication date
CN117376229A (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
EP0814404B1 (en) Debugging apparatus for debugging a program
US6188975B1 (en) Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
US9348771B1 (en) Cloud-based instrument driver system
CN108804313B (zh) 一种远程调试程序的方法、装置和服务器
CN113657069B (zh) 片上***soc仿真验证方法、装置、验证服务器及存储介质
CN116681013B (zh) 网络芯片的仿真验证方法、平台、装置、设备及介质
KR100794130B1 (ko) 이동통신단말기의 응용 프로그램 및 부가 서비스 자동기능시험장치
CN112988588B (zh) 客户端软件调试方法、装置、存储介质及电子设备
CN116627850B (zh) 函数调试方法、装置、存储介质以及电子设备
US7296187B1 (en) Hardware debug device having script-based host interface
CN117376229B (zh) 基于嵌入式设备的ftp文件***软件交叉调试方法及***
CN110209565A (zh) 一种元数据模型调试方法及其装置
CN117041111A (zh) 车云功能测试方法、装置、电子设备及存储介质
CN112162879A (zh) 一种实时多核dsp软件的日志***
CN109508193B (zh) 一种应用部署运行方法、装置、终端设备和介质
JP2008135008A (ja) プログラムモジュール検証方式
US6957179B2 (en) On-chip emulator communication
US20060161422A1 (en) Virtual emulation modules, virtual development systems and methods for system-on-chip development
JP2001318805A (ja) 組み込みシステムのテスト方法及びテストシステム
CN117648211B (zh) 人工智能框架的运行时统一接口、服务器及调用方法
CN116028427B (zh) 参数的配置***、方法及存储介质
CN118093446B (zh) 一种异构程序调试方法、***、装置、电子设备及存储介质
CN110018959B (zh) 一种嵌入式应用调试的方法以及***
JPH11238004A (ja) システムシミュレータ
CN115587031A (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