一种实现在数字信号处理器上的打印方法技术

技术编号:2881365 阅读:206 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现在数字信号处理器上的打印方法,该方法将数据格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。它具有灵活的打印机制,直观地显示调试信息,对参数的格式化和输出的性能影响低。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及移动通信技术,更具体地是指一实现在数字信号处理器上的打印方法。在移动通信中,将实验数据打印一般是在数字信号处理器上进行的,如TMS320C6x是TI公司的一种数字信号处理器系列,它采用先进的长指令字结构,通过提高指令级的并行来提高性能,峰值处理能力达1600MIPS,数字信号处理器应用能够通过C语言来实现,在C语言中,最基本的打印函数是著名的printf,它完成的功能包括对打印参数的格式化和格式化结果的实际输出。由于数字信号处理器应用于高速信号处理的场合,对实时性和处理性能有较高的要求,(如TMS320C6x数字信号处理器系列主要应用于需要高速处理运算的场合)处理器的设计侧重于数据的吞吐和运算速度,对人机交互的支持不够,没有通常意义上的串口设备,调试程序是通过仿真器进行的。现有的几种解决数字信号处理器上的调试信息打印的方案一般采用如下几种(1)使用厂商提供的C标准库函数printf执行过程首先通过第一个参数的格式化信息对欲打印的信息进行格式化处理,形成最终的目标字符串,再通过仿真器把目标字符串传到主机,由主机上的仿真调试软件显示。优点printf函数是标准库函数的完全实现,格式化机制灵活,能打印多个参数和多种类型的数据。缺点打印一条消息的时间太长,打印一个字符就需要1000多个指令周期,随着字符数的增加和整数类型、浮点类型等的格式化,打印一条消息的时间将成倍增长,随之而来的问题是打印一条消息的时间是不确定的,这对需要高速处理的实时应用来说,是不能忍受的,而且在没接仿真器的情况下,这种方法也是不可行的。(2)外接串口芯片,重定向printf输出到串口芯片为了解决在不接仿真器的环境下也能打印调试信息,通过处理器的外部内存接口连接一个专用串口芯片,再与主机的串口连接。执行过程中消息的格式化部分与(1)中printf函数一样,实际输出时不是通过仿真器,而是通过串口芯片来输出,最后由主机的串口终端来接收并显示调试信息。此种方法除了有不依赖仿真器外的优点外,其它的优缺点与(1)的方案相同。(3)外接串口芯片,直接输出消息串到串口芯片硬件上的连接与(2)的方法一样,由于参数的格式化过程需要较多的指令周期,通过取消格式化的过程,来提高执行的效率,在需要打印时,直接取固定的字符串写入串口芯片,由主机的串口终端来接收并显示调试信息。优点由于没有格式化的过程,所以效率大为提高,打印的时间主要就是把字符串写入串口芯片的时间,对性能的影响较小,能够满足实时应用的需求。缺点由于取消了参数的格式化过程,所以打印控制不灵活,只能打印固定串,不能打印整数、浮点数等,这对C语言程序的调试很不利。消息串长度的不同,打印时间也不同,特别是串口的传输相对较慢,在消息串较长串口芯片的缓冲区满时,必须等待串口的发送,影响处理器的效率。为此,本专利技术的目的是针对现有在数字处理器上进行打印的方法存在的不足之处,提供,使其在不接或没法接仿真器的情况下,调用接口能提供灵活的打印机制,又能直观地显示调试信息,同时对处理器在参数的格式化和输出的性能和效率不会有大的损害。为了实现上述目的,本专利技术采用如下技术方案该实现在数字信号处理器上的打印方法,该方法基于主机和目标机上,目标机的串口芯片接在数字信号处理器的外部内存接口上,数字信号处理器程序通过外部内存接口存取串口芯片的寄存器,通过串行线将串口芯片与主机中的一个串口连接,在打印时,先将数据的格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。由于本专利技术采用将数据格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。利用本专利技术的打印方法能有效地克服在背景中所描写的三种方法存在的缺点,在没有接仿真器的情况下,考虑了数字信号处理器的应用场合对效率性能要求较岢刻和C语言编程的可读性和灵活性;调用接口能提供灵活的打印机制,又能直观地显示调试信息,同时对数字信号处理器在参数的格式化和输出的性能影响降到最低。下面结合附图和实施例,对本专利技术的方法作一详细地说明附图说明图1为本专利技术的方法所基于的硬件结构示意图。请结合图1本专利技术打印方法基于主机1和目标机2上,目标机2的串口芯片接在数字信号处理器的外部内存接口上,数字信号处理器(如TMS320C6x系列的处理器)就置于目标机2上,数字信号处理器程序通过外部内存接口存取串口芯片的寄存器,通过一根串行线3将串口芯片与主机中的一个串口连接,本专利技术的方法是先将数据格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。在将数字信号处理器上的数据信息发送到串口芯片过程中,先检测串口的状态如果不全为空,就不发送,否则取一条数据信息一次性写入串口进行发送,发送采用缓冲的方式。将数据信息格式化为序号、格式地址、参数1、参数2四个域。所述序号是用来确定在发送过程中发生信息丢失时让用户知道,序号的值在每条数据生成时加一;格式地址是printf函数的第一个格式化参数的地址;参数1和参数2是最多2个的32位参数,可以有0、1或2个,在没有时,其值以0代替,参数最多只能取两个。以在TMS320C6x数字信号处理器上实现打印为例,目标机2的串口芯片接在处理器C6x的外部内存接口上,处理器程序通过外部内存接口存取串口芯片的寄存器,通过一根串行线3将串口芯片与主机1的一个串口连接。目标机2侧串口采用带16个字节缓冲的芯片,一次可以同时写入16个字节,为了使一条消息能一次写入串口芯片,而不等待串口的发送,必须满足两个条件A)一条消息发送前,串口缓冲区是空的B)一条消息的长度<=16为了满足第一个条件,消息发送必须采用缓冲的方式,消息直接写入内存缓冲区,由后台打印任务在任务空闲时,并且串口缓冲区为空时一次性写入串口,为了满足第二个条件,我们采用一条消息固定为16个字节长,具体内容为32位 32位 32位32位 序号用来确定有无消息丢弃,在每条消息生成时加一,格式地址是printf函数的第一个参数的地址,包含格式化参数,参数1和参数2是最多2个的32位参数,可以有0,1或2个,在没有时,值以0代替。调用实例0个参数,假定"No extra parameter\n"的地址为0x80001000,则printf("No extra parameter\n");实际输出为 1个参数,假定"One parameter is%d\n"的地址为0x80002000,value1为100,则printf("One parameter is%d\n",value1);实际输出为 2个参数,假定"Two parameters are%d and%d\n"的地址为0x80003000,valu本文档来自技高网...

【技术保护点】
一种实现在数字信号处理器上的打印方法,该方法基于主机和目标机上,目标机的串口芯片接在数字信号处理器的外部内存接口上,数字信号处理器程序通过外部内存接口存取串口芯片的寄存器,通过串行线将串口芯片与主机中的一个串口连接,其特征在于:先将数据格式化的信息通过串口芯片发送到主机上,并由主机执行格式化的过程;在对数据信息进行格式化时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄金华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

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

1