你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

给位大神 小弟移植LWIP时候遇到了进入硬件中断的问题,望...

[复制链接]
暗血妖城 提问时间:2015-1-9 22:37 /
  //网卡接收数据(lwip直接调用)//netif:网卡结构体指针
//返回值:ERR_OK,发送正常
//       ERR_MEM,发送失败
err_t ethernetif_input(struct netif *netif)
{
        err_t err;
        struct pbuf *p;
        p=low_level_input(netif);   //调用low_level_input函数接收数据
        if(p==NULL) return ERR_MEM;
        delay_ms(2);
        err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包
        if(err!=ERR_OK)
        {
                LWIP_DEBUGF(NETIF_DEBUG,("ethernetif_input: IP input error\n"));
                pbuf_free(p);
                p = NULL;
        }
        return err;
}

err=netif->input(p, netif); //调用netif结构体中的input字段(一个函数)来处理数据包  运行到这里就进入了硬中断里去了 程序就卡死了 该如何解决呢?

收藏 评论5 发布时间:2015-1-9 22:37

举报

5个回答
暗血妖城 回答时间:2015-1-9 22:40:05
拜托 拜托 还有大神吗?在线坐等
暗血妖城 回答时间:2015-1-10 10:00:43
网友都说是因为指针指飞了,才出现进入硬件中断里去的 那么该如何调试呢
暗血妖城 回答时间:2015-1-10 12:55:43
有大神可以说上两句吗
无薪税绵 回答时间:2018-3-28 15:34:51
建议进入netif->input(p, netif); 函数里面,
单步运行,看看到哪里就出错了。

我估计应该是接收缓冲没有定义好,导致溢出了。

还有一种可能是化LWIP定时器没有初始化,导致出现死等待了。
请检查 sys_arch.c 文件内的 init_lwip_timer 函数。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

anobodykey 回答时间:2018-3-28 15:59:22
参考下库自带的lwip文件,对比一下

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版