用于对微控制器内的数据传输进行编程的系统和方法技术方案

技术编号:19878315 阅读:22 留言:0更新日期:2018-12-22 17:57
一种用于对微控制器(MCU)进行编程以实现数据传输的方法和系统,所述MCU具有闪存存储器、中央处理单元(CPU)和直接存储器访问控制器(DMAC)。在一个实施方式中,所述方法包括调用存储在闪存存储器中的函数,其中在调用所述函数时,将第一参数传递给所述函数,其中第一参数识别存储在闪存存储器中的第一数据结构,并且其中第一数据结构包括第一DMAC控制值。响应于CPU执行所述函数的指令,CPU读出第一DMAC控制值。然后,响应于CPU执行所述函数的指令,CPU将第一DMAC控制值写入DMAC的相应控制寄存器。

【技术实现步骤摘要】
【国外来华专利技术】用于对微控制器内的数据传输进行编程的系统和方法相关申请本申请根据美国法典第35章第119条(e)款要求2016年2月29日提交的名称为“PipesandSignals”的美国临时专利申请序列号62/300,953的本国权益,所述临时专利申请作为整体并且出于所有目的通过引用并入本文,如同在本文中完整地和全面地阐述一样。
技术介绍
微控制器(MCU)是在集成电路上形成的小型计算机。MCU提供对各种设备的嵌入式控制,所述设备例如办公机器、电器、汽车发动机控制系统、植入式医疗设备、电动工具、玩具等。MCU的架构各不相同。但是,几乎所有MCU都包含中央处理单元(CPU)、闪存存储器、随机存取存储器(RAM)、提供专用功能的一个或多个外围设备,以及一个或多个通用输入/输出(GPI/O)端口。CPU可以根据在闪存存储器中存储的嵌入程序的指令来处理在RAM中保存的数据。但是,在CPU可处理数据之前,必须将数据移动到RAM中。存在将数据移动到RAM的若干方法。一种方法称为编程I/O。在这种方法中,CPU可以通过执行加载或存储操作将数据从来源(例如,诸如UART或通用异步接收器/发送器的外围设备)传输到RAM。在传输每个字节或字之前,CPU可能必须等待来自来源的就绪信号,这可以通过轮询用于来源的状态寄存器或通过处理来自来源的“就绪”中断来完成。遗憾地是,CPU在传输数据时无法执行其他操作。直接存储器访问(DMA)是用于传输数据的另一种方法。这个过程由称为DMA控制器(DMAC)的设备来管理。在DMA中,在CPU不处理每个字节(或字)的情况下,直接传输数据。换句话说,DMA数据传输与CPU无关。DMA传输可以非常快速地将大量数据从来源(例如,外围设备)移动到目的地(例如,(RAM))。DMA数据传输的更明显的好处是,当DMAC传输数据时,CPU可以执行其他操作。然而,设置DMA传输需要在某种程度上使用CPU,但是在此之后,将在不涉及CPU的情况下传输数据。如上所述,在发生DMA传输之前,CPU必须对DMAC进行编程。换句话说,CPU必须告知DMAC要传输哪些数据、传输数据的位置以及如何传输数据。通过将适当的控制值写入DMAC的相应控制寄存器,CPU对DMAC进行编程。控制值定义传输。例如,控制值确定要传输的数据的来源(例如,UART),数据的目的地,要传输的数据量,数据的宽度,数据传输的模式(例如,突发模式、需求模式、透明模式、地址增量模式、单周期模式、写传输等)等。在运行时,CPU可以使用不同的控制值来反复地对DMAC进行重新编程,以实现不同的DMA数据传输。CPU对DMAC进行重新编程时执行不同的代码。例如,为了将数据从UART传输到RAM而对DMAC进行编程所需的代码将不同于将数据从RAM传输到通用串行总线(USB)接口而对DMAC进行重新编程所需的代码。开发人员在编写代码时,通常会犯错误,所述代码是对DMAC或为DMA传输所需的其他MCU组件进行编程或重新编程所需要的。例如,开发人员可能打算编写从UART到RAM中的特定缓冲区进行DMA数据传输的代码,但开发人员可能会意外地编写传输来自USB接口的数据的代码。另外,开发人员经常在将控制值写入寄存器的顺序中出错。当产生这些类型的编码错误时,它们可能非常难以调试,因为传输的一端通常是不容易检查的外围设备或RAM中的缓冲区。
技术实现思路
一种用于对具有闪存存储器、中央处理单元(CPU)和直接存储器访问控制器(DMAC)的微控制器(MCU)进行编程的方法和系统。在一个实施方式中,编程方法包括调用存储在闪存存储器中的函数,其中在调用函数时,将第一参数传递给函数,其中第一参数识别存储在闪存存储器中的第一数据结构,并且其中第一数据结构包括第一DMAC控制值。响应于CPU执行所述函数的指令,CPU读出第一DMAC控制值。然后,响应于CPU执行所述函数的指令,CPU将第一DMAC控制值写入DMAC的相应控制寄存器。一旦将第一DMAC控制值写入相应的控制寄存器,MCU得以编程来实现DMA传输。附图说明通过参看附图,可以在对于本领域的技术人员来说显而易见的本专利技术的许多目标、特征和优势方面来更好地理解本专利技术。图1示出了采用本公开的一个实施方式的以框图形式示出的示例MCU。图2A是示出在图的MCU中采用的事件链接控制器的框图。图2B是示出由图1的MCU实现的示例DMA传输的相关方面的框图。图3是示出用于对图1所示MCU的闪存存储器进行编程的工具的各个方面的框图。图4是示出根据本公开的一个实施方式的存储在图1的MCU的闪存存储器中的示例激活函数AF和数据传输结构(DTS)阵列的框图。图5是示出根据本公开的一个实施方式的由图1的MCU实现的方法的相关方面的流程图。在不同图式中使用的相同元件符号指示类似或完全相同的项目。具体实施方式描述了一种用于在运行时对MCU的一个或多个组件进行编程以实现数据传输的装置和方法。通常,对一个或多个组件进行编程的方法包括CPU将适当的控制值写入相应的控制寄存器。一旦组件得以编程,数据传输就可以开始。在一个实施方式中,在运行时,使用以C编程代码来编写的函数(下文中称为激活函数AF)和结构(在下文中称为数据传输结构DTS),对一个或多个组件进行编程,在调用AF时,所述结构的标签或标识作为函数参数传递给AF。数据传输结构DTS可以是阵列中的若干DTS之一,其中在一个实施方式中,每个DTS包括要写入例如DMAC的控制寄存器的控制值。如果MCU的一个或多个组件需要重新编程以便实现不同的数据传输,则通过再次调用激活函数AF并向其传递不同的DTS标签或标识来将一个或多个组件重新编程。除了前述内容之外,本公开还描述了可以由开发人员用于产生DTS和嵌入式程序的其他方面的工具和方法。虽然参考MCU来描述本专利技术,但是本专利技术不应限于此。图1是示出示例MCU100的相关组件的框图,其中可以使用上述激活函数AF。术语MCU不应限于图1所示的MCU。MCU100包含CPU102和存储器组件,所述存储器组件包括闪存存储器104、随机存取存储器(RAM)106和寄存器(未示出)。MCU100还包含外围设备108-120和通信系统122,各种组件(例如,RAM106和UART114)通过通信系统122彼此通信。如下面将更全面地描述的,通信系统122包括可编程DMAC。涵盖但未展示MCU100的附加组件,例如通用输入/输出(I/O)端口。闪存存储器104存储嵌入式程序,所述嵌入式程序包括主函数、激活函数AF和包含一个或多个DTS的阵列。嵌入式程序还可以包括函数库、硬件抽象层(HAL)驱动程序、通信栈、实时操作系统(RTOS)等。在过去,嵌入式程序是用汇编语言编写的,但现在使用各种高级语言(如C语言)来编写MCU代码。将参考用C编写的嵌入式程序来描述本公开,应理解,本专利技术不应限于此。一些MCU制造商提供集成开发环境(IDE),这是一组辅助嵌入式程序开发的工具。IDE通常包括编辑器、编译器和链接器等工具。编译器是将用C编写的源代码转换为目标代码的计算机程序(或一组程序)。链接器是一种计算机程序,它接收一个或多个目标代码文件并将它们组合成一个可执行文件。本公开涵盖一种IDE,所述IDE还包括图形编程工具本文档来自技高网
...

【技术保护点】
1.一种在微控制器(MCU)中实现的方法,所述MCU包括闪存存储器、中央处理单元(CPU)和直接存储器访问控制器(DMAC),所述方法包括:调用存储在所述闪存存储器中的函数,其中在调用所述函数时,将第一参数传递给所述函数,其中所述第一参数识别存储在闪存存储器中的第一数据结构,其中所述第一数据结构包括第一DMAC控制值;响应于所述CPU执行所述函数的指令,所述CPU读出所述第一DMAC控制值;响应于所述CPU执行所述函数的指令,所述CPU将所述第一DMAC控制值写入所述DMAC的相应控制寄存器。

【技术特征摘要】
【国外来华专利技术】2016.02.29 US 62/300,9531.一种在微控制器(MCU)中实现的方法,所述MCU包括闪存存储器、中央处理单元(CPU)和直接存储器访问控制器(DMAC),所述方法包括:调用存储在所述闪存存储器中的函数,其中在调用所述函数时,将第一参数传递给所述函数,其中所述第一参数识别存储在闪存存储器中的第一数据结构,其中所述第一数据结构包括第一DMAC控制值;响应于所述CPU执行所述函数的指令,所述CPU读出所述第一DMAC控制值;响应于所述CPU执行所述函数的指令,所述CPU将所述第一DMAC控制值写入所述DMAC的相应控制寄存器。2.如权利要求1所述的方法,所述方法进一步包括:第二次调用所述函数,其中在第二次调用所述函数时,将第二参数传递给所述函数,其中所述第二参数识别存储在闪存存储器中的第二数据结构,其中所述第二数据结构包括第二DMAC控制值;响应于第二次调用所述函数,所述CPU读出所述第二DMAC控制值;所述CPU使用所述第二DMAC控制值覆盖所述第一DMAC控制值。3.如权利要求1所述的方法,其中所述MCU包括第一外围设备,并且其中所述第一数据结构包括第一外围设备控制值,其中所述方法进一步包括:响应于所述CPU执行所述函数的指令,所述CPU读出所述第一外围设备控制值;响应于所述CPU执行所述函数的指令,所述CPU将所述第一外围设备控制值写入所述第一外围设备的相应控制寄存器。4.如权利要求3所述的方法,其中所述第一外围设备包括中断控制单元。5.如权利要求4所述的方法,其中所述第一数据结构包括用于第一中断服务例程的第一地址,并且其中所述方法进一步包括响应于所述CPU执行所述函数的指令,所述CPU将所述第一地址写入向量中断表的条目。6.如权利要求3所述的方法,其中所述第一外围设备包括事件链接控制器。7.如权利要求1所述的方法,所述方法进一步包括:在将所述第一DMAC控制值写入所述DMAC的相应控制寄存器之后,所述DMAC读出第一数据;在将所述第一DMAC控制值写入所述DMAC的相应控制寄存器之后,所述DMAC将所述第一数据写入第一缓冲区。8.MCU中的闪存存储器,所述闪存存储器包括可由所述MCU的中央处理器单元(CPU)执行的指令,其中响应于执行所述指令,所述CPU实现方法,所述方法包括:调用存储在所述MCU的闪存存储器中的函数,其中在调用所述函数时,将第一参数传递给所述函数,其中所述第一参数识别存储在所述闪存存储器中的第一数据结构,其中所述第一数据结构包括用于控制所述MCU的DMAC的第一直接存储器访问控制器(DMAC)控制值;响应于所述CPU执行所述函数的指令,所述CPU读出所述第一DMAC控制值;响应于所述CPU执行所述函数的指令,所述CPU将所述第一DMAC控制值写入所述DMAC的相应控制寄存器。9.如权利要求8所述的闪存存储器,其中所...

【专利技术属性】
技术研发人员:戴尔·斯巴林
申请(专利权)人:瑞萨电子美国有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1