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

上传人:大师****2 文档编号:515140 上传时间:2018-02-20 格式:PDF 页数:8 大小:284.80KB
返回 下载 相关 举报
摘要
申请专利号:

CN00127968.8

申请日:

2000.12.21

公开号:

CN1360250A

公开日:

2002.07.24

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||公开|||实质审查的生效申请日:2000.12.21

IPC分类号:

G06F3/12

主分类号:

G06F3/12

申请人:

华为技术有限公司;

发明人:

黄金华

地址:

518057广东省深圳市科技园科发路华为用户服务中心大厦

优先权:

专利代理机构:

上海专利商标事务所

代理人:

周成

PDF下载: PDF下载
内容摘要

本发明公开了一种实现在数字信号处理器上的打印方法,该方法将数据格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。它具有灵活的打印机制,直观地显示调试信息,对参数的格式化和输出的性能影响低。

权利要求书

1: 一种实现在数字信号处理器上的打印方法,该方法基于主机和目标机 上,目标机的串口芯片接在数字信号处理器的外部内存接口上,数字信号处 理器程序通过外部内存接口存取串口芯片的寄存器,通过串行线将串口芯片 与主机中的一个串口连接,其特征在于:先将数据格式化的信息通过串口芯 片发送到主机上,并由主机执行格式化的过程;在对数据信息进行格式化时, 采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印 时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式 化显示打印。
2: 如权利要求1所述的实现在数字信号处理器上的打印方法,其特征在 于:在将数字信号处理器上的数据信息发送到串口芯片过程中,先检测串口 的状态如果不全为空,就不发送,否则取一条数据信息一次性写入串口进行 发送,发送采用缓冲的方式。
3: 如权利要求1所述的实现在数字信号处理器上的打印方法,其特征在 于:所述的格式化是将数据信息格式化为序号、格式地址、参数1、参数2四 个域。
4: 如权利要求3所述的实现在数字信号处理器上的打印方法,其特征在 于:所述序号是用来确定在发送过程中发生信息丢失时让用户知道,序号的 值在每条数据生成时加一;格式地址是printf函数的第一个格式化参数的地 址;参数1和参数2是最多2个的32位参数,可以有0、1或2个,在没有 时,其值以0代替,参数最多只能取两个。

说明书


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

    本发明涉及移动通信技术,更具体地是指一实现在数字信号处理器上的打印方法。

    在移动通信中,将实验数据打印一般是在数字信号处理器上进行的,如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位    序号  格式地址  参数1  参数2

    序号用来确定有无消息丢弃,在每条消息生成时加一,格式地址是printf函数的第一个参数的地址,包含格式化参数,参数1和参数2是最多2个的32位参数,可以有0,1或2个,在没有时,值以0代替。

    调用实例:

    0个参数,假定"No extra parameter\n"的地址为0x80001000,则

    printf("No extra parameter\n");

    实际输出为    1 0x80001000    0    0

    1个参数,假定"One parameter is%d\n"的地址为0x80002000,value1为100,则

    printf("One parameter is%d\n",value1);

    实际输出为    2 0x80002000    100    0

    2个参数,假定"Two parameters are%d and%d\n"的地址为0x80003000,value1为100,value2为200,则

    printf("Two parameters are%d and%d\n",value1,value2);

    实际输出为    3 0x80003000    100    200

    一个printf函数的执行只是把参数的值拷到缓冲区中,总共需要24个指令周期就能完成,实际的输出是由后台进程在空闲时一次一条消息写入串口的。

    主机1侧:

    主机侧的软件维护一个较大的缓冲区,来接收目标机来的一个一个消息,并从缓冲区中取消息进行显示,由于传给主机的消息并不是实际的结果,主机必须对消息进行解析并格式化,处理器C6x的目标文件格式是通用目标文件格式,里面包含了各种符号的地址信息和数据信息,通过查找通用目标文件格式文件,就能取到相应的信息。    1 0x80001000    100    0

    通过查找0x80001000的地址的数据得到字符串"No extra parameter\n",再通过解析此字符串得到结果,并打印结果如下:

    1.No extra parameter

    使用本发明的打印方法后,打印一条消息所用的时间是24个指令周期加上写16个字节到串口的时间,所以对性能几乎没有影响。在功能上实现了类似printf函数的灵活的格式化打印,在效率上不会影响性能,并且消息不管长短,时间是确定的。

一种实现在数字信号处理器上的打印方法.pdf_第1页
第1页 / 共8页
一种实现在数字信号处理器上的打印方法.pdf_第2页
第2页 / 共8页
一种实现在数字信号处理器上的打印方法.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《一种实现在数字信号处理器上的打印方法.pdf》由会员分享,可在线阅读,更多相关《一种实现在数字信号处理器上的打印方法.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明公开了一种实现在数字信号处理器上的打印方法,该方法将数据格式化信息通过串口芯片发送到主机上,并由主机执行格式化过程;在对数据信息进行格式时,采用固定字节来适合串口缓冲的大小,使一条消息能一次写入;最后在打印时,将所要打印的数据信息直接放入主机的缓冲器中,由主机后台进行格式化显示打印。它具有灵活的打印机制,直观地显示调试信息,对参数的格式化和输出的性能影响低。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1