基于KeilC的MCU调试方法及系统与流程

未命名 10-18 阅读:255 评论:0

基于keilc的mcu调试方法及系统
技术领域
1.本发明涉及微处理控制器(microcontroller unit,mcu)调试领域,更具体地涉及一种基于keilc的mcu调试方法及系统。


背景技术:

2.随着芯片设计技术的快速发展,为实现越来越复杂和多样性的功能,芯片的管脚也随之越来越多,但对于广泛应用领域的芯片,管脚数目在20以下的芯片尤其是mcu芯片仍然占据主流市场。近年来,国内mcu芯片销售额年均复合增长率高达8.4%,并且mcu芯片市场和需求规模也不断扩大,因此对于mcu的开发效率提出了更高的要求。
3.功能强大的mcu开发周期较长,在开发过程中需要不断的对mcu进行调试,现有技术中主要通过上位机使用标准jtag接口调试模式对mcu进行调试,调试时占用mcu较多管脚,且调试过程较为复杂,具有较大的局限性。


技术实现要素:

4.本发明所要解决的技术问题是提供一种低复杂度且具有较高通用性的基于keilc的mcu调试方法及系统。
5.为解决上述技术问题,根据本发明的一方面,提供一种基于keilc的mcu调试方法,包括:上位机向双线调试器发送调试命令;其中,上位机安装有keilc集成开发环境;双线调试器将调试命令发送至待调试mcu的双线调试接口模块,所述双线调试接口模块对来自上位机的调试命令进行解析,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部相应的功能寄存器和/或存储器,以实现不同调试功能。
6.其进一步技术方案为:所述基于keilc的mcu调试方法还包括:待调试mcu根据来自双线调试接口模块的命令控制其cpu进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器发送至所述上位机。
7.其进一步技术方案为:所述cpu调试功能包括进入调试模式、退出调试模式、调试模式下系统复位操作、cpu运行操作、cpu停止操作、cpu执行单条指令操作以及cpu执行外部指令操作。
8.其进一步技术方案为:所述数据信息包括读地址指令信息/写地址指令信息、读数据指令信息/写数据指令信息;或者是,包括写数据指令信息、数据长度和待写数据。
9.其进一步技术方案为:所述数据信息包括读数据指令信息、数据长度和待读数据起始位。
10.为解决上述技术问题,根据本发明的另一方面,提供一种基于keilc的mcu调试系统,包括双线调试器、上位机以及待调试mcu,所述上位机安装有keilc集成开发环境,所述待调试mcu中包括有双线调试接口模块;其中,所述上位机用于向双线调试器发送调试命令;所述双线调试器用于将调试命令发送至待调试mcu的双线调试接口模块;所述双线调试接口模块用于解析来自上位机的调试命令,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部功能寄存器和/或存储器;所述待调试mcu根据来自所述双线调试接口模块的命令控制其cpu进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器发送至所述上位机。
11.其进一步技术方案为:所述双线调试接口模块包括:双线调试解析模块,用于解析来自上位机的调试命令,以根据所解析的调试命令控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息;调试命令解析模块,用于解析来自双线调试协议解析模块的数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据;访问交互模块,用于根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部功能寄存器和/或存储器,且接收来自待调试mcu内部功能寄存器和/或存储器的调试响应信息;所述调试命令解析模块还用于将所述调试响应信息传输至双线调试解析模块,以通过所述双线调试解析模块发送至所述上位机。
12.其进一步技术方案为:所述数据信息包括读地址指令信息/写地址指令信息、读数据指令信息/写数据指令信息。
13.其进一步技术方案为:所述数据信息包括写数据指令信息、数据长度和待写数据。
14.其进一步技术方案为:所述数据信息包括读数据指令信息、数据长度和待读数据起始位。
15.本发明的有益技术效果在于:与现有技术相比,本发明中上位机安装有keilc集成开发环境,双线调试器将调试命令发送至待调试mcu的双线调试接口模块,所述双线调试接口模块对来自上位机的调试命令进行解析,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部相应的功能寄存器和/或存储器,实现不同调试功能,可知,本发明基于keilc的集成开发环境,上位机通过双线调试器和双线调试接口模块有效且可靠地实现了待调试mcu双线在线调试功能,具有较高通用性,且在调试过程中,双线调试器仅占用待
调试mcu两个管脚,管脚占用率低,且其硬件设计复杂度低、通信稳定,调试稳定可靠。
附图说明
16.图1是本发明基于keilc的mcu调试方法一具体实施例的流程示意图。
17.图2是本发明基于keilc的mcu调试系统一具体实施例的结构框图示意图。
18.图3是本发明keilc的mcu调试系统中双线调试接口模块的具体结构框图。
具体实施方式
19.为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。
20.参照图1,图1为本发明基于keilc的mcu调试方法一具体实施例的流程示意图。在附图所示的实施例中,所述基于keilc的mcu调试方法包括:s101、上位机向双线调试器发送调试命令;其中,上位机安装有keilc集成开发环境。
21.众所周知,keilc集成开发环境是目前公认的应用最广泛的mcu系统开发环境,本发明基于keilc集成开发环境对mcu进行调试,具有较高通用性。
22.s102、双线调试器将调试命令发送至待调试mcu的双线调试接口模块,所述双线调试接口模块对来自上位机的调试命令进行解析,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部相应的功能寄存器和/或存储器。
23.该步骤中,双线调试器通过usb或者其他串口与上位机通信,双线调试器通过时钟线和数据线和双线调试接口模块连接,其中,时钟线的传输方向为上位机向mcu传输,数据线为上位机与mcu之间双向传输,优选地,本实施例中,当上位机向mcu传输数据时,数据线内容应在时钟线下降沿变化,而当mcu向上位机传输数据时,上位机应在时钟线下降沿采样数据,以保证采样时刻在数据保持周期的中间,以可靠地采样数据。可知,该双线调试器作为上位机与mcu之间的通信媒介,可转换双线与usb或者其他串口的通信协议,使上位机与mcu之间能够顺畅通信。
24.本发明中,cpu内包括调试控制寄存器、程序指针读取寄存器、累加器读取寄存器、程序状态字读取寄存器、存储器访问控制寄存器、调试外部指令寄存器,且调试控制寄存器实现的功能包括进入调试模式、退出调试模式、调试模式下系统复位操作、cpu运行操作、cpu停止操作、cpu执行单条指令操作、cpu执行外部指令操作;程序指针读取寄存器实现的功能为读取cpu程序指针的内容;累加器读取寄存器的功能为读取cpu累加器的内容;程序状态字读取寄存器的功能为读取cpu程序状态字的内容;存储器访问控制寄存器的功能包括flash擦除操作、flash及sram写操作、flash及sram读操作、sfr写操作、sfr读操作、iram写操作、iram读操作;调试外部指令寄存器存储调试模式下需执行的外部指令。
25.而待调试mcu内部功能寄存器和/或存储器可包括:存储访问flash及sram的逻辑地址的flash及sram访问地址寄存器、存储访问flash及sram的数据的flash及sram访问数
据寄存器、存储访问sfr的地址的sfr访问地址寄存器、存储访问sfr的数据的sfr访问数据寄存器、存储访问iram的地址的iram访问地址寄存器、存储访问iram的数据的iram访问数据寄存器、存储mcu调试所需的n个断点地址内容的断点0~n配置寄存器。
26.该步骤中,所述数据信息可包括读地址指令信息/写地址指令信息、读数据指令信息/写数据指令信息;或者可包括写数据指令信息、数据长度和待写数据,或者可包括读数据指令信息、数据长度和待读数据起始位。
27.可理解地,用户可根据需求自定义数据信息的数据,例如,读地址指令信息、写地址指令信息、读数据指令信息和写数据指令信息可以定义为占用2bit,0表示写地址指令,1表示读地址指令,2表示写数据指令,3表示读数据指令,且数据长度位可定义为占用2bit,0表示数据长度为8bit,1表示数据长度为16bit,而2表示数据长度为24bit,3表示数据长度为32bit;而在读写数据时,数据长度为固定值,由寄存器地址长度决定。
28.s103、待调试mcu根据来自双线调试接口模块的命令控制其cpu进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器发送至所述上位机。
29.该步骤中,所述cpu调试功能可包括进入调试模式、退出调试模式、调试模式下系统复位操作、cpu运行操作、cpu停止操作、cpu执行单条指令操作以及cpu执行外部指令操作等。
30.参照图2,图2为本发明基于keilc的mcu调试系统一具体实施例的结构框图示意图。在附图所示的实施例中,所述基于keilc的mcu调试系统包括双线调试器20、上位机10以及待调试mcu 30,所述上位机10安装有keilc集成开发环境,所述待调试mcu 30中包括有双线调试接口模块31;其中,所述上位机10用于向双线调试器20发送调试命令;所述双线调试器20用于将调试命令发送至待调试mcu 30的双线调试接口模块31;所述双线调试接口模块31用于解析来自上位机10的调试命令,以控制待调试mcu 30的cpu 32,并获得包含更新或读取待调试mcu 30内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu 30发出交互请求,以访问待调试mcu 30内部功能寄存器和/或存储器;所述待调试mcu 30根据来自所述双线调试接口模块31的命令控制其cpu 32进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器20发送至所述上位机10;如图2所示,本实施例中,所述待调试mcu 30内部功能寄存器和/或存储器包括flash 33、sram 34、iram 35和sfr 36等寄存器。
31.具体地,如图3所示,本实施例中,所述双线调试接口模块31包括双线调试解析模块311、调试命令解析模块312、访问交互模块313,其中,所述双线调试解析模块311用于解析来自上位机10的调试命令,以根据所解析的调试命令控制待调试mcu的cpu,并获得包含更新或读取待调试mcu 30内部功能寄存器和/或存储器的数据信息;所述调试命令解析模块312用于解析来自双线调试协议解析模块的数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据;所述访问交互模块313用于根据解析获得的待
更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu 30发出交互请求,以控制其cpu 32,并访问待调试mcu 30内部功能寄存器和/或存储器,且接收来自待调试mcu 30内部功能寄存器和/或存储器的调试响应信息;所述调试命令解析模块312还用于将所述调试响应信息传输至双线调试解析模块311,以通过所述双线调试解析模块311发送至所述上位机10。
32.优选地,本实施例中,所述数据信息可包括四种数据,即包括读地址指令信息和读数据指令信息,或者是包括写地址指令信息和写数据指令信息(即对指定地址处的数据进行更新);或者,包括写数据指令信息、数据长度和待写数据;或者,包括读数据指令信息、数据长度和待读数据起始位。可理解地,由于访问的功能寄存器和/或存储器可能无法即时响应,在读写数据时还可在数据信息中加入等待响应位。
33.综上所述,本发明中上位机安装有keilc集成开发环境,双线调试器将调试命令发送至待调试mcu的双线调试接口模块,所述双线调试接口模块对来自上位机的调试命令进行解析,以根据所解析的调试命令控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部相应的功能寄存器和/或存储器,实现不同调试功能,可知,本发明基于keilc的集成开发环境,上位机通过双线调试器和双线调试接口模块有效且可靠地实现了待调试mcu双线在线调试功能,具有较高通用性,且在调试过程中,双线调试器仅占用待调试mcu两个管脚,管脚占用率低,且其硬件设计复杂度低、通信稳定,调试稳定可靠。
34.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。而对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
35.以上所述仅为本发明的优选实施例,而非对本发明做任何形式上的限制。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入本发明的保护范围之内。

技术特征:
1.一种基于keilc的mcu调试方法,其特征在于,包括:上位机向双线调试器发送调试命令;其中,上位机安装有keilc集成开发环境;双线调试器将调试命令发送至待调试mcu的双线调试接口模块,所述双线调试接口模块对来自上位机的调试命令进行解析,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部相应的功能寄存器和/或存储器,以实现不同调试功能。2.如权利要求1所述的基于keilc的mcu调试方法,其特征在于:所述基于keilc的mcu调试方法还包括:待调试mcu根据来自双线调试接口模块的命令控制其cpu进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器发送至所述上位机。3.如权利要求2所述的基于keilc的mcu调试方法,其特征在于:所述cpu调试功能包括进入调试模式、退出调试模式、调试模式下系统复位操作、cpu运行操作、cpu停止操作、cpu执行单条指令操作以及cpu执行外部指令操作。4.如权利要求1所述的基于keilc的mcu调试方法,其特征在于:所述数据信息包括读地址指令信息/写地址指令信息、读数据指令信息/写数据指令信息;或者是,包括写数据指令信息、数据长度和待写数据。5.如权利要求1所述的基于keilc的mcu调试方法,其特征在于:所述数据信息包括读数据指令信息、数据长度和待读数据起始位。6.一种基于keilc的mcu调试系统,其特征在于:包括双线调试器、上位机以及待调试mcu,所述上位机安装有keilc集成开发环境,所述待调试mcu中包括有双线调试接口模块;其中,所述上位机用于向双线调试器发送调试命令;所述双线调试器用于将调试命令发送至待调试mcu的双线调试接口模块;所述双线调试接口模块用于解析来自上位机的调试命令,以控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部功能寄存器和/或存储器;所述待调试mcu根据来自所述双线调试接口模块的命令控制其cpu进入cpu调试功能,且根据所述交互请求对其内部相应的功能寄存器和/或存储器进行访问,以实现不同调试功能,获得调试响应信息,并将所获得的调试响应信息通过所述双线调试器发送至所述上位机。7.如权利要求6所述的基于keilc的mcu调试系统,其特征在于:所述双线调试接口模块包括:双线调试解析模块,用于解析来自上位机的调试命令,以根据所解析的调试命令控制待调试mcu的cpu,并获得包含更新或读取待调试mcu内部功能寄存器和/或存储器的数据信
息;调试命令解析模块,用于解析来自双线调试协议解析模块的数据信息,以获得待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据;访问交互模块,用于根据解析获得的待更新或读取的功能寄存器和/或存储器以及相应的配置命令和数据向待调试mcu发出交互请求,以访问待调试mcu内部功能寄存器和/或存储器,且接收来自待调试mcu内部功能寄存器和/或存储器的调试响应信息;所述调试命令解析模块还用于将所述调试响应信息传输至双线调试解析模块,以通过所述双线调试解析模块发送至所述上位机。8.如权利要求6所述的基于keilc的mcu调试系统,其特征在于:所述数据信息包括读地址指令信息/写地址指令信息、读数据指令信息/写数据指令信息。9.如权利要求6所述的基于keilc的mcu调试系统,其特征在于:所述数据信息包括写数据指令信息、数据长度和待写数据。10.如权利要求6所述的基于keilc的mcu调试系统,其特征在于:所述数据信息包括读数据指令信息、数据长度和待读数据起始位。

技术总结
本发明公开一种基于KeilC的MCU调试方法,包括:上位机向双线调试器发送调试命令;上位机安装有KeilC集成开发环境;双线调试器将调试命令发送至待调试MCU的双线调试接口模块,所述双线调试接口模块对调试命令进行解析,以控制待调试MCU的CPU,并获得包含更新或读取待调试MCU内部功能寄存器和/或存储器的数据信息,解析所述数据信息,以获得待更新或读取的功能寄存器和/或存储器及相应的配置命令和数据,并根据解析获得的待更新或读取的功能寄存器和/或存储器及相应的配置命令和数据向待调试MCU发出交互请求,以访问待调试MCU内部相应的功能寄存器和/或存储器。同时还公开一种基于KeilC的MCU调试系统。于KeilC的MCU调试系统。于KeilC的MCU调试系统。


技术研发人员:张祖兴 艾育林 裘三君
受保护的技术使用者:深圳市瑞之辰科技有限公司
技术研发日:2023.08.30
技术公布日:2023/10/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐