又是一周左右过去了。
今晚终于决定好好看看contiki的资料。
前天晚上在图书馆不抱什么希望的翻,没看到相关的书,大概有英文的,但中文没有,图书馆里都找不到那看来就没戏了。
于是决定看看网页上的资料,昨晚开始这网络似乎修好了,速度杠杠的,不担心开英文官网了。
习惯性的我希望找到马上可以上手的,而我手头都是stm32的器件,自然就跑去找stm32的,所幸国内当前这个是绝对大主流。
找了找,最终还是决定看官方的 英文文档。
这一看不要紧,真的是发现自己的无知。
首先,我经常是想研究研究 多任务机制的实现方法的。
所以实际上,我现在想到的事情居然是, 得,咱contiki就contiki,多任务归多任务,最多为这个我研究 FreeRTOS吧。
可是今天粗粗开始看那份要命的330页的文档(当然从目前来说,现在需要仔细看的估计不会超过十分之一的篇幅)
我就发现了不少的信息
第一,没错,最初我的确是在资料里看到 contiki的多任务机制采用的是 一个叫 protothread的 轻量级多线程机制。
它轻量到什么程度呢?
我曾经研究过一个下午这个东西。
它其实是一套宏,并不是真正意义上的 多任务跳转,这让我很不得劲。
而后我自己试图利用自己的C语法,考虑考虑如何实现的时候,最终发现,(在C层面上)我怎么也想不到一个实现方案。
后来看 PJP的 C标准库时,我看到了 PJP的评论
多任务机制并非不可能用C语言实现——比如,protothread就某种程度上实现了。
但是,最实际的实现方案仍然是 汇编。
这我就更郁闷了。
即使我以后全线使用arm,stm32我可以用统一的汇编,可我不会ARM汇编啊,事实上除了51,我什么汇编都不会。
这段时间,我还试图翻过 M0权威参考这一类的书,我只是想找到一个学习或者了解ARM汇编的比较经济的方案。
最后仍然没找到,只是打算靠,看一个真正开源的 RTOS来参考。
结果,我终于无奈的决定 “contiki归contiki,多任务归多任务 ”的时候,当我真的开始看contiki的时候,却发现,原来contiki的多任务机制实现有两套方案
其中一套确实是我已经了解过的那个 不能使用(估计是独立)堆栈的 protothread,但同时它也有一个可选的 multi-thread
虽然今晚我还没看全部,但从资料来看,这的确是一个与具体的CPU类型有关的东西,那想必是跑不了要汇编级实现的。
此外就是,contiki自然也会有一套 内存管理,这也是我所感兴趣的——是的,我所希望的就是把这些有用的部件都独立抽取出来使用......
也就是说,我不需要大老远跑去什么 一个归一个 了。
之所以在这里感慨,不仅某种程度上 总结刚刚看到的关于contiki的官方介绍的笔记内容,同时也是感慨,下次不要想太多,还是要先了解,先尝试再做结论。
接下来这大半个月恐怕会相当忙,但也不是忙到天天晚上都要加班那种。
此前的手机DIY还卡着。
结果还是很作孽
当我把 底层的按键和LCD显示全准备好,并打算反正这回工作也是要做一个 简单的 HMI显示框架。
也就是说我可以顺带完成 这个 人机界面。
那我就可以接着把GPRS部分再做进去了,那就有望收尾了。
然而今天我突然想了想,奶奶的,就当前已经做好的部分,我要用来调试 GPRS已经很简单了!
最简单的方法就是 一个按键单步运行 GPRS命令——事实上,现在在我手上,以及在我的理解里,串口或者12864屏,在某种程度上已经是一回事了......
有点乱了,打住。
简单的说就是,我再也不必要做漫长的等待,给自己一个拖延症的理由了!
因为上班时间会加速做HMI工作,我也不打算在 业余时间,在已经完成封装好的 底层 按键 LCD显示上的基础上同步做 HMI,而是直接用现成的条件,直接进入调试 GPRS
如果没记错,我的那张卡应该快停机了.......
晚安~~
|