1. 程式人生 > >智慧家居專案(2):專案工程框架的搭建

智慧家居專案(2):專案工程框架的搭建

專案管理器:

        Linux中的專案管理器“make”有些類似於windows中的Visual C++裡的“工程”,它是一種控制編譯或者重複編譯軟體的工具,另外,它還能自動管理軟體編譯的內容、方式和時機,使程式設計師能夠把精力集中在程式碼的編寫上而不是在原始碼的組織上。

|-- 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檔案,並使工程能夠順利的編譯通過。

  1. .PHONY:help all uboot kernel app ramdisk system clean drivers  
  2. SRC_PATH=$(shell pwd)  
  3. export SRC_PATH  
  4. help:  
  5.     @echo"Usage:"
  6.     @echo"\tmake uboot # Compile UBoot"
  7.     @echo"\tmake kernel    # Compile Linux Kernel"
  8.     @echo"\tmake ramdisk   # Generate ramdisk.img"
  9.     @echo"\tmake system    # Generate system.img"
  10.     @echo"\tmake app   # Build Project applicatins"
  11.     @echo"\tmake drivers   # Build drivers"
  12.     @echo"\tmake all   # make uboot kernel ramdisk system app drivers"
  13. #[email protected]是Makefile的萬用字元,代指你前面指定的檔名,   
  14. uboot kernel ramdisk system app drivers
    :  
  15.     @script/build.sh [email protected]  
  16. all:  
  17.     @script/build.sh uboot  
  18.     @script/build.sh kernel  
  19.     @script/build.sh drivers  
  20.     @script/build.sh app  
  21.     @script/build.sh ramdisk  
  22.     @script/build.sh system  
  23. # -C 大寫,切換到指定目錄再執行 make 過程,makefile 在這個指定目錄裡面
  24. clean:    
  25.     rm -fr images/*  
  26.     rm -fr system/modules/*.ko
  27.     rm -fr system/app/*  
  28.     make -C board/src/Main  
  29.     make -C u-boot distclean  
  30.     make -C drivers clean  
  31.     make -C kernel clean  

接下來的文章,將詳細熟悉board目錄中的檔案。

相關推薦

智慧家居專案2專案工程框架搭建

專案管理器:        Linux中的專案管理器“make”有些類似於windows中的Visual C++裡的“工程”,它是一種控制編譯或者重複編譯軟體的工具,另外,它還能自動管理軟體編譯的內容、方式和時機,使程式設計師能夠把精力集中在程式碼的編寫上而不是在原始碼的

從無到有整合SpringMVC-MyBatis專案2搭建SpringMVC專案

       前言:本次搭建SpringMVC專案,建立在已完成從無到有整合SpringMVC-MyBatis專案(1):搭建JavaWeb專案 的基礎上,本篇的重點在於如何將SpringMVC框架引入到普通的JavaWeb專案中去,專案基於SpringMVC4.3.18版本

嵌入式Linux——IIC驅動2i2c驅動框架分析

簡介:         本文主要介紹i2c匯流排框架,即對i2c的各個層次(i2c匯流排,i2c核心,i2c裝置)進行分析。同時我也會結合程式對框架進行說明。所以本文將分為兩部分,第一部分對i2c的框架進行介紹,而第二部分就是結合程式碼分析。 核心:linux-2.6.2

智慧家居專案1軟體開發流程

結合公司開發過的產品以及對自學知識的總結,整理出此係列文章  。側重點還是在軟體部分。 公司開發某個專案,肯定是為了盈利賺錢。開發的專案無非就是自己的產品或者承接甲方的開發任務。 大體的流程可以分為幾個部分或階段:                          

解讀ASP.NET 5 & MVC6系列2初識專案

初識專案 開啟VS2015,建立Web專案,選擇ASP.NET Web Application,在彈出的窗口裡選擇ASP.NET 5 Website模板建立專案,圖示如下: 我們可以看到,此時Web Forms\MVC\Web API複選框都選擇不了,原有是因為在ASP.NET 5中做了大量更改,移除了We

Spring Boot2企業版快速開發平臺ALBase2 使用Maven建立多模組專案

系統模組劃分 Maven多模組專案,適用於一些比較大的專案,通過合理的模組拆分,實現程式碼的複用,便於維護和管理。尤其是一些開源框架,也是採用多模組的方式,提供外掛整合,使用者可以根據需要配置指定的模組。   專案結構如下:     albase   (父

【無私分享從入門到精通ASP.NET MVC】從0開始,一起搭框架、做專案2建立資料庫和資料模型

索引 簡述 我們建立一個數據庫然後生成資料模型,新增ADO.NET實體資料模型,這裡呢常用的有兩種方式,一種是DbFirst,一種是CodeFirst,為了簡便,我們使用DbFirst。有基礎的朋友可以使用CodeFirst,對專案沒有影響的。 專案準備 我們用的工具是:VS 2013 + Sql

簡易智慧家居管理--魔鏡2介面

0、說些廢話 介面開發網上有兩個思路,一是傳統的前端介面開發,PHP、CSS之類的,然而我並不會前端的開發,暫時也沒這麼多時間去折騰了,所以先採用原生的介面。二是用QT來作為跨平臺的開發,先在window這邊用QT creator進行介面的佈局並且實現相應的功能,然後再用對

基於arm板的專案——智慧家居系統

一.前言 上一篇部落格是13號寫的,今天是23號了,這麼久沒寫部落格是因為設計智慧家居系統去了。   隨著計算機的發展,越來越多的領域涉及到計算機。可以這麼說現代社會已經離不開計算機了。最近總是聽說智

第八週 專案2分數類中的運算子過載

問題及程式碼: /* * Copyright (c) 2015, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:Project3.cpp * 作 者:李楠 * 完成日期:2015年4月24日 * 版 本 號:v1.0 * * 問題描述:

Android-影象識別專案OpenCV2執行官方例子中的臉部識別程式

3、下載OpenCV4Android官方SDK並進行匯入   SDK下載地址:http://pt.sourceforge.jp/frs/g_redir.php?m=jaist&f=%2Fopencvlibrary%2Fopencv-android%2F2.4.2%2

搭建eclipse+tomcat+maven+shiro+springmvc+jpa專案基本框架搭建

1、pom.xml配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://m

搭建eclipse+tomcat+maven+shiro+springmvc+jpa專案技術選型及架構文件

一、Java語言 Java是一門面向物件程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向物件程式語言的代表,極好地實現了面向物件理論,允許程式設計師以優雅的思維方式進行復雜的程式設計。

gulp構建專案gulp-watch監聽檔案改變、新增、刪除

一、gulp.watch()功能介紹 舉例說明:當’./src/*.html’發生變化時,執行’html’任務,同時重新整理瀏覽器。如下: gulp.task('watch', function(){ gulp.watch('./src/*.

gulp構建專案環境準備

一、建立package.json檔案 npm init // 一路回車就行(預設已安裝node) package.json內容如下: { "name": "gulp-project", "version": "1.0.0", "des

gulp構建專案啟本地服務

一、安裝browser-sync模組 npm i -D browser-sync 二、引入browser-sync模組,並初始化 var browserSync = require('browser-sync').create(); gulp.t

MFC學習專案學習

使用PROJECT->Class Wizard...按步驟設計生成MFC介面 點選"Add Class..."按鈕,在彈窗中輸入想要建立的視窗名字(也就是Class name,.h和.cpp檔案會自動同步) 可在Resource View看到所有的介面

selenium模組專案練習

自動登入163郵箱併發送郵件 #注意:網站都策略都是在不斷變化的,精髓在於學習流程。下述程式碼生效與2017-11-7,不能保證永久有效 from selenium import webdriver from selenium.webdriver import ActionChain

gulp構建專案十三babel-polyfill編譯es6新增api

需求分析: es6語法以及提供的強大api給前端帶來了很大便利,可是部分瀏覽器無法識別es6語法 gulp-babel只能將es6語法編譯成es5,比如:箭頭函式、let變數等,但是API不能編譯,比如Object.assign 引用babel-p

手把手教你整合maven+spring專案2

在上一篇部落格裡,講解了如何新建Maven專案,今天在我們將會在上一篇部落格的基礎上,整合springmvc,本篇部落格適合新手入門springmvc,下面將開始今天的正文; 第一步:新增包com.zds,並新增controller、dao、service各包, 然後,修改pom.xml,新