阅读:2033回复:7
怪异,为什么Nboot可以写串口,同样的设置,起来eboot就变成乱码了?给分!!
大虾求救,SMDK2410中引导了eboot到地址0x8c038000之后,之后串口出来的东西就变成乱码了,不知道输出了什么调试信息怎么办啊,是不是因为我的eboot编译的有问题啊?怎么才能发现并纠正串口的问题,谢谢!!
|
|
沙发#
发布于:2004-12-15 14:01
有几种可能:
1. 整个系统的时钟频率被改变了,一般串口的时钟频率是由I/O CLOCK提供的,如果I/O CLOCK变了的话,串口的波特率也就不准确了 2. 串口的波特率被改变了. 在EBOOT里,串口的初始化是在OEMInitDebugSerial()做的,并且是在OEMPlatformInit()之前. 你可以在OEMInitDebugSerial()检查一下. |
|
|
板凳#
发布于:2004-12-16 22:21
joyfly大哥,在你的帮助下,问题解决了,就是主频被改了^_^
非常感谢,分数已给!! |
|
地板#
发布于:2005-07-21 11:56
我也遇到乱码的问题。
在用dnw工具向2440x板子下载并运行eboot.nb0之后, dnw里显示的全是乱码, 请问具体怎么改阿? |
|
地下室#
发布于:2005-07-25 17:52
以下是platform\smdk2440\KERNEL\HAL\debug.c 的前面的部分内容:
#include <nkintr.h> #include <S2440.h> #define UART0BaudRate 115200 #define UART1BaudRate 115200 //38400 /* @func void | OEMInitDebugSerial | Initialize serial debug monitor port. @rdesc N/A. @comm @xref */ void OEMInitDebugSerial(void) { volatile UART1reg *s2440UART1 = (UART1reg *)UART1_BASE; volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE; // UART1 (TXD1 & RXD1) used for debug serial. // // Configure port H for UART. // s2440IOP->rGPHCON &= ~((3 << 8) | (3 << 10)); // Configure GPH2 and GHP3 for UART1 Tx and Rx, respectively. s2440IOP->rGPHCON |= ((2 << 8) | (2 << 10)); // s2440IOP->rGPHUP |= (1 << 4) | (1 << 5); // Disable pull-up on TXD1 and RXD1. // Configure UART. // s2440UART1->rUFCON = 0x0; // Disable the FIFO (TODO: do we need to enable the FIFO?) s2440UART1->rUMCON = 0x0; // Disable AFC. s2440UART1->rULCON = 0x3; // Normal mode, N81. s2440UART1->rUCON = 0x245; // Rx pulse interrupt, Tx level interrupt, Rx error status interrupt enabled. s2440UART1->rUBRDIV = ( (int)(S2440PCLK/16.0/UART1BaudRate + 0.5) -1 ); // Set up baudrate (38400). } 可能哪里有问题啊? |
|
论坛版主
|
5楼#
发布于:2005-07-26 13:36
你的接收端串口速度和评估版的一样不?你先看看汇编里面有没有调试信息输出,找到最开始有输出的地方,看看是不是你的串口信息从一开始就是乱码。
|
|
6楼#
发布于:2005-07-27 09:28
串口设置是一样的,因为一开始从bootloader输出的信息是好的。但是当顺利下载eboot.nb0或nk.nb0,并运行后,输出的就全是乱码了。
另外,使用板子自带的一个2440test.bin,下载到0x30000000并运行,输出是正常的,没有乱码。 看源码发现,bootloader与2440test.bin中均设定CPU主频为203.2MHz,而2440 BSP中使用的是400MHz。这有没有关系啊? 以下是从smdk2440目标板开始启动到eboot.nb0运行后,dnw中的输出结果: |
|
论坛版主
|
7楼#
发布于:2005-07-29 13:40
对阿,本帖子最开始不是说频率不对不行嘛,你的改改频率三!!!
|
|