当前位置: 代码迷 >> 驱动开发 >> idea6410调试串口修改有关问题
  详细解决方案

idea6410调试串口修改有关问题

热度:107   发布时间:2016-04-28 11:21:36.0
idea6410调试串口修改问题!
大家好!!
小弟最近在弄idea6410。系统设置的是UART0为调试串口。。我想把UART0修改成普通串口,把UART1修改成调试串口。

我在OAL的debug.c中找到了调试串口的初始化函数OEMInitDebugSerial
贴一些代码:

……………………

[code=C/C++][/code]

#if (DEBUG_PORT == DEBUG_UART0)
  // UART0
  g_pUARTReg = (S3C6410_UART_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_UART0, FALSE);
#elif (DEBUG_PORT == DEBUG_UART1)
  // UART1
  g_pUARTReg = (S3C6410_UART_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_UART1, FALSE);
// #endif
#elif (DEBUG_PORT == DEBUG_UART2)
  // UART2
  g_pUARTReg = (S3C6410_UART_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_UART2, FALSE);
#elif (DEBUG_PORT == DEBUG_UART3)
  // UART3
  g_pUARTReg = (S3C6410_UART_REG *)OALPAtoVA(S3C6410_BASE_REG_PA_UART3, FALSE);
#else
  INVALID_DEBUG_PORT // Error
#endif

……………………

应该就是由这个部分来配置的。除此之外,在文件init.c中也找到了PCLK的配置
贴代码:
……………………

[code=C/C++][/code]
#if (DEBUG_PORT == DEBUG_UART0) // Be Careful to Serial KITL Clock
  |(0<<4) // UART3
  |(0<<3) // UART2
  |(0<<2) // UART1
  |(1<<1) // UART0 <--- Always On
#elif (DEBUG_PORT == DEBUG_UART1) // Be Careful to Serial KITL Clock
  |(0<<4) // UART3
  |(0<<3) // UART2
  |(1<<2) // UART1 <--- Always On
  |(0<<1) // UART0
#elif (DEBUG_PORT == DEBUG_UART2) // Be Careful to Serial KITL Clock
  |(0<<4) // UART3
  |(1<<3) // UART2 <--- Always On
  |(0<<2) // UART1
  |(0<<1) // UART0
#elif (DEBUG_PORT == DEBUG_UART3) // Be Careful to Serial KITL Clock
  |(1<<4) // UART3 <--- Always On
  |(0<<3) // UART2
  |(0<<2) // UART1
  |(0<<1) // UART0
#endif

……………………


该怎样修改呢?
我尝试着在代码上做了些修改,而且注册表中我也做了修改,把有关UART0的条件信息和UART1的全部信息给屏蔽掉了,虽然编译的内核能够烧到板子上,但是当我CreateFile的时候,就会报错,错误代码55,设备不可用。。

不知道哪里出问题了。

还有一个疑问就是上面代码中的DEBUG_PORT ,到底在哪里啊? 我搜索了半天,也只在buildlog里面找到了。。。

请高人赐教!!感激不尽!!。最近被这个东西弄的都快要疯了…………

------解决方案--------------------
看你的代码是通过某个变量来设置哪个是调试输出UART,可能是在SMDK6410.bat里边有设置,你找找看
------解决方案--------------------
那你就看下错误代码号55是表示什么内容了。
并且CreateFile用的是COM几?并不是说UART0一定对应的COM0,要看注册表中的相应Index值。