原创 替換某個目錄下.c文件內容

1. 找出所有.c文件 leon$ find ./ -maxdepth 3 -type f | grep "\.c" ./misc/nv_net_udp.c ./nv_comm_system.c ./util/nv_report

原创 Linux命令 -- find 搜索深度

1.前言 在編譯當中經常需要通過-I 來指定頭文件搜索路徑。 2.命令 -maxdepth <number> ; number 指定搜索深度. find ./ -maxdepth 3 -type d 3.執行結果

原创 Linux命令組合 -- 將make all 編譯錯誤信息重定位到管道輸出

1.命令 leon$ make clean && make all 2>&1 | grep "error" 2016-10-10 18:49:36 (nvc-communication)==>|| INFO : Clean pr

原创 OSD疊加到視頻流

1.OSD疊加原理 文字、圖片、視頻顯示的原理,無非就是描點(像素)。顯示屏是發光二極管組成。俗稱點陣。 2.原理圖 3.處理流程 ⑴text文本段 ⑵從字庫中找出相應文字的點陣 ⑶描點(將文字二進制數據轉換成pixel值,存到

原创 輸出警告/錯誤信息到SecureCRT終端

1. 命令 leon$ make clean && make all 2>&1 | grep "warning" 2. 示例 點贊 收藏 分享 文章舉報 leon_20

原创 查看可執行程序(ELF)或動態庫所依賴動態庫——ldd腳本分析

1.序 搞清可執行程序(動態庫)所依賴的動態庫信息是非常有幫助的。 2.查看方法 系統信息: Linux netview 4.4.0-101-generic #124~14.04.1-Ubuntu SMP Fri Nov 10 19:

原创 應用程序——鏈接腳本

1.序 應用程序也可以像內核一樣按照一定規則的組織模塊。通過鏈接腳本就可以做到。 2.查看默認鏈接腳本 沒有鏈接腳本,程序也是不知道如何在內存當中進行組織的。只不過一般情況下,做應用的程序員不 需要關心而已。 leon@ne

原创 項目經驗之談 —— umount TF卡 失敗

1.項目描述 在公司開發的門鈴(G26設備),帶TF卡, 2. 跟蹤

原创 Linux命令 -- 獲取 進程信息:name 、stat 、PID

以 kthreadd 進程爲例 1.命令 ⑴ 第一種方式 換行輸出: echo `ps | grep -v grep | grep kthreadd | sed 's/\/bin\/sh//' | awk '{print $4, $1

原创 查找系統定義size_t , va_list , va_start , va_end 等不常見宏(變量)頭文件所在

1.序 在創建一個新項目時,往往我們會使用到如: size_t , va_list , va_start , va_end ,false , true 等不常見宏(變量),經常會報錯,說未定義。而這些宏(變量)又不是在標準的glibc庫當

原创 解決'配置,編譯glib-2.26.1庫'錯誤.

1.序 之所以不選最新的glib庫,而選glib-2.26.1庫,是有原因的,第一最新庫依賴的庫文件太多,編譯出來庫文件太大,不太適合flash空間有限的嵌入式設備. 但是在configure ’ glib-2.26.1 ’ 庫的時候,

原创 利用C語言"位域"的特殊性來對數組進行邊界檢查

1.序 數組越界時常有發生,如果我們能夠讓編譯器提醒我們犯錯那是最好。 2.例子 #include <stdio.h> #include <stdlib.h> #define ARRAY_CARDINALITY(Array) (si

原创 項目經驗之談—— x86、ARM架構棧幀彙編分析

0.源碼 1.x86架構 2.ARM架構

原创 項目經驗之談 —— 利用編譯器及C語言特性<位域>進行內存邊界檢測

1.前言 在C語言中,邊界檢測總是一個讓程序員頭疼的問題,一不小心程序就崩潰了。C語言本身並沒有提供邊界檢測的語法。但我們可以利用語言本身的一些特性及編譯器進行邊界檢查。 2.校驗內存邊界 #define VERIFY_BOUNDARY(

原创 shell腳本中,子串匹配的例子

1.腳本文件 name="dbus" for i in `find ./ -maxdepth 1 -type d` do dirname="$(echo `basename $i`)" echo $d