原创 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