原创 an exception occur reason
1 program accesses an invalid memory address(such as NULL pointer) 2 stack overflows due to infinite recursion 3 lar
原创 文件讀寫函數的使用方法
在Linux平臺下對文件編程可以使用兩類函數:(1)Linux操作系統文件API;(2)C語言I/O庫函數。 前者依賴於Linux系統調用
原创 typedef和#define的用法與區別
typedef和#define的用法與區別 一、typedef的用法 在C/C++語言中,typedef常用來定義一個標識符及關鍵字的別名,它是語言編譯過程的一部分,但它並不實際分配內存空間,實例像: typedef int
原创 UC/OS和uClinux的比較
隨着現代計算機技術的飛速發展和互聯網技術的廣泛應用,從PC時代過渡到了以個人數字助理、手持個人電腦和信息家電爲代表的3C(計算機、通信、消費電子)一體的後PC時代。後PC時代裏,嵌入式系統扮演了越來越重要的角色,被廣泛應用於信息電
原创 gcc and gdb
GCC使用在使用GCC編譯程序時,編譯過程可以被細分爲四個階段:預處理(Pre-Processing)編譯(Compiling)彙編(Assembling)鏈接(Linking)。例如: #include int main(voi
原创 數組和指針區別
一般數組名是一個固定的地址,相當於一個常量,因此給數組名賦值的時候,相當於改變了數組名指向的位置,爲非法操作。 而指針是一個指向變量地址的特殊變量,其指向位置可以改變。 特殊情況:*str = "hello"; 此時*str指向的hell
原创 arm的三種中斷狀態
Method #1: Disable/Enable interrupts using simple instructions. After critical section, interrupts will be enabled even
原创 define與const的概念:
define與const的概念: 宏不僅可以用來代替常數值,還可以用來代替表達式,甚至是代碼段。宏的功能很強大,但也容易出錯,所以其利弊大小頗有爭議。 用宏來代表常數,好處是:1. 讓代碼更簡潔明瞭當然這有賴於你爲宏取一
原创 串聯接Concat(&T, S1, S2)實現
3種情況: (1)strlen(S1)+ strlen(S2)<=strlen(T) (2)strlen(S1) < strlen(T) && strlen(S1)+ strlen(S2)>strlen(T) (3)strlen(S1)
原创 warning: function declaration isn't a prototype
1 The function didn't declare. 2 when in kernel module,function may need a parameter,like func(void), not func(). 3 the
原创 剎車的啓發
有經驗的都知道,如果車前突然出現了障礙物,在急剎避讓打方向的時候,眼睛要看向你要去的地方,而不是看向你要撞上去的地方。你的目光看向哪裏,你的身體就會
原创 Status str_insert(HString *s, int pos, HString T)實現
typedef struct { char *ch; //字符串起始地址 int length;/
原创 asoundrc文件
什麼是asoundrc文件? 這裏asoundrc文件實際上包含兩個文件:“.asoundrc”和“asound.conf”。 ”.asoundrc“是一個隱藏文件,是針對個人用戶的配置文件,存在於主目錄下。asound.conf則是全局
原创 cache釋疑
幾個基本概念 先來介紹幾個基本的概念: cache line:若干個word組成的block,通常是由2^n個word組成 set:由若干個cache line組成 way:和組成set的cache line number數目相同 在使用
原创 sigaction的sa_flags
sa_flags實際上是一個位掩碼,可以根據需要需要設置某一個flag或者若干個flags的or組合。 每一個信號都有一組flags與其對應。在GNU C庫中,當建立信號和handler之間的關係時,默認除了SA_REST