原创 異或操作

在一個多任務嵌入式系統中,有一個CPU可直接尋址的32位寄存器REGn,地址爲0x1F000010,編寫一個安全的函數,將寄存器REGn的指定爲反轉,其他bit不變! void bit_reverse(uint32_t nbit) {

原创 jrtplib庫使用簡解

RTP有效載荷類型即時間截解釋 =============================== https://www.cnblogs.com/wyqfighting/archive/2013/03/05/2943992.html Get

原创 linux網絡編程之斷點傳輸文件

以下載鏈接“http://www.boa.org/boa-0.94.13.tar.gz”爲例: 斷點續傳實驗大概步驟: ===================== 1,使用gethostbyname()獲取站點“www.boa.org”

原创 jrtplib移植

jrtplib版本:3.11.1 jthread版本:1.3.3 libsrtp版本:1.6.0 jrtplib庫有兩種編譯方式: 1. 使能jthread編譯,此方式可使jrtplib自動在後臺輪詢結束數據, 而

原创 FILE對象線程安全

根據apue講述: 標準的IO例程可能從它們各自的內部數據結構的角度出發,是以線程安全的方式實現的!但在線程中,如果標準 IO例程都獲取它們各自的鎖,那麼在做一次一個字符的IO時就會出現嚴重的性能下降!在這種情況下,需要

原创 D-bus交叉編譯

在嵌入式中如果需要Qt系統支持U盤插拔,則需要Qt支持D-bus。 D-bus的交叉編譯依賴expat庫,此庫爲XML解析庫。 交叉編譯expat庫: #./configure --host=XXX --prefix=XXX #m

原创 select函數實例代碼

select函數簡解: selct 稱之爲多路複用IO,使用它可以讓程序阻塞在select上,而非實際IO函數上. int select(int nfds, fd_set *readfds, fd_set *writef

原创 數據高低位交換

剛看到一道面試題: 用C語言實現一個數組中char A[n]每個字節內部8bit數據高低調轉! 在嵌入式中常用蝶式交換算法實現!其中還有查表法(比較佔用內存)! 蝶式交換算法: data = (data << 4) | (data >

原创 新裝Ubuntu後的一些配置

一:Ubuntu 16.04 開啓root用戶和使用root用戶登陸 1. 編輯/etc/lightdm/lightdm.conf autologin-guest=false autologin-user=root

原创 jpeg解碼庫使用實例

jpeg庫下載地址: http://www.ijg.org/ 交叉編譯三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpeg-install

原创 Linux網絡編程之"獲取網絡天氣信息"

需求分析: 1.需要Linux c 網絡編程基礎, 2.需要了解 http 協議 3.需要天氣信息相關api(可以從阿里雲上購買,很便宜的!) 4.需要cJSON解析庫(因爲獲取到的天氣信息一般是用cJSO

原创 GNU C中__attribute__

__attribute__基本介紹: 1. __attribute__ 可以設置函數屬性、變量屬性和類型屬性。 2. __attribute__ 語法格式爲:__attribute__ ((attribute-list))

原创 sigqueue與kill詳解及實例

/*********************************************************************************************** 相關函數: #include <s