zoukankan      html  css  js  c++  java
  • 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 源码学习部分。

  • 相关阅读:
    Spring--AOP
    Database--事务
    Neo4j--UNIQUE约束
    Neo4j--INDEX索引
    排序算法 目录
    数据结构 目录
    设计模式 目录
    建造者模式及应用举例
    模板模式以及应用举例
    真·随笔
  • 原文地址:https://www.cnblogs.com/chineseboy/p/3849082.html
Copyright © 2011-2022 走看看