文档章节

ENET模块调试笔记

huhu_huhu
 huhu_huhu
发布于 2016/03/17 15:21
字数 827
阅读 54
收藏 0

硬件平台: 公司智能单元电压板

ARM: MK60FX512VMD12

PHY(以太网物理收发器): KSZ8041NLI

测试内容: 电压板以太网模块通信

参考文献:《ARM Cortex-M4自学笔记--基于Kinettis K60》

《TCP/IP详解 卷1:协议》

主要调用的函数:

1. enet_init()函数;

2. enet_macSendData()函数;

具体的函数实现功能不再赘述,详情请查看《ARM Cortex-M4自学笔记--基于Kinettis K60》 P328。

实现功能:

通过定时器定时发送数据,实现终端利用MAC层与计算机进行数据通信

/*********************************************************************************************************************************************************************************************************************************/

调试过程中遇到的问题记录:

(1) 我是在新建的.c和.h文件编程函数来调用driver文件夹下的enet驱动程序,编译过程中,编译器提示驱动程序enet.h中,uin8,uint32, uint16没有定义,编译一直没通过,向大神请教,原来是默认的底层驱动函数头文件里没有包含common.h,在开始的部位添加#include<common.h>,编译终于顺利通过。

(2) 编译通过之后,运行又出了问题,通过串口查看程序一直在打印

default_isr&#160; VECTOR_093

default_isr&#160; VECTOR_094

&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 由于以前在调试程序的过程中遇到过类似的状况,当时打印的是 default_isr&#160; VECTOR_3 后来查明的原因是硬件错误,所以这次首先考虑是不是哪一个期存器配置有错误或者是数组太大越界,或者是K60内存不够,内存不够的状况之前没遇到过,心里就想把这个因素放到最后考虑,然后就打断点单步调试,发现是enet_init()函数中存在问题。又把数组都核实了一遍,还是没定位到真正的错误点。谷歌里也没搜到VECTOR_093到底是什么错误,实在没办法只能硬着头皮再找大神请教。

&#160;&#160;&#160;&#160;&#160;&#160;&#160; 我在编译器里搜索时,输入的是default_isr&#160; VECTOR_093,结果硬是查不到注释说明,明哥直接搜的是default_isr很快就在voctors.h搜到了注释位置,一看原来是enet发送、接受以及错误中断错误,在反过去查代码发现,默认的底层驱动函数enet.c里这些中断功能都是打开的,但是在实际中我并没有调用这些中断函数。enet_setIsr(E_EnetIsr type, ENET_ISR_CALLBACK isr_func)回调函数指针没有绑定。对此理解不是很深,专门做实验来验证一下。加上这个绑定之后,在调用中断函数,则没有报错!

&#160;&#160;&#160;&#160;&#160; 还有一个就是wireshark的使用,

image

/*********************************************************************************************************************************************************************************************************************************/

后 记

   大神明哥就要离我这个嵌软菜鸟而去,师傅领进门,修行在个人。在这里衷心祝福明哥前程似锦,永远大牛!&#160; 谢谢在我职场的刚开始阶段就能遇见这么好的大牛,谢谢大牛每一次不厌其烦的指导,谢谢大牛对我们的谆谆教诲!真的舍不得明哥。但路终究是要自己走的,没有了明哥在前面为我们遮风挡雨,我只能愤然而前行,以期有朝一日能够对的起师傅。

© 著作权归作者所有

共有 人打赏支持
huhu_huhu
粉丝 0
博文 3
码字总数 1084
作品 0
程序员
私信 提问
使用OpenCv+ENet实现语义分割

使用OpenCv+ENet实现语义分割 转载自 https://www.pyimagesearch.com/2018/09/03/semantic-segmentation-with-opencv-and-deep-learning/ 介绍 在本教程中,您将学习如何使用OpenCV,深度学习...

机智的小火箭
2018/09/26
0
0
tcp没用吗?为什么MOBA、“吃鸡”游戏不推荐用tcp协议

本文由云+社区发表 作者:腾讯云游戏行业资深架构师 余国良 MOBA类和“吃鸡”游戏为什么对网络延迟要求高? 我们知道,不同类型的游戏因为玩法、竞技程度不一样,采用的同步算法不一样,对网...

腾讯云加社区
01/09
0
0
多线程使用enet问题

运行环境:Linux 用途:发送音视频流,可靠发送 代码架构:发送线程一直调用enet_peer_send(),然后另外一个线程一直在调用用enet_host_service (ENetHost * host, ENetEvent * event, enet_u...

cheney610
2016/09/26
134
0
ENet 1.3.0 发布,UDP开发包

ENet 是一个易用的、可移植的 UDP 网络开发包,主要功能包括连接管理、可靠的按顺序的多通道包传输机制、包分解和重新打包、避免堵塞机制等。 ENet 1.3.0 改进内容: 1. 增加了自适应的 orde...

红薯
2010/06/10
771
0
图像分割-手把手系列3:入门代码ENet

版权声明:博主水平有限,欢迎大家给予指导,共同进步! https://blog.csdn.net/lilai619/article/details/86221789 系列1:认识了分割的评价指标 系列2:学会了标注更具的使用 系列3:我们就...

微风❤水墨
01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
2
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部