wince7下的串口信息打印函数

        菜鸟一枚,刚刚开始学wince。最近将串口打印串口驱动(uart 驱动)给弄混了。现在才弄明白串口打印功能和串口驱动虽然都用了arm芯片上的uart 控制器,但是它们是各自独立的,在不同的地方实现对寄存器的操作。

        串口打印功能:串口信息打印一般使用DEBUGMSGRETAILMSGNKDbgPrintfW这三个函数,DEBUGMSG和RETAILMSG是通过调用NKDbgPrintfW来实现的。DEBUGMSG只在DEBUG版本中有效,RELEASE版本中它不起作用。RETAILMSG和NKDbgPrintfW在DEBUG和RELEASE中都有效,但前提是在VS2008的Build Options中关闭ship build,原因将在下面给出。

        platform\common\src\common\boot\blcommon\blcommon.c文件中的BootloaderMain()函数调用OEMDebugInit()实现串口的初始化。

        NKDbgPrintfW调用NKvDbgPrintfW函数,而NKvDbgPrintW函数调用里面调用了OutputNumHex等几个函数,但这些函数最终都是调用了Debugserial.c(不同BSP,文件名可能也不一样)文件中的OEMWriteDebugByte函数,该文件的内容如下所示:

这个文件中的函数都是直接对uart寄存器进行操作的,如在OEMInitDebugSerial函数中就通过寄存器操作实现了对uart的初始化,如下所示:

在第一幅图片中可看到#ifndef SHIP_BUILD这一条代码,而在#else分支下的那几个函数都是一些没有实现具体功能的空函数。这就是为什么如果使能了ship build,则不能使用RETAILMSG和NKDbgPrintfW打印信息的原因。

不同的BSP可能代码位置会有一些差别,但是大体的实现结构应该是差不多的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SPI(Serial Peripheral Interface)是一种用于设备间通信的串行总线协议。在Windows CE(Wince)操作系统中,SPI驱动是一种控制和管理SPI接口设备的软件模块。下面是关于Wince下SPI驱动的回答: Spi驱动是Wince操作系统中用于控制和管理SPI设备的驱动程序。SPI总线是一种串行通信协议,常用于嵌入式系统中,通过该驱动程序可以实现与其他设备的高速通信。 Wince下的SPI驱动提供了对SPI接口的底层控制和管理功能。它允许操作系统与连接在SPI总线上的外设进行数据交换。SPI驱动负责配置和初始化SPI总线、传输数据、进行中断处理等操作。 Wince下的SPI驱动由操作系统提供,并且可以通过SPI函数库进行调用。应用程序可以通过调用特定的API函数与SPI驱动进行交互,并实现与SPI设备的通信。SPI驱动提供了一组API函数,用于设置SPI总线的工作模式、传输数据、控制引脚等。应用程序可以通过这些函数来完成对SPI设备的操作。 SPI驱动在Wince中的使用具有很高的灵活性和可扩展性。可以通过配置SPI驱动参数来适配不同的SPI设备。同时,SPI驱动还支持中断处理,可以实现实时响应和高效的数据传输。 总之,Wince下的SPI驱动是一种用于控制和管理SPI接口设备的软件模块,它提供了与SPI设备进行高速通信的功能,并具有灵活性和可扩展性,可以满足各种不同的应用需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值