原创 (轉)ioctl()

一、 什麼是ioctl。       ioctl是設備驅動程序中對設備的I/O通道進行管理的函數。所謂對I/O通道進行管理,就      是對設備的一些特性進行控制,例如串口的傳輸波特率、馬達的轉速等等。它的調用個數      如下:  

原创 詞法“陷阱”

程序是由符號序列組成的,將程序分解成符號的過程稱爲“詞法分析”。第一章考察在程序被詞法分析器分解成各個符號的過程中可能出現的問題。      在C語言中,符號之間的空白(包括空格符、製表符和換行符)將被忽略。 1.1 = 不同於 =

原创 atexit()函數

   atexit函數原型爲: #include<stdlib.h> int atexit(void (*func)(void))   atexit函數的作用就是用來登記一些終止處理函數(即main執行結束後調用的函數) 按照ISO C

原创 commands commence before first target

makefile時常遇到這樣的問題,彙總網上的原因如下: 1. 上一行換行符號 \ 後面有空格 2. 本行前面的空白有非法字符 1)Makefile可能是以命令行開始:以[Tab]字符開始,但不是一個合法的命令行(

原创 Makefile中make嵌套使用以及VPATH使用

  如果大家編譯過內核的話,你會發現linux源碼中有很多的makefile,每個目錄下都有一個makefile,當你在根目錄下執行make命令的時候,其實是執行根目錄下的makfile,然後再根目錄下的makefile再執行各個目錄下的

原创 Makefile中VPATH與vpath

在Linux操作系統管理中,經常需要用到make命令來編譯一些源代碼。如內核升級,驅動程序安裝等過程中,就需要用到這個命令。關於這個命令的使用技巧已經是老生常談了。不過筆者這次要談的是一個被大家所忽視的細節,即VPATH與vpath的區別

原创 const變量不能初始化數組長度

爲什麼下面的例子在使用一個const變量來初始化數組,ANSI C的編譯器會報告一個錯誤呢?   const int n = 5;  int a[n];  答案與分析:  1) 這個問題討論的是“常量”與“只讀變量”的區別。常量肯定是隻讀

原创 程序存儲結構

C程序一般有以下幾部分組成: 從低地址開始分析: 正文段:由CPU執行機器指令的部分。正文段可共享但只讀不能修改。 初始化數據段:通常稱爲數據段;在程序運行之初就爲其分配空間,直到程序運行結束纔會釋放;初始化數據段存放確定初值的全局變

原创 100條經典C語言筆試題目整理

2、以下爲Linux下32位C程序,請計算sizeof的值。 char str[] = "hello"; char *p = str; int n =10; 請計算:sizeof(str)=              

原创 Linux對spi總線支持(Linux中Documentation對SPI總線介紹)

什麼是SPI?     “串行外圍接口”是一個同步的四線制串行線,用於連接微控制器和傳感器、存儲器及外圍設備。三條信號線持有時鐘信號(SCLK,經常在10MHz左右)和並行數據線帶有“主出,從進(MOSI)”或是“主進,從出(MISO)

原创 makefile中解決Makefile:XX:missing separator. Stop.問題

出現這樣的提示就表示Makefile中有不可識別的命令行,make在讀取Makefile過程中不能解析其中包含的內容。其中XX表示提示的錯誤在Makefile中所出現的行數。 GNU make在讀取Makefile時根據各種分隔符(:,

原创 Linux 進程學習(一)

知識點1 進程概念 進程是操作系統最核心的概念之一。進程簡單而言是操作系統中運行的程序,它是操作系統資源管理的最小單元。進程是一個動態的實體,是程序的一次執行過程。進程和程序的區別在於:進程是動態的,程序是靜態的,進程是運行中的程序,而程

原创 CPU尋址範圍

一、尋址空間          尋址空間一般指的是CPU對於內存尋址的能力。通俗地說,就是能最多用到多少內存的一個問題。          數據在存儲器(RAM)中存放是有規律的 ,CPU在運算的時候需要把數據提取出來,這就需要知道

原创 make 出現問題集錦

問題一  Makefile:1: *** missing separator.  Stop.  對makefile中命令行進行修改,命令行必須以TAB開始纔可,對此修改後,錯誤解決。

原创 C語言中volatile關鍵字的作用

一.前言 1.編譯器優化介紹: 由於內存訪問速度遠不及CPU處理速度,爲提高機器整體性能,在硬件上引入硬件高速緩存Cache,加速對內存的訪問。另外在現代CPU中指令的執行並不一定嚴格按照順序執行,沒有相關性的指令可以亂序執行,以充分