原创 系統架構札記

什麼是高內聚、低耦合?     起因:模塊獨立性指每個模塊只完成系統要求的獨立子功能,並且與其他模塊的聯繫最少且接口簡單,兩個定性的度量標準――耦合性和內聚性。     耦合性也稱塊間聯繫。指軟件系統結構中各模塊間相互聯繫緊

原创 嵌入式開發硬件知識札記

三態邏輯 1. 概念 三態指其輸出既可以是一般二值邏輯電路,即正常的高電平(邏輯1)或低電平(邏輯0),又可以保持特有的高阻抗狀態。高阻態相當於隔斷狀態(電阻很大,相當於開路)。 三態門結構 高阻態是一個數字電路里常見的

原创 Makefile經典教程(掌握這些足夠)

makefile很重要       什麼是makefile?或許很多Winodws的程序員都不知道這個東西,因爲那些Windows的IDE都爲你做了這個工作,但我覺得要作一個好的和professional的程序員,makefile

原创 Linux中變量#,@,0,1,2,*,$$,$?的含義

$# 是傳給腳本的參數個數 $0 是腳本本身的名字 $1 是傳遞給該shell腳本的第一個參數 $2 是傳遞給該shell腳本的第二個參數 $@ 是傳給腳本的所有參數的列表 $* 是以一個單字符串顯示所有向腳本傳遞的參數,與位

原创 技術與技巧札記

Linux常用命令及技巧: (1)cat /proc/version 查看當前內核的版本   (2)  掛載nfs文件夾:需要先確認在/etc/exports文件,可以用於開發板掛載的文件夾         mount -o

原创 Makefile札記

Makefile中:= ?= += =的區別 在Makefile中我們經常看到 = := ?= +=這幾個賦值運算符,那麼他們有什麼區別呢?我們來做個簡單的實驗 新建一個Makefile,內容爲: ifdef DEFINE_V

原创 LVM (Logic Volume Management,邏輯卷管理)

是傳統商業Unix就帶有的一項高級磁盤管理工具,異常強大。後來LVM移植到了Linux操作系統上,儘管不像原來Unix版本那麼強大,但瘦死的駱駝比馬大,Linux的LVM仍然非常強大,可以在生產運行系統上面直接在線擴展硬盤分區,可以把分

原创 Linux命令行與Shell腳本編程大全讀書筆記

Linux內核4大主要功能: 內存管理 進程管理 設備管理 文件系統管理 Linux系統啓動的進程和腳本管理 1./etc/inittab   管理系統開機時會自動啓動的進程 2./etc/init.d  

原创 ALSA聲音編程介紹

這裏瞭解一下各個參數的含義以及一些基本概念。 樣本長度(sample):樣本是記錄音頻數據最基本的單位,常見的有8位和16位。 通道數(channel):該參數爲1表示單聲道,2則是立體聲。 楨(frame):楨記錄了一個聲音單元

原创 Volatile的陷阱

最近寫的關於在嵌入式開發中常遇到的關於volatile關鍵字使用的短文,都是些通用的技術,貼上來share。   對於volatile關鍵字,大部分的C語言教材都是一筆帶過,並沒有做太過深入的分析,所以這裏簡單整理了一些關於vola

原创 Linux時間函數札記

關於gmtime、gmtime_r、localtime、localtime_r 測試環境:vmware 7 + Redhat5.5,系統時間使用UTC,時區爲上海。  1、函數功能介紹         使用man gmtime

原创 Ubuntu下各種服務搭建及操作技巧

Ubuntu下搭建TFTP 1、安裝軟件包 sudo apt-get install tftpd tftp xinetd 2、建立配置文件 在/etc/xinetd.d/下建立一個配置文件tftp sudo vi /etc/x

原创 使用Automake和Autoconf生成Makefile

automake 所產生的 Makefile 除了可以做到程序的自動編譯和鏈接 外,還可以用來生成各種文檔(如manual page、info文件),可以將源代碼文件包裝起來以供發佈。所以程序源代碼所存放的目錄 結構最好符合GNU的標

原创 通用Makefile實現

Makefile是Linux下程序開發的自動化編譯工具,一個好的Makefile應該準確的識別編譯目標與源文件的依賴關係,並且有着高效的編譯效率,即每次重新make時只需要處理那些修改過的文件即可。Makefile擁有很多複雜的功能,這

原创 Linux鎖機制和線程安全

鎖機制是多線程編程中最常用的同步機制,用來對多線程間共享的臨界區進行保護。1. 互斥鎖:pthread_mutex,屬於sleep-waiting類型的鎖 pthread_mutex_t *mutex; int pthread_mute