项目管理器:

Linux中的项目管理器“make”有些类似于windows中的Visual C++里的“project”,它是一种控制编译或者反复编译软件的工具,另外,它还能自己主动管理软件编译的内容、方式和时机,使程序猿可以把精力集中在代码的编写上而不是在源码的组织上。

|-- Makefile

|-- Readme.txt(记录文件)

|-- board(嵌入式应用程序)

|   |-- include

|   |   |-- common.h

|   |   |-- device.h

|   |   |-- log.h

|   |   |-- msg.h

|   |   `-- socket.h

|   `-- src

|       `-- Main

|           |-- Makefile

|           |-- init.c

|           |-- log.c

|           |-- main.c

|           |-- serial.c

|           |-- socket.c

|           |-- socket_dev.c

|           |-- systeminfo.c

|           `-- thread.c

|-- drivers(驱动程序)

|-- kernel(内核源代码)

|-- script(脚本文件)

|   `-- build.sh

|-- tools(使用到的工具)

|   `-- images_tools

|       `-- mkyaffs2image

|-- u-boot(bootloader源代码)

初步规划好项目的代码结构,编写makefile文件,并使project可以顺利的编译通过。

.PHONY:help all uboot kernel app ramdisk system clean drivers
SRC_PATH=$(shell pwd)
export SRC_PATH help:
@echo "Usage:"
@echo "\tmake uboot # Compile UBoot"
@echo "\tmake kernel # Compile Linux Kernel"
@echo "\tmake ramdisk # Generate ramdisk.img"
@echo "\tmake system # Generate system.img"
@echo "\tmake app # Build Project applicatins"
@echo "\tmake drivers # Build drivers"
@echo "\tmake all # make uboot kernel ramdisk system app drivers" #$@是Makefile的通配符,代指你前面指定的文件名称,
uboot kernel ramdisk system app drivers:
@script/build.sh $@ all:
@script/build.sh uboot
@script/build.sh kernel
@script/build.sh drivers
@script/build.sh app
@script/build.sh ramdisk
@script/build.sh system # -C 大写,切换到指定文件夹再运行 make 过程,makefile 在这个指定文件夹里面
clean:
rm -fr images/*
rm -fr system/modules/*.ko
rm -fr system/app/*
make -C board/src/Main
make -C u-boot distclean
make -C drivers clean
make -C kernel clean

接下来的文章,将具体熟悉board文件夹中的文件。

智能家居项目(2):项目project框架的搭建的更多相关文章

  1. 01-信贷路由项目架构和 rose 框架的搭建

    1.信贷路由项目架构 2.工程搭建及测试 搭建tyrRouter-parent,tyrRouter-log-web,工程采用 maven 构建 配置 pom.xml 文件,父项目管理 jar 包的版本 ...

  2. 基于ZigBee模块与51单片机之间的简化智能家居项目简介(学生版本)

    5月份学校举行比赛,我们团队报名<智能家居>的项目,设计的总体思路用:QT写的上位机与ZigBee无线通信加51作为终端的简易版智能家居 电路连接:PC机->cc2530(协调器)- ...

  3. 01-电子商城项目介绍及ssm框架搭建

    1.B2C电商项目功能及架构 1.1功能列表 1.2系统架构(soa架构) 2.后台管理系统工程搭建及测试 ypMall,ypMall-manager-web ypMall为父项目,管理子项目的jar ...

  4. wumei-smart智能家居开原项目

    一.项目简介 物美智能(wumei-smart)]是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的智能家居系统. 硬件工程师可以把自己的设备集成到系统:软件工程师可以使用项目中的设备熟悉软 ...

  5. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目

    一:创建maven web项目er

  6. IDEA+SpringBoot+Mybatis+maven分布式项目框架的搭建

    参考文章:https://blog.csdn.net/qq_34410726/article/details/98214992 一.maven分布式工程的基本架构 demo  #父工程模块,主要用来定 ...

  7. PHP项目感悟 -- 从CI框架来看iOS的MVC

    其实这几天一直都想找时间把这个感悟整理出来,也是这一段一直思考的问题,因为这一段参加一个PHP后台项目的开发,框架使用的是CI,随着项目的进展,对于CI接触的也越多,但是由于理解的可能并不深刻,我也只 ...

  8. MVC+Ef项目(1) 项目的框架搭建

    一:首先我们来搭建最基本的项目框架,这里使用MVC3作为web项目,然后我们添加几个类库项目 最后的项目如下, 其中有一个 YouJiao.MvcWeb.Repository 实际就当做是 DAL层即 ...

  9. android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】

    zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照 ...

随机推荐

  1. 2014第13周四Webservice概念问题记

    晚上回来看网页学习了这两天一直疑惑的两个问题: 1.REST和SOAP架构下的Webservice的区别? 2.axis2和CXF的区别. 大部分是理论,暂时摘录一下,以后有更多实践后再回顾. 一.R ...

  2. Protobuf从安装到配置整理帖 --转

    新做的Mini项目计划使用Google的Protobuf来做,关于Protobuf是什么玩意能干什么请自己去看这里:http://code.google.com/p/protobuf/ 这里讲一下安装 ...

  3. 全国计算机等级考试二级教程-C语言程序设计_第8章_地址和指针

    面试: unsigned int *p1 = &num; int *p2 = &num; #define _CRT_SECURE_NO_WARNINGS #include<std ...

  4. 学习RAC小记-适合给新手看的RAC用法总结(转)

    原文:http://www.jianshu.com/p/ff79a5ae0353 什么是RAC? 几乎每一篇介绍RAC的文章开头都是这么一个问题.我这篇文章是写给新手(包括我自己)看的,所以这个问题更 ...

  5. [Regionals 2012 :: Asia - Tokyo ]

    链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=56 ...

  6. 20151120 jsp相关

    jsp 声明表示.代码片段及引用 <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...

  7. Java Tomcat Glassfish Weblogic远程debug(remote debug)

    tomcat ./catalina.sh jpda start 这条命令启动tomcat,它就会监听8000端口,等待调试器的连接. 默认监听8000端口,通过设置环境变量JPDA_ADDRESS指定 ...

  8. 摩根斯坦利 - 2016年09月8日 面试题 - HashMap

    摩根斯坦利 - 2016年09月8日 面试题: 给定一个 Map<Person, Object> map = new HashMap<Person, Object>(); 放入 ...

  9. 关于 css padding 的使用 padding会将使用该属性的元素撑开

    .right_img_box{ width:300px; height:250px; border:1px solid #c9c9c9; margin-bottom:15px; background: ...

  10. Linux学习之停止进程

    首先,用ps查看进程,方法如下: ps -ef ……smx       1822     1  0 11:38 ?        00:00:49 gnome-terminalsmx       18 ...