從今天開始stm32先告一段落了,開始學(xué)習(xí)ARM920T架構(gòu)三星公司的S3C2440,今天是頭一天學(xué)習(xí),感覺難度要比STM32的難度大得多,主要還是涉及到操作系統(tǒng)就腦袋疼,和學(xué)習(xí)51和stm32時的步驟一樣,第一次都是先從IO輸出學(xué)起,與stm32的IO相比,S3C2440的IO功能起碼現(xiàn)在感覺不如stm32,和stm32一對比stm32若要驅(qū)動IO,必須先要開啟對應(yīng)的IO時鐘,而且輸出速率可為10M 3M50M,并可以配置為4種輸出模式,三種輸入模式,并且每個IO都能夠用來產(chǎn)生外部中斷,相比之下S3C2440的IO共130個,使用之前并不需要開啟對應(yīng)的IO時鐘,從低功耗來說,stm32簡直太強(qiáng)大了,而且只有24個管腳能產(chǎn)生外部中斷。
S3C2440的GPIOA管腳比較特別,主要是它只有輸出模式,沒有GPAUP這個寄存器
S3C2440需要自己動手來寫啟動代碼,必須要用匯編完成,c語言不能直接操作寄存器,啟動文件包括軟件初始化和硬件初始化兩個部分,軟件部分主要是:
1.設(shè)置堆棧
2.設(shè)置main的返回地址
3.調(diào)用main
4.清理工作
硬件部分是:
1.關(guān)閉WATCHDOG
2.時鐘初始化(S3C2440的時鐘最大達(dá)400M,上電時為12M)
3.SDRAM初始化
2440有兩種啟動方式,一是NAND啟動,還有一種是NOR啟動,兩種方式的啟動時不一樣的:
NAND啟動方式:1.NAND的前4K拷貝到SRAM
2.從地址0開始執(zhí)行
NOR啟動方式:1.0地址指向NOR FLASH
2.從0地址開始執(zhí)行
NOR的訪問形勢和內(nèi)存訪問類似,而NAND就不一樣了,NOR可以向內(nèi)存一樣讀數(shù)據(jù),但是不可以向內(nèi)存一樣寫數(shù)據(jù),寫入一個數(shù)據(jù)之前一定要發(fā)送擦除指令。
啟動文件如下:
start:
LDR R0,=0X53000000
MOV R1,0x0
STR R1,[R0]
LDR SP,=1024*4
BL MAIN
halt loop:
b halt_loop
|