一种实现微控制器芯片的用户debug模式的方法与流程

文档序号:11250785阅读:326来源:国知局
一种实现微控制器芯片的用户debug模式的方法与流程

本发明涉及一种微控制器芯片,具体是一种实现微控制器芯片的用户debug模式的方法。



背景技术:

对于芯片设计来说,在设计目标上往往存在冲突,即它们的功能要足够全面,同时要求芯片面积尽量小。芯片用户开发应用程序时,支持用户debug模式的微控制器芯片能够带来非常大的便利。微控制器芯片的用户debug模式是相对于芯片正常工作模式之处的一种额外的模式,需要增加额外的逻辑资源才能实现,所以会使微控制器芯片的面积增大,从而使生产成本上升。



技术实现要素:

本发明的目的在于提供一种实现微控制器芯片的用户debug模式的方法,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方法:

一种实现微控制器芯片的用户debug模式的方法,微控制器芯片内部包括芯片代码选项模块option、程序存储器pmem、数据存储器dmem、外设模块per、用户debug模式控制模块dbg_ctrl、微控制器内核core,外设模块per是包含mcu所有外设的集合,spi模块是包含于外设集合中的一个子模块,微控制器芯片通过spi模块与芯片外部进行串行通信,spi模块内部包括串行接收控制逻辑以及串行发送控制逻辑,串行接收控制逻辑负责完成串行通信调试的接收过程,串行发送控制逻辑负责完成串行通信调试的发送过程,使用微控制器芯片的用户debug模式时,复用spi通信的3个单向通信端口,spi模块通过miso输出端口将芯片的数据输出至芯片外部的上位机,spi模块通过mosi输入端口接收芯片外部的上位机输入的信息。

作为本发明进一步的方法:芯片代码选项模块option负责整个微控制器芯片中全局性的配置。

作为本发明进一步的方法:能够通过芯片的代码选项中的用户debug模式使能信号dbg_en使能或者关闭芯片的用户debug模式。

作为本发明进一步的方法:当debug模式使能信号dbg_en被配置为高电平状态时,spi模块才被复用来实现用户debug模式。

作为本发明再进一步的方法:芯片外部的上位机与spi模块进行串行通信,spi模块将mosi信号端口上的串行通信数据进行并行化处理,然后通过并行通信总线pc_bus与用户debug模式控制模块dbg_ctrl进行数据交互。

与现有技术相比,本发明的有益效果是:本发明通过复用微控制器芯片中的spi模块的逻辑资源和通信端口,而不需要增加过多额外的逻辑资源、额外的通信接口以及通信端口即可以实现微控制器芯片的用户调试功能,节省了用于实现用户debug模式的大部分逻辑资源,降低微控制器芯片的生产成本。

附图说明

图1为复用spi模块实现微控制器芯片的用户debug模式的原理框图。

图2为用户debug模式控制模块的原理框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方法进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明复用spi模块实现微控制器芯片的用户debug模式的方法原理如图1所示。微控制器芯片内部包括芯片代码选项模块option、程序存储器pmem、数据存储器dmem、外设模块per、用户debug模式控制模块dbg_ctrl、微控制器内核core。外设模块per是包含mcu所有外设的集合。spi模块是包含于外设集合中的一个子模块,本方法通过复用spi模块可以实现微控制器芯片的用户debug模式。

在本方法中,微控制器芯片通过spi模块与芯片外部进行串行通信。spi模块内部包括串行接收控制逻辑以及串行发送控制逻辑。串行接收控制逻辑负责完成串行通信调试的接收过程。串行发送控制逻辑负责完成串行通信调试的发送过程。使用微控制器芯片的用户debug模式时,需要复用spi通信的3个单向通信端口。spi模块通过miso输出端口将芯片的数据输出至芯片外部的上位机。spi模块通过mosi输入端口接收芯片外部的上位机输入的信息。sclk为spi通信提供同步的时钟。

芯片代码选项模块option负责整个微控制器芯片中全局性的配置,在本方法中,可以通过芯片的代码选项中的用户debug模式使能信号dbg_en使能或者关闭芯片的用户debug模式。只有当debug模式使能信号dbg_en被配置为高电平状态时,spi模块才被复用来实现用户debug模式。芯片外部的上位机与spi模块进行串行通信,spi模块将mosi信号端口上的串行通信数据进行并行化处理,然后通过并行通信总线pc_bus与用户debug模式控制模块dbg_ctrl进行数据交互。用户debug模式控制模块的原理如图2所示。在用户debug模式控制模块中,通过比较器c1,将spi模块输送过来的并行通信总线pc_bus与用户debug模式入口校对码deg_entry进入比较,当两者相同时,将触发用户debug模式寄存器dbg_mode置位,微控制器芯片进入用户debug模式。

在微控制器芯片进入用户debug模式后,上位机将调试指令单步、断点、全速等通过串行通信将数据输送至芯片内部,spi模块将串行通信数据进行并行化处理,然后通过并行通信总线pc_bus输入至用户debug模式控制模块dbg_ctrl。用户debug模式控制模块dbg_ctrl内部的用户debug模式接口控制逻辑dbg_intf对并行通信总线pc_bus送过来的数据进行译码,然后通过调试指令信号发送至微控制器内核core。微控制器内核根据调试指令信号做出相应的操作。在用户debug模式中,芯片外部的上位机也可以通过串行通信读取到微控制器芯片运行的实时状态。这些实时状态包括堆栈、程序指针、累加器、状态寄存器等信息。当微控制器芯片正常工作时,微控制器内核通过特殊功能总线sfr_bus对外设模块中的特殊功能寄存器进行读写操作。当微控制器芯片处于用户debug模式,上位机需要获取芯片内特殊功能寄存器的值时,用户debug模式接口控制逻辑dbg_intf通过调试指令信号通知微控制器内核,然后微控制器内核逐一将所有特殊功耗寄存器的值通过状态反馈信号传送至用户debug模式接口控制逻辑dbg_intf,用户debug模式接口控制逻辑dbg_intf再将反馈的数据输送至spi模块。最后,spi模块通过其内部的串行发送控制逻辑与芯片外部的上位机进行串行通信,将反馈的数据输送至上位机。微控制器芯片处于用户debug模式中时,上位机也获取数据存储器dmem中的存储值。

为了方便用户使用微控制器芯片对应用程序进行调试,上位机可以通过串行通信将操作请求发送至用户debug模式控制模块dbg_ctrl,用户debug模式接口控制逻辑dbg_intf通过程序存储器直接存取总线dma_pmem将程序指令码写入程序存储器中。

当用户完成调试后,需要退出用户debug模式时,上位机将通过串行信号将退出用户debug模式请求发送至spi模块。spi模块将接收到的串行数据并行化,然后输入至用户debug模式控制模块中,通过比较器c2,将spi模块输送过来的并行通信总线pc_bus与用户debug模式出口校对码exit_code进入比较,当两者相同时,将触发用户debug模式寄存器dbg_mode清零,微控制器芯片退出用户debug模式。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方法,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方法也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1