TinyOS,Contiki的学习 误区,针对市面上的书籍的个人看法
[复制链接]
本帖最后由 dan158185 于 2015-11-30 11:32 编辑
作为自身移植TinyOS到CC2530,CC2538的我来说,具体可以看我的视频对现在市面上关于tinyos的书籍不置可否,尤其是关于CC2530的,昨晚让群里的朋友
传了代码给我,看了代码我久久不能平静,难怪国内的6lowpan的推动如此慢了,对此的
结论也是,要么你就不要出书还附代码,简直是拖后腿,搞得初学者完全走了弯路;
下面我提出质疑:
1,书籍目录看了一下,写了些什么,完全是2530的驱动教学,驱动部分后面会说说问题,到底是玩系统还是玩单片机驱动傻傻搞不清楚
2,Tinyos部分的app脱离核心,那就是基于6lowpan的网络,路由,边界路由,基本上书上的版本为2011~2012年的版本,你发现学习完他的书,你相当于没有玩过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的玩家那么少了,第一反应你会去网上买书,但是实际你学完以后觉得掌握了这个系统
实际上呢,你根本连入门都没有!!!!
|