原创 SRAM/DRAM,PROM/EPROM/EEPROM,NOR/NAND FLASH區別

RAM / ROM 存儲器   ROM和RAM指的都是半導體存儲器,ROM是Read Only Memory的縮寫,RAM是Random Access Memory的縮寫。ROM在系統停止供電的時候仍然可以保持數據,而RAM通常都是在掉電

原创 SPI、I2C、UART三種串行總線協議的區別

第一個區別當然是名字: SPI(Serial Peripheral Interface:串行外設接口); I2C(INTER IC BUS:意爲IC之間總線) UART(Universal Asynchronous Receiver

原创 關於ARM的22個常用概念介紹

導讀: 本文簡要介紹了ARM的22個常用的概念。  1.ARM中一些常見英文縮寫解釋     MSB:最高有效位;   LSB:最低有效位;   AHB:先進的高性能總線;   VPB:連接片內外設功能的VLSI外設總線;   EMC:外部

原创 函數指針和指針函數

  【函數指針】       在程序運行中,函數代碼是程序的算法指令部分,它們和數組一樣也佔用存儲空間,都有相應的地址。可以使用指針變量指向數組的首地址,也可以使用指針變量指向函數代碼的首地址,指向函

原创 中斷

  /* *****************************************************************************                  1.申請和釋放中斷     ******

原创 內核定時器編程

 在Linux設備驅動編程中,可以利用Linux內核中提供的一組函數和數據結構來完成定時出發或完成某週期性的事物。這組函數和  數據結構使得驅動工程師多數情況下不用關心具體的軟件定時器究竟對應着怎樣的內核和硬件行爲。      Linu

原创 volatile的作用

     一個定義爲volatile的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設這個變量的值了。精確地說就是,優化器在用到這個變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器裏的備份。下面是volati

原创 從LED原理分析用恆流供電還是恆壓供電

導讀: 有人說,因爲LED是恆流器件,所以要用恆流源供電;有人說,採用市電供電時就應該採用恆壓電源供電,採用蓄電池供電時,就應該採用恆流電源供電。至於爲什麼這樣要求,似乎誰也說不明白。 關鍵詞:LED伏安特性   現在有關這個問題有很多各種

原创 AT91Bootstrap1.16第一階段彙編程序詳解

以下是bootstrap的啓動過程,主要分爲兩個步驟: 第一階段:彙編程序,主要負責最低層的硬件初始化 第二階段:c程序,主要負責SDRAM初始化,Dataflash的拷貝工作,完成程序在SDRAM中運行的準備工作   第一階段主要是在

原创 我的友情鏈接

51CTO博客開發

原创 typedef 之 函數指針

typedef int ( *PFunc)(const char*); static PFunc addFunc= NULL; hDll = ::dlopen(dllName, RTLD_LAZY); // 獲得dll句柄 ad

原创 判斷一個CPU大小端模式

    請寫一個C函數,若處理器是Big_endian的,則返回0;若是Little_endian的,則返回1 解答: int checkCPU()   {    union w{    int a;   char b;   } c;   

原创 C/C++中Static的作用詳述

  在C語言中,static的字面意思很容易把我們導入歧途,其實它的作用有三條。 (1)先來介紹它的第一條也是最重要的一條:隱藏。 當我們同時編譯多個文件時,所有未加

原创 C語言面試題大彙總之華爲面試題

1、局部變量能否和全局變量重名?   答:能,局部會屏蔽全局。要用全局變量,需要使用"::"   局部變量可以與全局變量同名,在函數內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對於有些編譯器而言,在同一個函數內可以定義多個

原创 AT91Bootstrap1.16源碼中連接腳本文件(elf32-littlearm.lds)分析

該連接文件在AT91Bootstrap1.16\Bootstrap-v1.16目錄下   elf32-littlearm.lds   連接腳本文件主要用於規定如何把輸入文件內的section放入輸出文件內,並控制輸出文件內各部分在程序地