本发明涉及电子电路的运行控制技术领域,具体涉及一种基于swd协议的芯片运行交互方法及通信系统。
背景技术:
arm公司在经典处理器arm11以后的产品改用cortex命名,并分成a、r和m三类,旨在为各种不同的市场提供服务。armcortextm-a系列应用型处理器可向托管丰富os平台和用户应用程序的设备提供全方位的解决方案,从超低成本手机、智能手机、移动计算平台、数字电视和机顶盒到企业网络、打印机和服务器解决方案。armcortex-r系列应用型处理器能够实时处理器为要求可靠性、高可用性、容错功能、可维护性和实时响应的嵌入式系统提供高性能计算解决方案。armcortextm-m系列应用型处理器是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用和提高能效。
cortex系列芯片虽然处理能力强大,但cortex芯片在处理自己的事务的过程中如果再接收数据,就会产生额外的开销,会明显影响上位机和cortex芯片之间正常的交互。
技术实现要素:
本发明旨在提供一种基于swd协议的芯片运行交互方法,该机制能够实现cortex系列芯片在处理自己的事务的过程中能够同时接收数据,不会因为接收数据产生任何额外的开销,能够确保数据传输的完整性,简化上位机与芯片的运行交互过程。本发明由以下技术方案实现:
一种基于swd协议的芯片运行交互机制,其特征在于:
上位机端执行的步骤包括:
(1)初始化swd总线;
(2)取出要发送给cortex芯片的命令;
(3)通过swd总线发送命令,包括:
(3-1)往cortex芯片中预设地址a发送写入长度和命令数据内容;
(3-2)往cortex芯片中预设地址b发送命令码;
(4)等待cortex芯片处理命令完毕,读取cortex芯片中预设地址c中保存的ack响应内容;
(5)重复步(2)至步骤(4),直到上位机所有命令发送完毕;
cortex芯片端执行的步骤包括:
①cortex芯片初始化;
②读取预设地址b中的命令码;
③读取预设地址a中的长度,并且读取对应长度数据;
④根据步骤②、③读取的数据,组成完整的命令,并且执行对应的命令;
⑤执行命令完毕,清除预设地址b中的命令码,以便接收下一个命令;
⑥往预设地址c写入ack响应内容;
⑦重复执行步骤②-步骤⑥。
作为具体的技术方案,所述步骤(4)中,如果未能读取cortex芯片中预设地址c中的ack响应内容,则反复进行读取,,直至读取到ack响应内容。
作为具体的技术方案,所述步骤②中,如果未能在cortex芯片中预设地址b中读取到命令码,则反复进行读取,直至读取到命令码。
本发明还提供一种通信系统,包括上位机和cortex芯片,其特征在于:所述上位机和cortex芯片配合执行上述基于swd协议的芯片运行交互方法。
本发明的有益效果在于:通过在cortex芯片内预设地址a、地址b、地址c及相应的存储空间,同时采用特定的命令交互方式,保证了上位机与cortex芯片运行交互正常,实现cortex芯片在处理自己的事务的过程中能够同时接收数据,不会因为接收数据产生任何额外的开销,能够确保数据传输的完整性,简化上位机与芯片的运行交互过程。
附图说明
图1为本发明实施例提供的基于swd协议的芯片运行交互机制的流程图。
具体实施方式
本实施例提供的通信系统,上位机与cortex芯片通过swd协议通信,由于swd协议通信能够实现异步数据传输,所以必须采用特定的命令交互方式才能保证上位机与cortex芯片运行交互正常。
结合图1所示,本实施例提供的基于swd协议的芯片运行交互方法,预先在cortex芯片预设有地址a、地址b、地址c及相应的存储空间。下文从上位机端和cortex芯片端分别进行说明,如下:
上位机端执行的步骤包括:
(1)初始化swd总线;
(2)取出要发送给cortex芯片的命令;
(3)通过swd总线发送命令,包括:
(3-1)往cortex芯片中预设地址a发送写入长度和命令数据内容;
(3-2)往cortex芯片中预设地址b发送命令码;
(4)等待cortex芯片处理命令完毕,读取cortex芯片中预设地址c中保存的ack(acknowledgement,即确认字符)响应内容;如果未能读取cortex芯片中预设地址c中保存的ack响应内容,则反复进行读取;
(5)重复步(2)至步骤(4),直到上位机所有命令发送完毕;
cortex芯片端执行的步骤包括:
①cortex芯片初始化;
②读取预设地址b中的内容,如果读取到命令码,则执行步骤③,否则执行步骤②;
③读取预设地址a中的长度,并且读取对应长度数据;
④根据步骤②、③读取的数据,组成完整的命令,并且执行对应的命令;
⑤执行命令完毕,清除预设地址b中的命令码,以便接收下一个命令;
⑥往预设地址c写入ack响应内容;
⑦重复执行步骤②-步骤⑥。
以上实施例仅为充分公开而非限制本发明,凡基于本发明的创作主旨、无需经过创造性劳动即可等到的等效技术特征的替换,应当视为
本技术:
揭露的范围。
1.一种基于swd协议的芯片运行交互方法,其特征在于:
上位机端执行的步骤包括:
(1)初始化swd总线;
(2)取出要发送给cortex芯片的命令;
(3)通过swd总线发送命令,包括:
(3-1)往cortex芯片中预设地址a发送写入长度和命令数据内容;
(3-2)往cortex芯片中预设地址b发送命令码;
(4)等待cortex芯片处理命令完毕,读取cortex芯片中预设地址c中保存的ack响应内容;
(5)重复步(2)至步骤(4),直到上位机所有命令发送完毕;
cortex芯片端执行的步骤包括:
①cortex芯片初始化;
②读取预设地址b中的命令码;
③读取预设地址a中的长度,并且读取对应长度数据;
④根据步骤②、③读取的数据,组成完整的命令,并且执行对应的命令;
⑤执行命令完毕,清除预设地址b中的命令码,以便接收下一个命令;
⑥往预设地址c写入ack响应内容;
⑦重复执行步骤②-步骤⑥。
2.根据权利要求1所述的基于swd协议的芯片运行交互方法,其特征在于,所述步骤(4)中,如果未能读取cortex芯片中预设地址c中的ack响应内容,则反复进行读取,,直至读取到ack响应内容。
3.根据权利要求1所述的基于swd协议的芯片运行交互方法,其特征在于,所述步骤②中,如果未能在cortex芯片中预设地址b中读取到命令码,则反复进行读取,直至读取到命令码。
4.一种通信系统,包括上位机和cortex芯片,其特征在于:所述上位机和cortex芯片配合执行权利要求1至3任意一项所述的基于swd协议的芯片运行交互方法。