一直想通过USB下载功能的bootloader学习下2440的USB。而mini2440光盘里面的YL2440A_MON的bootloader一直不能使用,虽然他的文档上面写了可以使用,但是一直没有试成功,总显示到usb host is not connected yet就不行了,断断续续搞了好久。
后来有一天在网上浏览到一个前辈的文章,http://blog.chinaunix.net/u/27094/showart_1782599.html里面有提到:“查看原理图后发现有条usb_en的接口,使该接口输出1,host就可以检测到device的attach。”恍然大悟,立马查看mini2440的原理图,发现mini2440的usb_en接口GPC5。而且要在程序靠后面将GPC5拉高。将程序编译,下载,运行,终于看到了我想要的USB host is connected. Waiting a download.
由于优龙的bios对学习USB来说还是多了一些东西。所以我找了英倍特上面的“基于S3C2440开发的USB程序与驱动”来尝试,由于源程序用keil编译,编译后在mini2440上不能直接使用。
索性我直接将优龙的ADS源文件及所需代码拷贝出来,然后将u2440mon.c用英倍特的替换掉,最后在u2440mon.c里面的main函数里面加入时钟初始化还有MMU_Init,这些都是必须的。不然程序不能工作。最后还要注意一点就是
#if ADS10
__rt_lib_init(); //for ADS 1.0
#endif
这个东西要加上去,不加上去就会出现DAbort exception.
具体原因还没有搞清楚。
还要注意的是这个代码下载文件的时候文件不能太大,太大会有问题。
文章评论(0条评论)
登录后参与讨论