wince 串口调试信息输出

摘要:
我们需要实现串口打印功能。如果您想调用DEBUGMSG(..)或RETAILMSG(.)从串行端口打印信息,则必须找到debug。c,并在此文件中实现以下四个函数:将一个字节写入串行端口voidOEMWriteDebugString(无符号短*str):此函数实际上是通过调用OEMWriteDebugByte(..)实现的。
不管在WinCE5.0还是在WinCE6.0中,我们在调试驱动或者应用的时候都会用到打印函数。在驱动里面,我们可能会用DEBUGMSG(..),RETAILMSG(..),还有NKDbgPrintfW(..)。在我们使用这些打印函数调试我们的程序之前,我们需要实现串口打印功能。
    在WinCE的BSP中,如果想调用DEBUGMSG(..)或者RETAILMSG(..)来从串口打印信息,必须在我们的BSP中的OAL层找到debug.c,在这个文件里面实现下面的4个函数:

void OEMInitDebugSerial(void) :      初始化用于打印信息的串口

int OEMReadDebugByte (void):      从串口读一个byte,出错时返回OEM_DEBUG_COM_ERROR;没有数据时返回OEM_DEBUG_READ_NODATA

void OEMWriteDebugByte(BYTE ch): 写一个byte到串口void OEMWriteDebugString(unsigned short* str):写一个字符串到串口,这个函数其实就是通过调用OEMWriteDebugByte(..)实现的。实现了上述的4个函数,就可以通过串口打印来调试程序了。一般这4个函数在OAL中的debug.c中实现。

在BSP中,我们一般会用3个函数来实现打印:DEBUGMSG,RETAILMSG,NKDbgPrintfW。简单介绍一下:

NKDbgPrintfW(..)函数一般只在OAL中使用,可以直接从串口中打印出信息,不受编译选项的影响。

DEBUGMSG(..)函数只有在工程在Debug模式下编译以后,才会打印出信息来。如果是在Release模式下编译的,就不会打印信息出来。

RETAILMSG(..)函数在Debug模式下和Release模式下编译都会打印出调试信息,但是如果你在工程的属性中的"Build option"中选择了"Enable ship build",那么RETAILMSG函数就不会打印信息了。

免责声明:文章转载自《wince 串口调试信息输出》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇快速的批量修改重命名.net程序的命名空间(一)软件安装方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Flink实战(八十七):FLINK-SQL应用场景(7)Flink 与 hive 结合使用(六)Hive 函数

1 通过 HiveModule 使用 Hive 内置函数 在 Flink SQL 和 Table API 中,可以通过系统内置的 HiveModule 来使用 Hive 内置函数, 详细信息,请参考 HiveModule。 val name = "myhive" val version = "2.3.4" table...

lodash按需引入

lodash提供了很多可用的方法供我们使用,绝对是一个很好用且用起来得心应手的工具库。但是同时,lodash的体积也不小,我们项目中使用的大概522K,可能只是使用了几个方法,但是却把整个lodash库引入了。为了吃几条鱼,就承包了整个鱼塘,代价有点大呀! 对于这个问题,有几种方案可供选择。 一.引入单个函数  lodash整个安装完之后,引用方式: lo...

程序设计与算法(三)C++面向对象程序设计 (北大MOOC)

  C++中有两方面体现重用:1、面向对象的思想:继承和多态,标准类库  2、泛型程序设计的思想:模板机制,以及标准模板库STL   标准模板库(Standard Template Library)就是一些常用数据结构和算法的模板的集合,有了STL,不必再写太多的标准数据结构和算法,并且可以获得非常高的性能     STL六大部件:容器(Container...

得到控制台窗口的句柄

得到控制台窗口的句柄 调用 GetConsoleTitle() 来保存当前的控制台窗口标题。 调用 SetConsoleTitle() 来将控制台标题更改为一个唯一的标题。 调用 Sleep(40),以确保已更新窗口标题。 调用 FindWindow(NULL, uniquetitle),以获取 HWND,此调用将返回 HWND, 如果操作失败,将返回...

运行UART的程序

1 捎程序的时候,注意,捎入的是norflash,此时的按钮应该在norFlash.2 当捎入成功的时候,开始运行程序时,应该把按钮按回nandflash,因为程序的启动就是在nandflash,他把norflash 的内容放到了nandflash中运行,cpu的固化程序做的。3 因为串口时用的速度是9600,所以你的vim .kermrc也应该改为960...

Haar小波分析

一 尺度函数与小波函数     基本尺度函数定义为:,对其向右平移任意 k 个单位,构成函数族 , 该函数族在 空间中正交,证明如下:    1 ;    2 当 m 不等于 k 时,    函数族  构成一组正交基,并形成  子空间。在  子空间中,任意函数均可表示为  的线性组合,。    将函数族  构造宽度缩小一半,则可形成宽度为  的一组正交基...