智能家居项目(2):项目project框架的搭建
项目管理器:
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框架的搭建的更多相关文章
- 01-信贷路由项目架构和 rose 框架的搭建
1.信贷路由项目架构 2.工程搭建及测试 搭建tyrRouter-parent,tyrRouter-log-web,工程采用 maven 构建 配置 pom.xml 文件,父项目管理 jar 包的版本 ...
- 基于ZigBee模块与51单片机之间的简化智能家居项目简介(学生版本)
5月份学校举行比赛,我们团队报名<智能家居>的项目,设计的总体思路用:QT写的上位机与ZigBee无线通信加51作为终端的简易版智能家居 电路连接:PC机->cc2530(协调器)- ...
- 01-电子商城项目介绍及ssm框架搭建
1.B2C电商项目功能及架构 1.1功能列表 1.2系统架构(soa架构) 2.后台管理系统工程搭建及测试 ypMall,ypMall-manager-web ypMall为父项目,管理子项目的jar ...
- wumei-smart智能家居开原项目
一.项目简介 物美智能(wumei-smart)]是一套开源的软硬件系统,可用于二次开发和学习,快速搭建自己的智能家居系统. 硬件工程师可以把自己的设备集成到系统:软件工程师可以使用项目中的设备熟悉软 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
一:创建maven web项目er
- IDEA+SpringBoot+Mybatis+maven分布式项目框架的搭建
参考文章:https://blog.csdn.net/qq_34410726/article/details/98214992 一.maven分布式工程的基本架构 demo #父工程模块,主要用来定 ...
- PHP项目感悟 -- 从CI框架来看iOS的MVC
其实这几天一直都想找时间把这个感悟整理出来,也是这一段一直思考的问题,因为这一段参加一个PHP后台项目的开发,框架使用的是CI,随着项目的进展,对于CI接触的也越多,但是由于理解的可能并不深刻,我也只 ...
- MVC+Ef项目(1) 项目的框架搭建
一:首先我们来搭建最基本的项目框架,这里使用MVC3作为web项目,然后我们添加几个类库项目 最后的项目如下, 其中有一个 YouJiao.MvcWeb.Repository 实际就当做是 DAL层即 ...
- android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
zhezhelin android studio 新建项目 界面一直停在 [“building ‘ 项目名’ gradle project info”] 安装了android studio 之后,按照 ...
随机推荐
- poj3006
Dirichlet's Theorem on ...
- 求解printf函数?
求大神解释一下下面的代码为什么答案不是1 2,而是1 0. #include <stdio.h> int ans = 0; int a() { ans = 1; return ans++; ...
- OceanBase中主备Rootserver如何管理切换
主RootServer会不断给备RootServer发送lease.被RootServer收到该lease后会保存到几个变量中: int ObCheckRunnable::renew_lease(co ...
- Qemu之Network Device全虚拟方案二:虚拟网卡的创建
上文针对Qemu在前端网络流路径的建立方面做了具体的描写叙述.数据包从Host的物理网卡经过Host Linux内核中的Bridge, 经过Tap设备到达了Qemu的用户态空间.而Qemu是怎样把数据 ...
- JavaScript 工作必知(九)function 说起 闭包问题
大纲 Function Caller 返回函数调用者 Callee 调用自身 作用域 闭包 function 函数格式 function getPrototyNames(o,/*optional*/ ...
- wamp 虚拟目录的设置(转载)
现在先来配置虚拟主机:1.先打开apache的配置文件httpd.conf,并去掉#Include conf/extra/httpd-vhosts.conf前面的#!!2.打开apache的apach ...
- applicationContext.xml 配置文件的存放位置
eb.xml中classpath:和classpath*: 有什么区别? classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar文件中 ...
- EC读书笔记系列之17:条款41、42、43、44、45、46
条款41 了解隐式接口与编译器多态 记住: ★classes和templates都支持接口和多态 ★对classes而言接口是显式的(explicit),以函数签名为中心.多态则是通过virtual函 ...
- getchar()用法
getchar() .从缓冲区读走一个字符,相当于清除缓冲区 .前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar ...
- RabbitMQ 消息队列
一:简介 RabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务 ...