原创 居然成功的用lrzsz传文件了!

2009-6-22 23:34 4564 8 8 分类: FPGA/CPLD

 


最近用NIOS跑uclinux,由于我的开发板配置很简单,没有网口,所以调试非常麻烦,写一个新程序,要编译到uclinux的image里面,下载才能调试,每次都需要把整个image重新生成,重新下载,非常麻烦。


google一下,发现可以用串口传文件,使用最古老的x/y/zmodem协议,马上试验了一把


make menuconfig


增加lrz应用程序


编译


。。。。


下载进去以后程序是能执行,但是就是不能正确接受从PC发过来的文件。


反复试验了几次,发现在板子上用lsz可以发送文件给PC,可就是不能接收~~


 


问题在哪里呢?百思不得其解


于是怀疑lsz程序的问题,因为如果可以发送文件的话,说明硬件应该是好的,而且超级终端能够正确的显示linux的界面。


可是在uclinux下调试他的软件,这是多么痛苦的一件事情!!没搞几下就放弃了。。。这件事情就这么搁下来了。。


过了一段时间,又拿出板子来捣腾了一把,还是不行,再次google了一下,发现了另外一个串口通讯协议kermit,而且网上有帖子所用minicom 通过x/y/zmodem不稳定,于是乎又开始热火朝天的捣腾起来。。。。


下载Gkermit源代码


修改makefile


生成uclinux的flat软件格式


集成到image


下载。。。。


开始传文件。。。。等待。。。。祈祷。。。。


 


在我虔诚的祈祷中,上帝并没有照顾我,还是失败,超时。。。。。


 


哎,我无语了,用kermit还是能从板子上发回来文件,可就是不能接收,这到底是为什么呢?


 


难道是SOPC BUILDER的UART有问题?可是能够打开连到uclinux的启动界面,还能操作啊。


难道驱动有问题?这也不应该吧?那么多人用,为啥只有我有问题呢?


周末研究了整整两天,还是没明白怎么回事,接着放弃。。。。。


 


没想到今天上帝突然关照了一下我,有个产品更换FPGA,重新编译逻辑,软件和外设都没有修改,约束也没有修改,按理说原来的程序应该直接可以运行,但是他们测试时发现存储器读写不通过。。。。。经过不断定位,最终发现是个低级错误,把串口波特率配错了,导致界面上显示的信息是错误的。。。


 


这个时候我灵光一闪,难道我的板子上不能传文件也是波特率不正确?我原来设置的是115200,会不会太高了导致误码率升高?


 


来不及多想,赶紧重新配置SOPC BUILDER,把波特率降下来,配到9600


编译SOF


下载逻辑


下载uclinux


boot


启动lrz


在PC发送文件


 


奇迹出现了,,居然通了!!!!!!!!!!!!


 


问题是:到底是什么原因呢?误码?速度太快程序反映不过来?。。。。


很怪,any way,能传总比不能传好吧,下次上帝再照顾我的时候也许就有答案了:)


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条