2440启动文件分析
頭文件分為標準頭文件和自定義頭文件,尖括號內對應標準頭文件,標準頭文件是按DOC系統的環境變量include所指定的目錄順序搜索;雙引號對應的為自定義頭文件,搜索時,先在當前目錄中搜索,其次,按環境變量include所指定的目錄順序搜索。
1、匯編文件:
slib.s主要功能:實現中斷、禁止FIQ/IRQ、MMU Cache控制、TLB函數、處理器ID函數等。
SysInit.s主要功能:初始化系統,包括禁止看門狗、屏蔽中斷使能、設置PLL時鐘、初始化SDRAM等。
vector.s主要功能:異常中斷向量文件,包括程序的入口、中斷向量表、各模式堆棧初始化等。
2、C語言文件
control.c主要功能:定義處理器外圍函數,包括端口初始化函數、存儲器配置初始化、改變時鐘分頻器函數、設置PLL函數、串口初始化函數等。
utils.c:相關的量化函數定義等。
Main.c:整個工程的主文件,包括實現整個系統的初始化,系統時鐘初始化,設置Nand Flash的配置寄存器,GPIO的初始化,選擇串口0波特率,執行應用程序等。
MMU.c:MMU相關的控制函數,包括MMU初始化、MMU Cache清除以及改變MMU Cache狀態等。
3、頭文件
2440addr.h:定義2440寄存器的地址,包括存儲器寄存器地址、中斷向量地址、DMA地址、時鐘電源管理寄存器地址、LCD控制寄存器地址、Nand Flash地址、UART、PWM定時器、USB Device、WatchDog、IIC、IIS、I/O端口、ADC、SPI、SD卡、ISR寄存器地址等。
2440slib.h:定義相關的MMU函數。
board.h:? 定義板卡外圍器件設備函數。
config.h:? 定義相關函數設置。
def.h:??? 定義相關量的參數。
mmu.h:?? 定義MMU相關參數。
utils.h:?? 定義存儲器相關函數。
4、匯編文件的頭文件
2440addr.inc:定義2440寄存器的地址,包括存儲器寄存器地址、中斷向量地址、DMA地址、時鐘電源管理寄存器地址、LCD控制寄存器地址、Nand Flash地址、UART、PWM定時器、USB Device、WatchDog、IIC、IIS、I/O端口、ADC、SPI、SD卡、ISR寄存器地址等。
option.inc:定義配置PLL和總線寬度寄存器的位。
memcfg.inc:定義存儲器的位定義。
5、.h文件和.c文件
H文件和C文件怎么用呢?一般來說,H文件中是declare(聲明),C文件中是define(定義)。因為C文件要編譯成庫文件(Windows下是.obj/.lib,UNIX下是.o/.a),如果別人要使用你的函數,那么就要引用你的H文件,所以,H文件中一般是變量、宏定義、枚舉、結構和函數接口的聲明,就像一個接口說明文件一樣。而C文件則是實現細節。
?
H文件和C文件最大的用處就是聲明和實現分開。這個特性應該是公認的了,但我仍然看到有些人喜歡把函數寫在H文件中,這種習慣很不好。(如果是C++話,對于其模板函數,在VC中只有把實現和聲明都寫在一個文件中,因為VC不支持export關鍵字)。而且,如果在H文件中寫上函數的實現,你還得在makefile中把頭文件的依賴關系也加上去,這個就會讓你的makefile很不規范。最后,有一個最需要注意的地方就是:帶初始化的全局變量不要放在H文件中!
總結
以上是生活随笔為你收集整理的2440启动文件分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARM微处理器的体系结构
- 下一篇: malloc源码