很久就想写写自己的日志了只是因为工作关系,一直在用开源的东西,也没有好好写点东西。也真的想为了推动开源技术,贡献自己一点微弱的能力。
首先介绍一下这个很不为人知,但是强大到爆的系统:
如题, Contiki 是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统,..... balabala....关系到contiki系统的特点和优缺点,在这就不再赘述了。因为网上有太多的资料描述这些了。比如说:
百科:
http://baike.baidu.com/view/7002005.htm
and wiki:
https://en.wikipedia.org/wiki/Contiki
and 官方网站!!
http://contiki-os.org/
废话不多说,以下所有的案例和源码分析都是基于contiki 3.0源码,所以请务必准备好源码资料。
- 源码树
. ├── apps ├── CONTRIBUTING.md ├── core ├── cpu ├── dev ├── doc ├── examples ├── lib ├── LICENSE ├── Makefile.include ├── platform ├── README-BUILDING.md ├── README-EXAMPLES.md ├── README.md ├── regression-tests └── tools
注释:
- apps:和你的理解一样,这些目录就是一些app程序,基本和平台没有什么关系,例如ftp,http,shell等等等等。。
- core:这个目录和名字一样,这就是contiki的核心源码部分,包括网络(net)、文件系统(cfs)、渺小的图形系统(CTK)等等,并且包含了时钟、 I/O、网络驱动等系统内核的代码,对contiki内核部分功能的裁剪都会在这个地方里进行。
- cpu: 此目录下是 Contiki 目前支持的微处理器,如 msp430 等等。如果需要支持新的微处理器,可以在这里添加相应的源码文件。
- dev:设备驱动源码。比如说TI CC1200的无线驱动源码就是在这儿
- doc:源码的帮助文件信息,还有源码Astyle格式等等规范,以防你是一个大牛!参与到邮件列表里。
- example:各种各样的,各个平台的例称,这其实也是你未来学习的主战场
- paltform:此目录下是 Contiki 支持的硬件平台,例如 mx231cc、 micaz、sky、win32 等等。Contiki 的平台移植主要在这个目录下完成。
- tools:这些是仿真软件程序的家,你做仿真或者想牛x的增加自己的仿真程序,这就是你的天下。
主体目录结构是不是很清晰。
我们想做移植的话,着重看看目录cpu和paltfotrm目录。比如说ST给我们的建议是:
先到这里,init。。。