查看: 17170|回复: 17

[原创] K60和K64的ENET模块的差异

[复制链接]

该用户从未签到

7

主题

9

帖子

0

注册会员

Rank: 2

积分
84
最后登录
1970-1-1
发表于 2015-2-12 15:04:29 | 显示全部楼层 |阅读模式
最近,在 帮一个客户把他购买的Segger公司的embOS从K60移植到K64上。就在移植的过程中,发现在K60上能正常工作的ENET驱动程序到K64上却不能工作。然而,FSL官方的驱动程序(KSDK1.1)既能在K60上运行,也能在K64上运行,我们也没有看到专门的文档说明K60和K64的同种外设模块之间的差异。那么,究竟是什么原因导致embOS的ENET驱动程序在K64上不能正常运行呢?
经过对程序进行跟踪调试,并且反复比较embOS的驱动程序和FSL官方的驱动程序,以及逐字逐句地研究数据手册,终于发现:原来K64的ENET模块并非完全照搬K60的,而是缩减了一些功能,具体的有两点差异,说明如下:
1.        K60的ENET模块既支持小端模式(little endian),也支持大端模式(big endian),它可以通过寄存器ENET_ECR中的DBSWP位来进行设置;
1.jpg
        而K64的只能支持小端模式,虽然它的寄存器ENET_ECR中也有DBSWP位,但是这一位必须设置为“1”,手册上原文如下:
2.jpg
        另外,在K64的ENET模块介绍中,也多次这样提示只支持小端模式。
3.jpg
问题小结:FSL的官方驱动程序设置的是小端模式,所以在K60和K64上都能正常运行;而embOS的驱动程序设置的是大端模式(大概是为了跟K60的早期版本兼容吧,因为早期版本没有DBSWP位,只能支持大端模式),所以在K64上就不能工作了。

2.         K60的发送数据缓冲区的起始地址虽然在手册上写的是必须按8字节对齐(原文如下),但是实际调试时发现不对齐也能工作;而K64的却是“说到做到”了,不对齐就不干活了。(从以下两者描述中,也能看到大小端模式的不同)
4.jpg
         K60发送缓冲区的起始地址描述
5.jpg
        K64发送缓冲区的起始地址描述
问题小结:embOS的驱动程序(准确地说应该是IP协议栈,因为发送数据缓冲区的指针是从上层传递给ENET驱动程序的)在设计的时候可能忽略了这个要求,所以它虽然在K60上能正常工作,但是一到“较真”的K64上就不行了。

by Zhiqiang Fu(b17589@freescale.com)---IMM FAE China
K60和K64的ENET模块的差异.pdf (405.45 KB, 下载次数: 74)
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    10985
    最后登录
    2019-1-27
    发表于 2015-2-12 17:11:22 | 显示全部楼层
    支持一个 ~ 很详细了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-9-17 17:18
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    26

    主题

    394

    帖子

    0

    高级会员

    Rank: 4

    积分
    929
    最后登录
    2019-10-9
    发表于 2015-2-13 09:00:16 | 显示全部楼层
    楼主无私分享,赞一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    5 小时前
  • 签到天数: 536 天

    [LV.9]以坛为家II

    3

    主题

    1194

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    3737
    最后登录
    2024-4-20
    发表于 2015-6-1 21:25:57 | 显示全部楼层
    K60 里没有M0吧.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-7-13 18:31
  • 签到天数: 127 天

    [LV.7]常住居民III

    19

    主题

    1229

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    6118
    最后登录
    2021-7-13
    发表于 2015-6-1 22:27:21 | 显示全部楼层
    这才是技术文啊
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30

    主题

    487

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1156
    最后登录
    2020-8-18
    发表于 2015-6-2 00:23:06 | 显示全部楼层
    楼主分享的好  顶一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-5-3 11:19
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    50

    主题

    1万

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    14090
    最后登录
    2024-4-19
    发表于 2015-6-2 01:13:51 | 显示全部楼层
    学习了,收获了。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2020-4-9 11:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    11

    主题

    169

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    353
    最后登录
    2020-4-16
    发表于 2015-6-4 11:59:32 | 显示全部楼层
    好帖子 学习了  
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    15199
    最后登录
    1970-1-1
    发表于 2015-6-4 12:28:38 | 显示全部楼层
    学习了!
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-17 08:39
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    33

    主题

    788

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2796
    最后登录
    1970-1-1
    发表于 2015-6-4 13:06:31 | 显示全部楼层
    支持一个,这才是技术贴啊
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 15:01 , Processed in 0.133969 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

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