平台移植 (tinyos)


1,底层移植

对于单片机的一些OS的移植,分析一下需要移植的OS的一个例程,或者是OS给出的模板,最快速方式去找和自己的硬件平台类似的例程;比如2530找51单片机 2538找cortex-M3;

以tinyos移植2538为例,首要考虑的就是底层驱动部分:

1,编译器选择: arm-none-eabi-gcc,安装环境

2. 构建自己的驱动目录,对于厂方有的驱动库,就直接先拿过来,为了方便使用,编写makefile, make成.a库备用

3,.参考OS通用驱动,编写驱动文件,是OS库驱动函数连接到自身硬件平台对应的驱动库文件

4. 添加目录路径,典型的方法是makerules可以手动添加make规路径,如tinyos给出了另外一种方式.paltfom文件

平台移植 (tinyos)_第1张图片

相应的该文件追加了ncc编译器需要的声明硬件平台的数据长度类型定义和编译选项

平台移植 (tinyos)_第2张图片

5. 匹配makefile,将自己的驱动库参考OS的其他平台模板进行makefile编写

重复上面步骤,一个一个功能去条件,比如timer,led,radio


OS构建完成,一般情况下并不需要在进行驱动的追加,如需要参考其他文章;

2,应用层编程

应用层的编程,学习OS的sys库使用

1.编写应用期间完全可以跳过OS的规则,比如tinyos卡住一大批人的nesc编程,可以直接编写自己的或第三方的库,使用gcc先行编译,文件过多,老办法整成.a库(如libcoap);

2.在tinyos中编写简单的app.nc文件进行调用使用;

总体的规则就是需要使用到的tinyos或其他OS的system库资源的时候,进行nesc的连接,编写app.nc实际就是使用他的ncc编译器 生成main函数;


在C代码稳定的情况下,无论是应用库还是驱动库,都可以自行添加到sys库中,当然也可以花些时间搞成nesc,但是实际没有必要。


应用程序的关心应用程序 /  驱动工程师编写驱动;


你可能感兴趣的:(tinyos,cc2538)