磨刀不误砍柴工,等拿到了source code 之后我们得考虑该怎么debug 了,
先做些debug 的工具,
常见的debug方式有串口调试,port 80 灯,PCIE card,
芯唐提供了个debug tool 叫ECDT (EC debug tool)
它可以看到寄存器的值,memory 的值,可以设一些HW 和LPC 的断点,烧flash,但现在还不支持单步调试。听Edward 说以后就会support了。
再做个串口调试的工具,差不多debug 就够用了。
在网络上搜到了一些资料,这几天终于把串口调试搞定了。
步骤:
1, 需要一个TTL to RS232转接板
2, 接好TX,RX,GND,VCC
3, 初始化UART
4, 向串口丢数据
5, 这时就可以通过串口调试助手或超级终端看到输出的结果了。
TTL to rs232 的板子可以自己动手焊个。我买了个现成的。
http://www.56bo.com/jishu/85 自己焊的话可以参考这个。
初始化code 如下:
void UART_INIT(void)
{
DEVALT1=0x06;
CR_UBAUD = 0x0C; /* DIV = 13 /
CR_UPSR = 0xC0; /* P = 12.5 */
//CR_UTBUF=0x03;
}
波特率设为9600。
至于为什么DIV设为13,p=12.5 得参考EC的datasheet.
往串口丢数据的code:
void UART_Send_Byte(char aa)
{
CR_UTBUF = aa; /* send a character */
while(CR_UICTRL & 0x01); /* wait if transmited buffer empty ,bit 0 TBE*/
while(CR_USTAT & 0x40); /* wait if CR_UART is transmitting ,bit 6 XMIP*/
}
用串口调试助手看到的结果:
OK ......完工。