社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 1952|回复: 2

[原创] 失败的zephyr samr21_xpro移植

[复制链接]

1426

TA的帖子

2

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

发表于 2017-2-3 17:42:29 | 显示全部楼层 |阅读模式
本帖最后由 freebsder 于 2017-2-3 18:00 编辑

乘放假花了几天功夫试了一试将自带802.15.4收发器的samr21移植到zephyros上去。arm确实太流行,以至于操作系统的核心部分并不需要特殊处理,只需要实现clock和uart就可以跑将起来,为此本鸟把spi,uart,gpio和rf233收发器跑在系统上。

zephyr支持不少开发板,本以为是并不复杂的过程,可到最后才发现并没有预计到针对cortexm0+的板子时出现了问题,虽然实现了rf233的操作,可暂时测试不了。

问题出现在:cortexm0+属于armv6-m体系的片子,这个体系不支持非对齐访问。为了提高处理效率,zephyr中大量使用数据buf的直接类型转换后的16位和32位操作。比如802.15.4的mac帧中,顺序为2个字节长度的fcf控制字和1个字节的seq序列,随后是ip地址等信息。为了高效操作ip数据,zephyr将已经对齐的buf直接跳过3个字符进行ip操作。这种操作如果是字节为单位倒也罢了,如上所述它采用了强制转换到16位和32位的操作对象,如此便导致非对齐访问。

对802.15.4能力的支持目前代码库里面只有cc2520和mcr20a两款spi控制的收发器,如果配合m4及以上的平台通过spi操作,看起来似乎是没有问题的,可本鸟手里不仅没有这些收发器,也没有已经支持的m4平台。

不知zephyr设计时的考量如何,在目前的协议栈部分看起来要支持更多平台的运行,似乎这种处理是一种很低级的疏忽。当然,也可能是哪里有某个选型控制而我没有看见的。

附件里面的是master代码库的diff,zephyr升级很活跃,如果patch出问题,就得手动改改。

z.patch (1.76 MB, 下载次数: 7)
人已离开,无事别找,找也找不到。


回复

使用道具 举报

2万

TA的帖子

74

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-2-3 17:45:27 | 显示全部楼层
@tidyjiang8  来帮忙看看
2017,加油!继续为中国电子行业做出小小的贡献吧!
QQ 1206973913


回复

使用道具 举报

6753

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

发表于 2017-2-3 20:54:19 | 显示全部楼层
MicroPython的zephyr分支更新速度也很慢


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-6-20 05:57 , Processed in 0.106158 second(s), 17 queries , Gzip On, Redis On.

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