亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 44binit.txt

?? 44Binit.s注釋 GET option.s 相當于c語言中的#i nclude "option.s" GET memcfg.s Interrupt Control 聲明一些
?? TXT
字號:
44Binit.s注釋
; * NAME : 44BINIT.S * 
; * Version : 10.JAn.2003 * 
; * Description: * 
; * C start up codes * 
; * Configure memory, Initialize ISR ,stacks * 
; * Initialize C-variables * 
; * Fill zeros into zero-initialized C-variables * 
; ******************************************************* 

GET option.s ;相當于c語言中的#i nclude "option.s" 
GET memcfg.s 

;Interrupt Control 
;聲明一些符號常量,這些符號常量和地址相應寄存器的地址對應 
INTPND EQU 0x01e00004 ;指示中斷請求狀態寄存器 每一位代變一種中斷請求具體表一種中斷請參考44b0 spec 
INTMOD EQU 0x01e00008 ;中斷模式寄存器 有兩種中斷模式對應位為1代表fip mode 0代表riq mode 
INTMSK EQU 0x01e0000c ;確定哪個中斷源被屏蔽 屏蔽的中斷源將不被服務 
I_ISPR EQU 0x01e00020 ;中斷服務掛起寄存器 
I_CMST EQU 0x01e0001c ;當前主寄存器irq優先級 

;Watchdog timer 
WTCON EQU 0x01d30000 ;看門狗定時器控制寄存器 

;Clock Controller 
PLLCON EQU 0x01d80000 ;pll控制寄存器 
CLKCON EQU 0x01d80004 ;時鐘控制寄存器 
LOCKTIME EQU 0x01d8000c ;鎖定時間計數值寄存器 

;Memory Controller 
REFRESH EQU 0x01c80024 ;Dram/sdram刷新控制寄存器 
;下面是對arm處理器模式寄存器對應值的常數定義,arm處理器中有一個CPSR程序狀態寄存器 它的后五位決定目前的處理器模式 
;Pre-defined constants 
USERMODE EQU 0x10 ;0b10000用戶模式 
FIQMODE EQU 0x11 ;0b10001FIQ模式 
IRQMODE EQU 0x12 ;0b10010IRQ模式 
SVCMODE EQU 0x13 ;0b10011管理模式 
ABORTMODE EQU 0x17 ;0b10111中止模式 
UNDEFMODE EQU 0x1b ;0b11011未定義 
MODEMASK EQU 0x1f ;0b11111系統模式 
NOINT EQU 0xc0 ; 

;check if tasm.exe is used. 
;arm處理器有兩種工作狀態 1.arm:32位 這種工作狀態下執行字對準的arm指令 2.Thumb:16位 這種工作狀態執行半字對準的Thumb指令 
;因為處理器分為16位 32位兩種工作狀態 程序的編譯器也是分16位和32兩種編譯方式 所以下面的程序用于根據處理器工作狀態確定編譯器編譯方式 
;code16偽指令指示匯編編譯器后面的指令為16位的thumb指令 
;code32偽指令指示匯編編譯器后面的指令為32位的arm指令 
;這段是為了統一目前的處理器工作狀態和軟件編譯方式(16位編譯環境使用tasm.exe譯) 
GBLL THUMBCODE ;設置一個全局變量
[ {CONFIG} = 16 ;if config==16 這里表示你的目前處于領先地16位編譯方式 
THUMBCODE SETL {TRUE} ;設置THUMBCODE 為 true 
CODE32 ;轉入32位編譯模式 
| 次 ;else 
THUMBCODE SETL {FALSE} ;設置THUMBCODE 為 false 
] 

[ THUMBCODE ;if THUMBCODE==TRUE 
CODE32 ;for start-up code for Thumb mode;轉入32位編譯方式 
] 
;注意下面這段程序是個宏定義 很多人對這段程序不理解 我再次強調這是一個宏定義 所以大家要注意了下面包含的HandlerXXX HANDLER HandleXXX將都被下面這段程序展開 
;這段程序用于把中斷服務程序的首地址裝載到pc中,有人稱之為“加載程序”。 
;本初始化程序定義了一個數據區(在文件最后),34個字空間,存放相應中斷服務程序的首地址。每個字空間都有一個標號,以Handle***命名。 
;在向量中斷模式下使用“加載程序”來執行中斷服務程序。 
;這里就必須講一下向量中斷模式和非向量中斷模式的概念 
;向量中斷模式是當cpu讀取位于0x18處的IRQ中斷指令的時候,系統自動讀取對應于該中斷源確定地址上的指令取代0x18處的指令,通過跳轉指令系統就直接跳轉到對應地址 
;函數中 節省了中斷處理時間提高了中斷處理速度標 例如 ADC中斷的向量地址為0xC0,則在0xC0處放如下代碼:ldr PC,=HandlerADC 當ADC中斷產生的時候系統會 
;自動跳轉到HandlerADC函數中 
;非向量中斷模式處理方式是一種傳統的中斷處理方法,當系統產生中斷的時候,系統將interrupt pending寄存器中對應標志位置位 然后跳轉到位于0x18處的統一中斷 
;函數中 該函數通過讀取interrupt pending寄存器中對應標志位 來判斷中斷源 并根據優先級關系再跳到對應中斷源的處理代碼中 
MACRO 
$HandlerLabel HANDLER $HandleLabel 

$HandlerLabel 
sub sp,sp,#4 ;decrement sp(to store jump address) 
stmfd sp!,{r0} ;PUSH the work register to stack 
;將要使用的r0寄存器入棧 
ldr r0,=$HandleLabel;load the address of HandleXXX to r0 
ldr r0,[r0] ;
str r0,[sp,#4] ;store the contents(ISR) of HandleXXX to stack 
;將對應的中斷函數首地址入棧 
ldmfd sp!,{r0,pc} ;POP the work register and pc(jump to ISR) 
;將中斷函數首地址出棧 放入程序指針中 系統將跳轉到對應中斷處理函數 
MEND 
;一個arm由RO,RW,ZI三個斷組成 其中RO為代碼段,RW是已經初始化的全局變量,ZI是未初始化的全局變量(對于GNU工具 對應的概念是TEXT ,DATA,BSS)bootloader 
;bootloader要將RW段復制到ram中并將ZI段清零 編譯器使用下列段來記錄各段的起始和結束地址 
; |Image$$RO$$Base| ; RO段起始地址 
; |Image$$RO$$Limit| ; RO段結束地址加1 
; |Image$$RW$$Base| ; RW段起始地址 
; |Image$$RW$$Limit| ; RW段結束地址加1 
; |Image$$ZI$$Base| ; ZI段起始地址 
; |Image$$ZI$$Limit| ; ZI段結束地址加1 
;這些標號的值是通過編譯器的設定來確定的 如編譯軟件中對ro-base和rw-base的設定,例如 ro-base=0xc000000 rw-base=0xc5f0000 


IMPORT |Image$$RO$$Limit| ; End of ROM code (=start of ROM data) 
IMPORT |Image$$RW$$Base| ; Base of RAM to initialise 
IMPORT |Image$$ZI$$Base| ; Base and limit of area 
IMPORT |Image$$ZI$$Limit| ; to zero initialise 

IMPORT Main ; The main entry of mon program 
;下面為代碼段 
AREA Init,CODE,READONLY 

;異常中斷矢量表(每個表項占4個字節) 下面是中斷向量表 一旦系統運行時有中斷發生 即使移植了操作系統 如linux 處理器已經把控制權交給了操作系統 一旦發生中斷 處理器還是會跳轉到從0x0開始 
;中斷向量表中某個中斷表項(依據中斷類型)開始執行 
;具體中斷向量布局請參考s3c44b0 spec 例如 adc中斷向量為 0x000000c0下面對應表中第49項位置 向量地址0x0+4*(49-1)=0x000000c0 
ENTRY 
;扳子上電和復位后 程序開始從位于0x0處開始執行硬件剛剛上電復位后 程序從這里開始執行跳轉到標號為ResetHandler處執行 
b ResetHandler ;for debug 
b HandlerUndef ;handlerUndef 
b HandlerSWI ;SWI interrupt handler 
b HandlerPabort ;handlerPAbort 
b HandlerDabort ;handlerDAbort 
b . ;handlerReserved 
b HandlerIRQ 
b HandlerFIQ 
;***IMPORTANT NOTE*** 
;If the H/W vectored interrutp mode is enabled, The above two instructions should 
;be changed like below, to work-around with H/W bug of S3C44B0X interrupt controler. 
; b HandlerIRQ -> subs pc,lr,#4 
; b HandlerIRQ -> subs pc,lr,#4 

VECTOR_BRANCH 
ldr pc,=HandlerEINT0 ;mGA H/W interrupt vector table 
ldr pc,=HandlerEINT1 ; 
ldr pc,=HandlerEINT2 ; 
ldr pc,=HandlerEINT3 ; 
ldr pc,=HandlerEINT4567 ; 
ldr pc,=HandlerTICK ;mGA 
b . 
b . 
ldr pc,=HandlerZDMA0 ;mGB 
ldr pc,=HandlerZDMA1 ; 
ldr pc,=HandlerBDMA0 ; 
ldr pc,=HandlerBDMA1 ; 
ldr pc,=HandlerWDT ; 
ldr pc,=HandlerUERR01 ;mGB 
b . 
b . 
ldr pc,=HandlerTIMER0 ;mGC 
ldr pc,=HandlerTIMER1 ; 
ldr pc,=HandlerTIMER2 ; 
ldr pc,=HandlerTIMER3 ; 
ldr pc,=HandlerTIMER4 ; 
ldr pc,=HandlerTIMER5 ;mGC 
b . 
b . 
ldr pc,=HandlerURXD0 ;mGD 
ldr pc,=HandlerURXD1 ; 
ldr pc,=HandlerIIC ; 
ldr pc,=HandlerSIO ; 
ldr pc,=HandlerUTXD0 ; 
ldr pc,=HandlerUTXD1 ;mGD 
b . 
b . 
ldr pc,=HandlerRTC ;mGKA 
b . ; 
b . ; 
b . ; 
b . ; 
b . ;mGKA 
b . 
b . 
ldr pc,=HandlerADC ;mGKB 
b . ; 
b . ; 
b . ; 
b . ; 
b . ;mGKB 
b . 
b . 
;0xe0=EnterPWDN 
ldr pc,=EnterPWDN 

LTORG 
;下面是具體的中斷處理函數跳轉的宏,通過上面的$HandlerLabel的宏定義展開后跳轉到對應的中斷處理函數(對于向量中斷) 
HandlerFIQ HANDLER HandleFIQ 
HandlerIRQ HANDLER HandleIRQ 
HandlerUndef HANDLER HandleUndef 
HandlerSWI HANDLER HandleSWI 
HandlerDabort HANDLER HandleDabort 
HandlerPabort HANDLER HandlePabort 

HandlerADC HANDLER HandleADC 
HandlerRTC HANDLER HandleRTC 
HandlerUTXD1 HANDLER HandleUTXD1 
HandlerUTXD0 HANDLER HandleUTXD0 
HandlerSIO HANDLER HandleSIO 
HandlerIIC HANDLER HandleIIC 
HandlerURXD1 HANDLER HandleURXD1 
HandlerURXD0 HANDLER HandleURXD0 
HandlerTIMER5 HANDLER HandleTIMER5 
HandlerTIMER4 HANDLER HandleTIMER4 
HandlerTIMER3 HANDLER HandleTIMER3 
HandlerTIMER2 HANDLER HandleTIMER2 
HandlerTIMER1 HANDLER HandleTIMER1 
HandlerTIMER0 HANDLER HandleTIMER0 
HandlerUERR01 HANDLER HandleUERR01 
HandlerWDT HANDLER HandleWDT 
HandlerBDMA1 HANDLER HandleBDMA1 
HandlerBDMA0 HANDLER HandleBDMA0 
HandlerZDMA1 HANDLER HandleZDMA1 
HandlerZDMA0 HANDLER HandleZDMA0 
HandlerTICK HANDLER HandleTICK 
HandlerEINT4567 HANDLER HandleEINT4567 
HandlerEINT3 HANDLER HandleEINT3 
HandlerEINT2 HANDLER HandleEINT2 
HandlerEINT1 HANDLER HandleEINT1 
HandlerEINT0 HANDLER HandleEINT0 


;One of the following two routines can be used for non-vectored interrupt. 
;下面這段程序是用來處理非向量中斷,具體判斷I_ISPR中各位是否置1 置1表示目前此中斷等待響應(每次只能有一位置1),從最高優先級中斷位開始判斷,檢測到等待服務 
;中斷就將pc置為中斷服務函數首地址 
IsrIRQ ;using I_ISPR register. 
sub sp,sp,#4 ;reserved for PC 
stmfd sp!,{r8-r9} 

;IMPORTANT CAUTION 
;if I_ISPC isn't used properly, I_ISPR can be 0 in this routine. 

ldr r9,=I_ISPR 
ldr r9,[r9] 
mov r8,#0x0 
0 
movs r9,r9,lsr #1 
bcs %F1 
add r8,r8,#4 
b %B0 

1 
ldr r9,=HandleADC 
add r9,r9,r8 
ldr r9,[r9] 
str r9,[sp,#8] 
ldmfd sp!,{r8-r9,pc} 


;**************************************************** 
;* START * 
;**************************************************** 
;扳子上電和復位后 程序開始從位于0x0執行b ResetHandler 程序從跳轉到這里執行 
;板子上電復位后 執行幾個步驟這里通過標號在注釋中加1,2,3....標示 標號表示執行順序 
;1.禁止看門狗 屏蔽所有中斷 
ResetHandler 
ldr r0,=WTCON ;watch dog disable 
ldr r1,=0x0 
str r1,[r0] 

ldr r0,=INTMSK 
ldr r1,=0x07ffffff ;all interrupt disable 
str r1,[r0] 
;2.根據工作頻率設置pll 
;這里介紹一下計算公式 
;Fpllo=(m*Fin)/(p*2^s) 
;m=MDIV+8,p=PDIV+2,s=SDIV 
;Fpllo必須大于20Mhz小于66Mhz 
;Fpllo*2^s必須小于170Mhz 
;如下面的PLLCON設定中的M_DIV P_DIV S_DIV是取自option.h中 
;#elif (MCLK==40000000) 
;#define PLL_M (0x48) 
;#define PLL_P (0x3) 
;#define PLL_S (0x2) 
;所以m=MDIV+8=80,p=PDIV+2=5,s=SDIV=2 
;硬件使用晶振為10Mhz,即Fin=10Mhz 
;Fpllo=80*10/5*2^2=40Mhz 

;**************************************************** 
;* Set clock control registers * 
;**************************************************** 
ldr r0,=LOCKTIME 
ldr r1,=800 ; count = t_lock * Fin (t_lock=200us, Fin=4MHz) = 800 
str r1,[r0] 

[ PLLONSTART 
ldr r0,=PLLCON ;temporary setting of PLL 
ldr r1,=((M_DIV<<12)+(P_DIV<<4)+S_DIV) ;Fin=10MHz,Fout=40MHz 
str r1,[r0] 
] 

ldr r0,=CLKCON 
ldr r1,=0x7ff8 ;All unit block CLK enable 
str r1,[r0] 
;3.置存儲相關寄存器的程序 
;這是設置SDRAM,flash ROM 存儲器連接和工作時序的程序,片選定義的程序 
;SMRDATA map在下面的程序中定義 
;SMRDATA中涉及的值請參考memcfg.s程序 
;具體寄存器各位含義請參考s3c44b0 spec 

;**************************************************** 
;* Set memory control registers * 
;**************************************************** 
ldr r0,=SMRDATA 
ldmia r0,{r1-r13} 
ldr r0,=0x01c80000 ;BWSCON Address 
stmia r0,{r1-r13}  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品国产91性色tv | 久久精品久久久精品美女| 日本韩国欧美三级| 亚洲精品视频免费观看| 欧美日韩一区国产| 日本va欧美va精品| 精品少妇一区二区三区在线视频 | 一区二区日韩av| 欧美麻豆精品久久久久久| 久久综合综合久久综合| 亚洲免费观看高清完整版在线| 亚洲午夜免费视频| 日本中文在线一区| 国产综合久久久久影院| 欧美一区二区在线播放| 蜜臀久久99精品久久久久宅男| 久久视频一区二区| av电影在线不卡| 午夜私人影院久久久久| 欧美变态口味重另类| 99久久精品99国产精品| 午夜精品福利一区二区蜜股av| 久久综合久久综合九色| 色综合一区二区| 老鸭窝一区二区久久精品| 自拍偷自拍亚洲精品播放| 欧美日韩一区二区三区免费看| 国产一区二区三区不卡在线观看 | 欧美色偷偷大香| 激情国产一区二区| 亚洲国产欧美在线人成| 久久久午夜精品理论片中文字幕| 91福利在线看| 国产sm精品调教视频网站| 亚洲午夜影视影院在线观看| 26uuu欧美日本| 欧美日韩国产影片| www.激情成人| 国产精品一区二区三区99| 视频在线在亚洲| 国产精品美女www爽爽爽| 欧美一区二区三区免费视频| 99这里只有久久精品视频| 日本午夜一区二区| 亚洲蜜臀av乱码久久精品| 久久久三级国产网站| 欧美乱熟臀69xxxxxx| 91污在线观看| 国产成人高清视频| 久久99精品国产91久久来源| 亚洲成人激情av| 亚洲免费视频成人| 欧美激情中文字幕一区二区| 精品国产亚洲在线| 91精品国产手机| 欧美在线看片a免费观看| av网站一区二区三区| 国产999精品久久久久久| 九九热在线视频观看这里只有精品| 亚洲一二三四区| 中文字幕一区二区三区不卡| 国产精品乱人伦中文| 国产欧美日韩视频一区二区 | 91麻豆精品久久久久蜜臀| 91久久精品网| 欧美专区亚洲专区| 91国偷自产一区二区开放时间 | 久久综合资源网| 日韩欧美亚洲国产精品字幕久久久| 欧美性色黄大片| 日本韩国一区二区三区| 91精品福利视频| 在线欧美日韩国产| 91黄色免费观看| 欧美日本国产一区| 欧美肥妇bbw| 欧美一区二区美女| 欧美成人伊人久久综合网| 日韩精品一区国产麻豆| 欧美日韩国产影片| 日韩午夜电影av| 久久影音资源网| 国产亚洲精品超碰| 中文成人av在线| 亚洲私人黄色宅男| 一区二区三区 在线观看视频| 一区二区在线免费| 天堂av在线一区| 九色|91porny| 风间由美中文字幕在线看视频国产欧美| 国产一区二区日韩精品| 国产成人av电影在线| 91影视在线播放| 欧美精品一级二级| 欧美成人国产一区二区| 欧美激情综合五月色丁香| 亚洲乱码国产乱码精品精98午夜 | 极品瑜伽女神91| 国产美女久久久久| 99久久久无码国产精品| 欧美亚洲国产bt| 精品三级在线观看| 中文字幕在线免费不卡| 亚洲午夜久久久| 国产在线视频不卡二| 97精品电影院| 欧美一卡二卡在线| 国产嫩草影院久久久久| 一区二区三区精品视频在线| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产激情91久久精品导航| 日本韩国欧美一区| 精品成人佐山爱一区二区| 日韩美女视频一区| 久久精品噜噜噜成人av农村| av一区二区三区在线| 在线成人av网站| 亚洲国产成人一区二区三区| 香蕉久久夜色精品国产使用方法 | 久久99久久99小草精品免视看| 成人免费看片app下载| 欧美日韩国产综合一区二区三区 | 色综合久久久久网| 精品乱码亚洲一区二区不卡| 亚洲精品免费在线播放| 久久疯狂做爰流白浆xx| 色偷偷88欧美精品久久久| 欧美精品一区二区三| 亚洲福利电影网| 不卡的av中国片| 26uuu久久天堂性欧美| 亚洲一二三四区不卡| 成人综合日日夜夜| 日韩美女视频在线| 亚洲国产一区视频| 99国产精品一区| 日韩美一区二区三区| 性欧美大战久久久久久久久| 99久久综合99久久综合网站| 精品国产免费一区二区三区四区 | 久久久影视传媒| 日韩高清不卡一区| 91黄视频在线| 亚洲欧美日韩国产中文在线| 国产成人在线视频免费播放| 日韩一区二区在线播放| 亚洲成av人片在线| www.日本不卡| 欧美韩国日本一区| 国产一区二区三区在线观看免费| 欧美喷水一区二区| 亚洲成人资源在线| 欧美伊人久久大香线蕉综合69| 中文字幕视频一区| 风间由美中文字幕在线看视频国产欧美| 日韩精品中文字幕在线一区| 秋霞影院一区二区| 欧美一区二区三区播放老司机| 亚洲一卡二卡三卡四卡五卡| 色综合久久久久久久久久久| 日韩一区欧美一区| 99久久亚洲一区二区三区青草| 中文字幕精品一区| av激情亚洲男人天堂| 亚洲色图一区二区三区| 99精品一区二区| 亚洲美女免费在线| 在线免费观看日韩欧美| 亚洲综合视频网| 欧美色图片你懂的| 日韩av电影免费观看高清完整版| 5566中文字幕一区二区电影| 日本怡春院一区二区| 91精品欧美福利在线观看| 麻豆91在线播放免费| 久久久久久免费毛片精品| 韩国精品主播一区二区在线观看| 久久亚洲一区二区三区明星换脸| 国产精品香蕉一区二区三区| 亚洲国产成人在线| 在线亚洲高清视频| 五月婷婷综合网| 精品国产一区二区在线观看| 国产精品自拍在线| 中文字幕一区二区三中文字幕| 99久久精品国产麻豆演员表| 亚洲综合色在线| 欧美成人精精品一区二区频| 粉嫩绯色av一区二区在线观看| 综合色中文字幕| 欧美精品99久久久**| 激情偷乱视频一区二区三区| 国产精品伦理在线| 在线观看av一区| 奇米影视在线99精品| 日本一区二区三区四区| 欧美三片在线视频观看 | 青青草97国产精品免费观看无弹窗版| 日韩免费观看高清完整版| 懂色av中文字幕一区二区三区|