注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
dan158185的个人空间 https://home.eeworld.com.cn/space-uid-349284.html [收藏] [复制] [分享] [RSS]
日志

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

已有 3194 次阅读2015-11-28 09:50 | 书籍

作为自身移植TinyOS到CC2530,CC2538的我来说,具体可以看我的视频对现在市面上关于tinyos的书籍不置可否,尤其是关于CC2530的,昨晚让群里的朋友 
传了代码给我,看了代码我久久不能平静,难怪国内的6lowpan的推动如此慢了,对此的
结论也是,要么你就不要出书还附代码,简直是拖后腿,搞得初学者完全走了弯路;
下面我提出质疑:
1,书籍目录看了一下,写了些什么,完全是2530的驱动教学驱动部分后面会说说问题,到底是玩系统还是玩单片机驱动傻傻搞不清楚
2,Tinyos部分的app脱离核心,那就是基于6lowpan的网络,路由,边界路由,基本上书上的版本为2011~2012年的版本,你发现学习完他的书,你相当于没有玩过tinyos,至少你要同步更新吧,貌似出书那会已经有RPL路由等协议了,12年底出来的,我非常清楚,因为2530我是从没有6lowpan的路由协议就一路玩过来的,2530的移植是本人独自一人完成!
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文件,你见过谁去写成组件!!!

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

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

         
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章