热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

x210debug口当普通串口使用

方法共三步:第一步:修改文件wince600\platform\smdkv210\common\dbgserial\dbgserial.c中的三个函数OEMInitDebugSer
方法共三步:
第一步:  修改文件wince600\platform\smdkv210\common\dbgserial\dbgserial.c中的三个函数

OEMInitDebugSerial()
{
...
    if (g_pUARTReg == NULL)
    {

#if    (DEBUG_PORT == DEBUG_UART0)
        // UART0
        g_pUARTReg = (UART_REG *)OALPAtoVA(BASE_REG_PA_UART0, FALSE);
#elif (DEBUG_PORT == DEBUG_UART1)
        // UART1
        g_pUARTReg = (UART_REG *)OALPAtoVA(BASE_REG_PA_UART1, FALSE);
#elif (DEBUG_PORT == DEBUG_UART2)
        // UART2
        g_pUARTReg = (UART_REG *)OALPAtoVA(BASE_REG_PA_UART2, FALSE);
#elif (DEBUG_PORT == DEBUG_UART3)
        // UART3
        g_pUARTReg = (UART_REG *)OALPAtoVA(BASE_REG_PA_UART3, FALSE);
#else
return ;  //     没有DEBUG口就直接返回,无需后面的初始化。
    //    INVALID_DEBUG_PORT        // Error
#endif

    }

...
}


int OEMReadDebugByte() 
{
    UINT32 status, ch;
//如果没有DEBUG口,则直接返回。
   return OEM_DEBUG_READ_NODATA;


if (g_UARTStat & UART_NOT_READY)
        return OEM_DEBUG_READ_NODATA;
    
    status = INREG32(&g_pUARTReg->UTRSTAT);
    if ((status & 0x01) != 0) {
       ch = INREG32(&g_pUARTReg->URXH);
    } else {
       ch = OEM_DEBUG_READ_NODATA;
    }

    return (int)ch;
}

VOID OEMWriteDebugString(UINT16 *string)
{
//如果没有DEBUG口,则直接返回。
   return ;

    while (*string != L'\0') OEMWriteDebugByte((UINT8)*string++);
}


第二步:  \wince600\platform\smdkv210\src\oal\oallib\init.c


static void InitializeCLKGating(void)
{
...
           //added  by terr0.y 20120929  fro no debug uart
 pCMUCLKReg->CLK_GATE.CLK_GATE_IP3 =

     #elif (DEBUG_PORT == DEBUG_UART0)
            (CLK_OFF<             (CLK_OFF<             (CLK_OFF<             (CLK_ON<       #else  // no debug uart  //不使用DEBUG口时,关闭所有串口的CLK
            (CLK_OFF<             (CLK_OFF<             (CLK_OFF<             (CLK_OFF<
#endif


...
}


第三步:  
更改SMDKV210.bat文件
@REM 注释掉这个定义
@REM set BSP_DEBUGPORT=SERIAL_UART0

推荐阅读
  • 本文详细介绍了SDCMS中的全局标签和循环标签。全局标签是在任何模板页面中均可调用的标签,而循环标签用于数据查询和展示。文章解释了这些标签的功能、使用方法及参数配置。 ... [详细]
  • 本文详细介绍了在腾讯云服务器上配置 phpMyAdmin 的方法,包括安装、配置和解决常见问题。通过这些步骤,您可以轻松地在腾讯云环境中部署并使用 phpMyAdmin。 ... [详细]
  • Linux系统中Java程序Too Many Open Files问题的深入解析与解决方案
    本文详细分析了在Linux环境下运行的Java应用程序中可能出现的“Too many open files”异常现象,探讨其成因及解决方法。该问题通常出现在高并发文件访问或大量网络连接场景下,对系统性能和稳定性有较大影响。 ... [详细]
  • 本文详细介绍了福昕软件公司开发的Foxit PDF SDK ActiveX控件(版本5.20),并提供了关于其在64位Windows 7系统和Visual Studio 2013环境下的使用方法。该控件文件名为FoxitPDFSDKActiveX520_Std_x64.ocx,适用于集成PDF功能到应用程序中。 ... [详细]
  • 本文详细介绍了如何将 Python 3.6.3 程序转换为 Windows 可执行文件(.exe),并解决了使用 py2exe 和 cx_Freeze 时遇到的问题。推荐使用 PyInstaller 进行打包,提供完整的安装和打包步骤。 ... [详细]
  • 本文详细介绍了JSP的三大指令:page、include和taglib,重点探讨了静态包含与动态包含的区别及其应用场景,并解释了如何使用taglib指令引入第三方标签库。 ... [详细]
  • 批量图片格式转换系统的操作指南
    在日常工作中,我们经常需要对大量图片进行格式转换。使用专业的批量图片处理软件,可以显著提高工作效率并简化操作流程。本文将详细介绍如何利用该软件快速完成图片格式的批量转换。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • Spring Boot单元测试中Redis连接失败的解决方案
    本文探讨了在Spring Boot项目中进行单元测试时遇到Redis连接问题的原因及解决方法,详细分析了配置文件加载路径不当导致的问题,并提供了有效的解决方案。 ... [详细]
  • 在安装Oracle 11g时,CentOS 6.5系统提示交换空间不足。本文详细介绍了如何通过两种方法增加交换空间,并提供了具体步骤和命令,帮助用户解决这一问题。 ... [详细]
  • 基于机器学习的人脸识别系统实现
    本文介绍了一种使用机器学习技术构建人脸识别系统的实践案例。通过结合Python编程语言和深度学习框架,详细展示了从数据预处理到模型训练的完整流程,并提供了代码示例。 ... [详细]
  • 本文介绍如何使用SAS根据输入数据集自动生成并执行SQL查询,其中CASE语句依据另一个数据集中的观测值动态调整。 ... [详细]
author-avatar
淡淡很淡淡真淡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有