珊瑚虫 发表于 2005-7-2 18:59:15

继续问几个问题

有问题没弄清楚,心里难受。有没有也在跟着李老师的step by step做实验的,一起讨论一下啊.

实验四:
发送保持寄存器和发送移位寄存器之间是什么关系?
应该是先往发送保持寄存器写入待发送的数据,然后再通过发送移位寄存器一位一位地发送吧?
但是在44b0x中增加了发送FIFO和接收FIFO,这时操作时序又如何呢?
在使能FIFO模式下,发送时是先往FIFO写,然后再往发送保持寄存器写,再通过发送移位寄存器发送呢,还是其它方式???
接收时,是不是接收移位寄存器--->接收缓冲寄存器--->接收FIFO???
实验五:
我使用的是SDT2.5,这时如果要实现printf功能,能不能像在ads下一样,重载fputc、ferror等???
实验五的奇怪现象:
   主程序中只是输出一次
   Demo printf
   hello, lumiter!
   test_rw = 0x2468, test_ro = 0x1357, test_bss = 0x0
   可是将程序烧写至flash后,复位后,超级终端上却输出两次上述字符串,这是怎么回事啊?
   另外,板子上的D6、D7变亮,而在程序中并没有设定让这两个led亮啊?

实验七:
.s19是什么文件格式???
   为什么要将bin文件转换化uue格式之文件???
如何生成uue文件呢?make lb时提示:uuencode不是内部或外部命令,也不是可运行的程序???

版主帮帮忙啊,呵呵

limingth 发表于 2005-7-3 09:18:12

1) 一般情况下通过 FIFO 模式只需要往发送数据寄存器直接写就行了,数据会自动送到 FIFO 中,超过 FIFO size 来不及发送的数据就无法送进 FIFO 。
2) 实现 printf 的方法和使用的编译器相关,重载 fputc 的办法你看看 sdt 安装目录下的文档里面有没有提到。
3) 这个问题我也碰到了,怀疑是 main 退出不正常,可以在程序最后加 while(1);
4) s19 也是一种可烧写的格式,uuencode 可以在 lumit 网站上下载到。

btw: 最后这个问题可以 google 一下,What is What 这样的问题不用找人问,网上很多资料都能告诉你答案。:o

珊瑚虫 发表于 2005-7-3 09:51:21

劳烦版主了,呵呵,谢谢!

珊瑚虫 发表于 2005-7-3 10:29:50

版主:
   你的意思是不是说,44b0x的UART工作于FIFO模式时,要发送数据,只需往发送保持寄存器写待发送的数据,然后数据自动送到FIFO中,然后再从fifo移出至移位寄存器,一位一位发送出去。
   接收时,应该是接收移位寄存器->接收FIFO->接收缓冲寄存器?
    那么,这里加一个16B的FIFO主要作用是什么呢?
    谢了先!
页: [1]
查看完整版本: 继续问几个问题