完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
(更正:上一篇帖子名称发错,现为“【大联大世平 NXP i.MX RT1064开发板试用体验】- NVIC讲解 ”,应修改为“【大联大世平 NXP i.MX RT1064开发板试用体验】- 5- NICDIV讲解 ”,话不多说进入正题) 前几章说了下SOEM库的背景和平台相关函数的功能介绍,这一张我们说下整个协议栈跑起来所需要的相关代码移植,其实还是之前介绍的那几部分代码,osal、oshw、nicdiv step1 导入DEMO工程LWIP_UDP_ECHO_SERVO step2 导入SOEM库代码,整合到一个soem文件夹放置在之前导入的工程目录下 step3 修改oshw.文件,如下图所示 仅修改ec_adaptert * oshw_find_adapters(void)和void oshw_free_adapters(ec_adaptert * adapter)这两个接口,原代码是适用于linux操作系统的,我们的工程中并无网卡等设备管理概念,并且工程中也并未使用到该函数,所以去掉,避免编译不过 step4 修改osal.c文件,去掉头文件包含#include int osal_usleep (uint32 usec)接口中调用了nanosleep(&ts, NULL)函数,int osal_gettimeofday(struct timeval *tv, struct timezone *tz)接口中调用了clock_gettime(CLOCK_MONOTONIC, &ts)函数,这两个函数是linux的系统函数,所以需要修改,修改后接口实现如下图所示: TimerGetCount()为向上计数定时器的计数值获取函数,函数内将计数值做了一层封转,根据定时器时钟数转化为us数 接口void osal_timer_start(osal_timert * self, uint32 timeout_usec)和boolean osal_timer_is_expired (osal_timert * self)中调用了系统函数接口timeradd和timercmp,需要实现,实现代码如下: 函数osal_malloc和osal_free中直接调用c库函数就好,但是切记将堆空间设置的大些,关于线程创建函数可以直接去掉,因为不跑系统,如果工程是跑系统的则可以封装一层RTOS的线程CREAT. 修改下图中的函数,此处是为了加快程序的初始化速度,可直接注释掉 至此,oshw的代码就修改完成了 step5 对于nicdrv.c文件中代码最最主要的是实现以太网数据的收发,因为我们使用的并不是linux所以无法使用系统的send和recv函数 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
134个成员聚集在这个小组
加入小组【大联大品佳 NXP i.MX RT1050试用体验】 MCUXpresso IDE+语音识别(Tensorflow)测试
2648 浏览 0 评论
【大联大世平ON Semiconductor BLE5.0 RSL10开发板试用体验】+ 蓝牙键盘试验
2605 浏览 0 评论
【大联大友尚安森美半导体感光芯片USB双目摄像头模组试用体验】敏感人群自动追踪系统开发
3117 浏览 1 评论
【大联大品佳 Microchip PIC16F15324开发板试用体验】+初识及上电
2170 浏览 0 评论
【大联大世平ON Semiconductor BLE5.0 RSL10开发板试用体验】安森美IDE环境程序烧写失败的解决办法
1976 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 00:41 , Processed in 0.357707 second(s), Total 39, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号