今天把内核和照着博客http://zjbintsystem.blog.51cto.com/964211/768652配置了一遍不知道结果如何。
终于做完了,调通了。还是有成就的。下面把操作贴出来
l 在照博客修改的.config文件基础上:1.SPI没选2.选的tvp5150
注释掉了.c文件(指board-dm365-evm.c文件)的dm365evm_gpio_configure
l 修改vision1:
关闭IPV6、wireless、ppp
(Uboot环境:NFS挂载
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=192.168.1.108 root=/dev/nfs nfsroot=192.168.1.243:/home/ly/dm365/dvsdk_dm365_4_02_00_06/filesystem/dm365rootfs,nolock mem=80M video=davincifb dm365_imp.oper_mode=0 davinci_capture.device_type=4)
编译结果:ip-config:faile open eth0
l 尝试用按照博客修改的.c文件+何琪编的可以挂nfs的.config文件进行编译
结果还是和上边的错误相同。推断错误与配置文件无关,应该与.c文件有关。对何琪的.c与博客自己的.c文件的对比发现有以下的区别中含有phy的选项现改一下(static void __init evm_init_cpld(void)中),(左边改成右边这种)看结果。
成功了!!只是出现下面的i2c的超时的提示
猜想,屏蔽掉.c文件中的i2c部分就行了。
具体如下:将
static void __init evm_init_i2c(void)
{
davinci_init_i2c(&i2c_pdata);
#if 0
if (have_imager())
_add_driver(&pca9543a_driver);
#endif
i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
}
换成:
#if 1
static void __init evm_init_i2c(void)
{
#if 1
davinci_cfg_reg(DM365_I2C_SDA);//
davinci_cfg_reg(DM365_I2C_SCL);//这两句什么意思???
#endif
davinci_init_i2c(&i2c_pdata);
//if (have_imager())
// i2c_add_driver(&pca9543a_driver);
//i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
}
#endif
这里就有个我问题:为什么这样可以消除time out那条语句(我觉得两条语句意思一样的)。先验证一下。果然不出所料。达到了预计的效果。
综上,造成不能运行的原因是.c文件中的static void __init evm_init_cpld(void)函数出了问题!!!问题终于解决了。
l 再来用改到现在这样的.c+按博客修改的.config.成功!!
l 最后再用修改成现在这个样子的.c+完全按照博客修改的.config文件,我猜也会成功。
成功!
l 在上面的基础上配置加上ppp
出现段错误。不能正常运行。