由于不熟悉DM8127芯片,硬件工程师在设计电路的时候没有设计网口和usb接口,只有串口和jtag接口,现在着手调试应用程序,发现问题很严重。
因为没有网口,所以不能使用nfs挂载根文件系统,每次修改应用程序以后都要重新烧写根文件系统。而通过串口(波特率115200)或者xds560v2仿真器烧写40M左右根文件系统,每次都得好几个小时,这导致调试工作几乎无法进行。
这个问题还有得救吗?
Chris Meng:
你好,
板上有SD卡接口么?可以把文件系统放在SD卡上。
Huchong Li:
回复 Chris Meng:
SD卡也没有。能不能修改uboot,把波特率提高到921600?
Huchong Li:
回复 Chris Meng:
好的,我试试看,谢谢!
Huchong Li:
回复 Chris Meng:
Chris,我这几天试了一下修改uboot的波特率,但是没有完成,需要向您请教。
我首先是在 (\ipnc\Source\ti_tools\ipnc_psp_arago\uboot\include\configs\ti8148_ipnc.h)和 (\ipnc\Source\ti_tools\ipnc_psp_arago\uboot\include\ti8148_ipnc_quick_mmc.h)添加230400, 460800, 921600这几个波特率数值,代码如下:
#define CONFIG_BAUDRATE 115200 //保持115200,想通过uboot命令来修改//#define CONFIG_SYS_BAUDRATE_TABLE { 110, 300, 600, 1200, 2400, \//4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200 }#define CONFIG_SYS_BAUDRATE_TABLE { 110, 300, 600, 1200, 2400, \4800, 9600, 14400, 19200, 28800, 38400, 56000, 57600, 115200, 230400, 460800, 921600 }
修改后编译烧写,重启uboot,并通过secureCRT设置波特率
setenv baudrate 921600
回车键设置后uboot陷入死循环,判断uboot还有需要修改的地方。
通过串口打印调试追踪到“setenv baudrate 921600”这个命令会调用\ipnc\Source\ti_tools\ipnc_psp_arago\u-boot\common\serial.c里面的
void serial_setbrg (void){ if (!(gd->flags & GD_FLG_RELOC) || !serial_current) { struct serial_device *dev = default_serial_console (); dev->setbrg (); return; } serial_current->setbrg ();}
该函数进一步调用dev->setbrg (),到这里以后通过串口打印就很难追踪下一步执行的是哪个函数。
请问下一步该去修改哪里的代码,使uboot能设置波特率为921600?
谢谢!
Chris Meng:
回复 Huchong Li:
Huchong Li
修改后编译烧写,重启uboot,并通过secureCRT设置波特率
setenv baudrate 921600
回车键设置后uboot陷入死循环,判断uboot还有需要修改的地方。
请问设置后你是否有把你的串口程序的波特率配置为921600?
Huchong Li:
回复 Chris Meng:
设置了,secureCRT输出
## Switch baudrate to %d bps and press ESC …
的时候,就去改secureCRT的波特率为912600,但是未起作用。
我试验过,如果是改为小于115200的值,比如9600,是可以修改成功的。
所以,是不是uboot还有需要修改的地方?
Huchong Li:
回复 Chris Meng:
另外,我也试着用ccs调试uboot代码,发现ccs有很多符号解析不出来,所以只有一部分代码能和汇编代码关联上,很多想看的代码都不能调试运行,这个问题有办法解决吗?
谢谢~
Huchong Li:
回复 Chris Meng:
好的,谢谢Chris