文档章节

ENET模块调试笔记

huhu_huhu
 huhu_huhu
发布于 2016/03/17 15:21
字数 827
阅读 57
收藏 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
程序员
私信 提问
ENet —一种针对实时语义分割的深度神经架构

本文为 AI 研习社编译的技术博客,原标题 : ENet — A Deep Neural Architecture for Real-Time Semantic Segmentation 作者 | Arunava 翻译 | callofduty890 校对 | 酱番梨 审核 | Pita...

雷锋字幕组
02/26
0
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
156
0
多线程使用enet问题

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

cheney610
2016/09/26
225
0
图像分割概述 & ENet 实例

本文为 AI 研习社编译的技术博客,原标题 : Image Segmentation Overview & ENet Implementation 作者 | Aviv Shamsian 翻译 | sherry3255、alexchung 校对 | 邓普斯·杰弗 审核 | 酱番梨 ...

雷锋字幕组
02/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
22分钟前
8
0
cloud-zuul路由网关

九、zuul路由网关 概述 1.1 能干嘛 路由、过滤 路由基本配置 路由访问映射规则 十、springCloud config分布式配置中心

榴莲黑芝麻糊
23分钟前
8
0
Circuit Breaker模式

Circuit Breaker模式会处理一些需要一定时间来重连远程服务和远端资源的错误。该模式可以提高一个应用的稳定性和弹性。 问题 在类似于云的分布式环境中,当一个应用需要执行一些访问远程资源...

mskk
35分钟前
11
0
写论文之前的准备都有哪些?干货来了!

原文链接:https://www.lwfdy.com/archives/144.html 之前跟大家谈了许多有关于初稿修改以及写作事项需要注意的问题,那么今天我们来说一说,在写之前,我们需要做哪些准备呢,为了做到下笔如...

辅导员
42分钟前
10
0
idea快捷键

Alt + Enter 引入类 Ctrl + O 查看我们继承的类或者接口中的方法,以及我们要实现的方法 Ctrl + Alt + b 查看接口实现类中方法(就是我们使用接口编程时,在调用实现类方法处直接Ctrl+鼠标左...

行者终成事
50分钟前
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部