cc2530 makefile简略分析 <contiki学习之三>

前面将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 源码学习部分。

原文地址:https://www.cnblogs.com/chineseboy/p/3849082.html