QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1946|回复: 6

关于ucosii4skyeye-v1.8.4中usart.c

[复制链接]
发表于 2004-7-10 17:47:13 | 显示全部楼层 |阅读模式
在ucosii4skyeye-v1.8.4的at91_usart.c中,
void at91_uart_get_char( char *ch )
{
        unsigned long status;

        long tmp;
        start_rx( usarts[0], ch, 1 );
        do
        {
                // must read 0xfffff100, status register to clear all flags !!!
                               这两行好象可以不用吧,我在skyeye0.6.8中测试,去掉是可以的,因为这个似乎是轮询方式,而不是中断吧。而且在中断的do_irq中读IVR时候由于是边沿触发中断,因该是自动清理了的。不太明白。在serial.c中好象是按中断方式处理的
                _io_read( (long*)0xfffff100, &tmp );
                _io_read( (long*)0xfffff108, &tmp );
                status = usarts[0]->rcr;
        }
        while (status > 0);
}
发表于 2004-7-26 23:18:28 | 显示全部楼层
我让liming和yangye帮忙回答一下,已经给他们发信了!
回复

使用道具 举报

 楼主| 发表于 2004-7-27 21:42:08 | 显示全部楼层
谢谢版主,
另,在LWIP地移植中,ne2kif.c-->
struct RTL8019if {
  struct eth_addr *ethaddr;
  /* Add whatever per-interface state that is needed here. */
};
struct eth_addr {
  PACK_STRUCT_FIELD(u8_t addr[6]);
} PACK_STRUCT_STRUCT;


void
ne2k_init(struct netif *netif)
{
  struct RTL8019if *rtl8019if;

  rtl8019if = mem_malloc(sizeof(struct RTL8019if));
//此处好像只分配了RTL8019if结构的指针
  。。。。。  
  low_level_init(netif);

}
low_level_init(struct netif * netif)
。。。
//此处访问addr,好像addr并未分配,所以其值为0,从而覆盖了复位向量中断??
          rtl8019if->ethaddr->addr[0] = mac_addr[0];
          rtl8019if->ethaddr->addr[1] = mac_addr[1];
          rtl8019if->ethaddr->addr[2] = mac_addr[2];
          rtl8019if->ethaddr->addr[3] = mac_addr[3];
          rtl8019if->ethaddr->addr[4] = mac_addr[4];
          rtl8019if->ethaddr->addr[5] = mac_addr[5];
回复

使用道具 举报

发表于 2004-7-27 23:12:30 | 显示全部楼层

答复

李明的答复:
at91_usart.c 里面的代码当时是从 linux 的源码中 copy 出来的,
应该都是用轮询的方式读取和发送串口数据。

    serial.c 的代码时间太长记不清楚了,好像是杨晔后来改为中断方式实现
的,
具体就需要看 at91 的 manual 了。


杨晔的答复:

Hi,li ming,

        嗯,是的,有个简单的isr来收字符的。我也记不太清楚了。他说的应该是对的,不用做轮询了。不过这不是skyeye的核心代码,而且也没什么影响的。
    他下面那个关于lwip驱动ne2k.c确实是一个bug,应该改过来。


-----------------
我们好久都没有看ucosii4skyeye了,谢谢你的贡献!
如果你有时间,是否可以帮忙修改一下?
如果你在ucosii-1.8.4山改好后,可以发给我(通过我的email),并告诉我你的名字等联系信息。

谢谢!
回复

使用道具 举报

 楼主| 发表于 2004-7-31 13:18:35 | 显示全部楼层
谢谢版主,我上网不太方便,如果改好一定发过来
回复

使用道具 举报

发表于 2004-8-12 18:39:21 | 显示全部楼层
改好了吗? 热切盼望!
回复

使用道具 举报

 楼主| 发表于 2004-8-12 22:17:13 | 显示全部楼层
已经发过去了,不知道你收到没有,只改了一点点,只有几行代码,本来想用中断方式改改usart的接受驱动,比较麻烦,而且,serial.c中已经有了例子,就没有做了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-24 03:15 , Processed in 0.097110 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表