微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > 射频无线通信设计 > TinyOS,Contiki的学习 误区,针对市面上的书籍的个人看法

TinyOS,Contiki的学习 误区,针对市面上的书籍的个人看法

时间:10-02 整理:3721RD 点击:


作为自身移植TinyOS到CC2530,CC2538的我来说,具体可以看我的视频对现在市面上关于tinyos的书籍不置可否,尤其是关于CC2530的,昨晚让群里的朋友
传了代码给我,看了代码我久久不能平静,难怪国内的6lowpan的推动如此慢了,对此的
结论也是,要么你就不要出书还附代码,简直是拖后腿,搞得初学者完全走了弯路;
下面我提出质疑:
1,书籍目录看了一下,写了些什么,完全是2530的驱动教学,驱动部分后面会说说问题,到底是玩系统还是玩单片机驱动傻傻搞不清楚
2,Tinyos部分的app脱离核心,那就是基于6lowpan的网络,路由,边界路由,基本上书上的版本为20112012年的版本,你发现学习完他的书,你相当于没有玩过tinyos,至少你要同步更新吧,貌似出书那会已经有RPL路由等协议了,12年底出来的,我非常清楚,因为2530我是从没有6lowpan的路由协议就一路玩过来的,2530的移植是本人独自一人完成!15年移植了2538!
3,空洞的app,乍一看,app真心不少,但是核心的呢,对于blip1.0核心是serial-briage,也就是ip-dirver和base-station例程,边界路由
对于现在(2.2.13版本)是pppd连接(Ppprouter,没有他,网络应用层部分无法测试,也就是RF多节点网络),TnyOS和Contiki的6lowpan要解决的是zigbee设备的接入IP化,如PC或其他路由设备实现udp或tcp/ip编程;实现类http的coap协议;看看app里面那些全是各种传感器例程,滥竽充数弥补自身的空白,简直就是完全没弄清楚TnyOS/Contiki等OS是要用来干什么,传感器的采集无非是Onewire,I2C,SPI等接口协议;只不过是单片机工程师的必备技能而已,不能用来说是TnyOS的例程,玩传感器的前提是已经吃透了网络部分,所以我移植都是玩核心板,如我自己卖的板子是cc2538cb(市面上2538我自掏腰包都买过,不做过多评价,如果确实好用,我不至于自己做板子),暂时不接传感器,因为那样对学习者简直是要求别人没学会走路就要求人家开始跑步,就像你连IO口操作高低电平都不会就想着我要写模拟SPI,I2C总线,传感器等的接入不影响网络的测试,属于应用负载,项目实际才应用,而不是学习这些系统用的,完全上了商家的当,比如telosb等节点,开始售价是19200现在是9000左右,例程很多人会去玩传感器,我实在搞不清楚,不少人我问telosb的问题也是千奇百怪,冷门至极,国内高校不断的在找亮点出论文,于是冷门什么的全部上了,能不能有点研究精神,别老是整那些没有的东西,出了论文有什么用,谁看;
4,驱动部分提出的质疑时工程经验问题
1,滥用task,tinyos编程时每编写一个task函数,最后编译连接将在全局静态任务数组增加一项,没错也就是滥用内存,这是有经验的工程师的大忌,底层的RAM已经非常少了,如此滥用,无语加无奈;
滥用task第二个问题是RF的收包,进去中断不马上读取FIFO,而是post task,tinyos得task无优先级是顺序执行,相当于中断
置个标志,主循环再去读取,好吧,看看zstack人家的驱动部分的代码能这样写吗?
2,RF发送驱动,不会写CSMA就不要乱写,可以看看底层CSMA的实现,能起到碰撞避让就见鬼了
3, 串口驱动部分,早就在之前的帖子谈过串口丢包问题分析解决(主要是中断优先级),不再重复
看了代码十分钟,吓得宝宝赶紧删除了源码,就发现这些问题,实在不忍心再看下去,让我非常的通心,本质出书应该是帮助学生们和新手们好好入门TinyOS,,了解为什么要玩TinyOS;但是作为一路玩TinyOS的我来说完全不知道书本的意义在哪儿,希望以后出书的人真正有点责任心,驱动部分不要想当然,至少问问TI工程师或行业的从业人员,不要再让初学者浪费时间还学不到东西,最后还说神马TinyOS,实现了什么东西;
现在我知道为什么6lowpan的玩家那么少了,第一反应你会去网上买书,但是实际你学完以后觉得掌握了这个系统
实际上呢,你根本连入门都没有!

当然这些书籍附的代码有一个最好的地方值得学习,代码写得非常工整
就像你能看见作者肯定字写得很好一样!

再谈如何学习,如果没有坚实的C基础,先去补充,提高阅读专业英语的能力,多去系统官网看资料,至少tinyos的官网文档,例程使用文档
很详尽,剩下的要至少能阅读python代码(大部分测试脚本),不要求自己编写!!
选择性的编译,多去动手实验,而不是纸上谈兵!

最后再谈一下传感器接入,tinyos很多商家做法是把传感器写成组件形式,弥补自己,宣传自己例程如何如何多,在我个人看来完全是费力不讨好的做法,或者说难听点脱了裤子放屁,传感器芯片厂家提供demo驱动多为C源码,集成进tinyos非常简单,直接使用就行了,难道lib6lowpan,coap等协议不是一堆的c文件,你见过谁去写成组件!!

对于开源的系统 能不买书 就不要去买书 即使要去买书也要分析清楚
看看书籍的目录 到底能学到什么,或者去买译文版本

!天朝的技术书籍不是凡夫俗子的我们能读懂的!

支持一下

看书先看目录 +255

曾经我也去找过 Contiki方面的书,FreeRTOS我也找过一下,不过图书馆没找着,我也没花钱去买。
至于其他的什么乱七八糟的 rtl ucos,我是根本一点都看不下去。
整个一API中文翻译,神经......

后来我习惯了,乖乖看 英文手册 和 官网,懒得听他们废话。
一两百字能说清楚的事情非要写一大堆。

对了,看这些书我就是发现了一个问题,现在自动翻译软件 水平有所提高,都挺通顺了,不容易感觉是机器翻译的。

没错,看英文的就行了 主要怕出书的自己都不清楚 按字翻译
反而误导人

向大师们学习致敬!

其实看看IEEE802.15.4的规范就明白了,contikiMAC不是IEEE802.15.4 MAC。只有PHY层是。
IEEE 802.15.4的CSMA/CA有很严格的时序机制,配合ACK机制使用。ACK的时序和超时时间是固定的,也就决定了CSMA的时序。

想在stm32上用COAP协议,先移植了contiki,但是到coap这卡住了,我用的keil环境,看coap里很多都是Linux下的系统头文件,完全不知道怎么下手了。。求高人指点啊。拜谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top