前面将contiki的makefile框架都理了下,这篇就以cc2530为收篇吧,也即makefile分析就该到此为止了。
contiki/examples/cc2530dk
打开Makefile如下图:
第一行的 "CONTIKI_PROJECT"变量依赖于该目录下的 blink-hello.c hello-world.c sensors-demo.c timer-test.c 4个C源文件
第五行的"CONTIKI"变量被定义成 contiki/ 路径,这个变量必须要在这里定义,后面各层makefile都要检查它。
第六行开始包含 contiki/ 目录下的 “Makefile.include” 文件,这也是必须的。
Makefile.include前面已做分析。那就直接进入平台支持吧:
contiki/platform/cc2530dk
打开该目录下的 Makefile.cc2530dk 文件,该文件在选择平台为cc2530dk的时候,会被 前面的 Makefile.include所调用。
嗯,无外乎就是加载平台支持代码,这些都是放在C源文件的:
导入CC2530 CPU支持makefile、加载默认模块:
如图可知cc2530dk的cpu 支持makefile 放在了 contiki/cpu/cc253x/ 目录下面了。
那些默认的模块,都在 contiki/core/ 目录下放着。
好吧,中间可能会涉及到这个目录下的代码的编译规则,不过,这不是我所关心的。Makefile.cc2530dk 我所关心的内容已经完毕。
接下来看Makefile.cc253x内容。
/contiki/cpu/cc253x
在这里,首先定义了编译器,不是gcc,也不是arm-linux-gcc,也不是javac,而是linux下的sdcc编译器:
接着关心一下51(cc2530的内核是51 core)单片机的 flash:
在继续定义下芯片内部的起始地址、代码大小:
然后依然包含一些51 cpu的代码,它们都存放于C源文件:
OK,如果抛开makefile的语法,makefile给我们展示了很多东西。让自己对contiki整个代码框架,有一个大致的了解---从编译的角度。
就这样了,重点不是makefile,而是makefile 主导下的东西。那就暂时抛开makefile吧,进入contiki 源码学习部分。