2010年5月31日星期一

UART RX的一个细节

当UART内部支持FIFO,那么一般情况,RX interrupt的触发条件就是RX FIFO接收到的数据,超过了level trigger。但是如果只有这一种触发条件是不够的,因为如果对方发送了很少的数据,比如一个字节,但是没有超过level trigger,那么逻辑上讲就不会触发RX interrupt,也就是上层软件意识不到有数据来临,但事实是对方已经发了东西,所以是就一个条件触发RX interrupt不够的。
基于以上的原因,在UART的hardware设计时,往往会加入一些条件:如果RX FIFO中不是空,但是在很短的时间内,还没有超过level trigger,此时就认为是一种timeout,同时也会触发RX interrupt,这样就解决了上面逻辑上和事实上不符合的问题

2010年5月21日星期五

cygwin in Win7 Command Prompt

The message I get when trying to run gcc in Win7 cmd.exe is: "Access is denied."
This is a known limitation of the symbolic links in Cygwin 1.7. The solution is to invoke the command('gcc-3.exe' or 'gcc-4.exe')  directly