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

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

?? 44b0init.s

?? 44B0啟動原代碼
?? S
?? 第 1 頁 / 共 2 頁
字號:
;-----------------------------------------------------------------------------------------------------------------
 
; *******************************************************
; * NAME    : 44BINIT.S         *
; * Version : 10.April.2000        *
; * Description:          *
; * C start up codes         *
; * Configure memory, Initialize ISR ,stacks   *
; * Initialize C-variables        *
; * Fill zeros into zero-initialized C-variables  *
; *******************************************************
 
    ;GET option.a
    ;GET memcfg.a
    GET memcfg.s
;Memory Area
;GCS6 64M 16bit(8MB) DRAM/SDRAM(0xc000000-0xc7fffff)
;APP    RAM=0xc000000~0xc7effff 
;44BMON RAM=0xc7f0000-0xc7fffff
;STACK    =0xc7ffa00     
;Interrupt Control
INTPND     EQU 0x01e00004  ;指示中斷請求狀態寄存器,每一位代變一種中斷請求
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刷新控制寄存器
;BDMA destination register
BDIDES0     EQU 0x1f80008  ;???DMA???
BDIDES1     EQU 0x1f80028  ;???DMA???
;Pre-defined constants
USERMODE    EQU 0x10   ;0b10000 用戶模式
FIQMODE     EQU 0x11   ;0b10001 FIQ模式
IRQMODE     EQU 0x12   ;0b10010 IRQ模式
SVCMODE     EQU 0x13   ;0b10011 管理模式
ABORTMODE   EQU 0x17   ;0b10111 中止模式
UNDEFMODE   EQU 0x1b   ;0b11011 未定義
MODEMASK    EQU 0x1f   ;0b11111 mode mask
NOINT     EQU 0xc0   ;0b1100 0000 ???關中斷???
;=========================================================================================================================
;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    ;global logical variable, init. to {false}
    [ {CONFIG} = 16      ;[=if,{CONFIG}:build-in variable defined by ARM assembler,16=assembing Thumbcode.
THUMBCODE SETL {TRUE}   ;SETL:set the logic variable
    CODE32               ;changing from Thumb state to Arm state
    |                    ;|=else
THUMBCODE SETL {FALSE}
    ]                    ;]=endif
    [ THUMBCODE
    CODE32               ;for start-up code for Thumb mode???
    ]
;=========================================================================================================================
;注意下面這段程序是個宏定義,下面包含的HandlerXXX HANDLER HandleXXX將都被下面這段程序展開
;這段程序用于把中斷服務程序的首地址裝載到pc中
;本初始化程序定義了一個數據區(在文件最后),34個字空間,存放相應中斷服務程序的首地址。
;每個字空間都有一個標號,以Handle***命名。

    MACRO
$HandlerLabel HANDLER $HandleLabel
$HandlerLabel
    sub     sp,sp,#4     ;decrement sp(to store jump address)
    stmfd   sp!,{r0}     ;PUSH the work register to stack(lr does't push because it return to original address)
    ldr     r0,=$HandleLabel;load the address of HandleXXX to r0
    ldr     r0,[r0]         ;load the contents(service routine start address) of HandleXXX
    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要將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
    ENTRY 
;****************************************************************************
;異常表
 ;上電和復位后,程序開始從位于0x0處開始執行.程序從這里開始執行跳轉到標號為ResetHandler處執行
    b      ResetHandler                      ;    Reset        
    ldr    pc, =(_IRQ_BASEADDRESS + 0x04)    ;    HandlerUndef 
    ldr    pc, =(_IRQ_BASEADDRESS + 0x08)    ;    HandlerSWI 
    ldr    pc, =(_IRQ_BASEADDRESS + 0x0C)    ;    HandlerPabort 
    ldr    pc, =(_IRQ_BASEADDRESS + 0x10)    ;    HandlerDAbort
    ldr    pc, =(_IRQ_BASEADDRESS + 0x14)    ;    HandlerReserved
    ldr    pc, =(_IRQ_BASEADDRESS + 0x18)    ;    HandlerIRQ
    ldr    pc, =(_IRQ_BASEADDRESS + 0x1C)    ;    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 controller. 
 ; b HandlerIRQ  ->  subs pc,lr,#4
 ; b HandlerIRQ  ->  subs pc,lr,#4
;中斷表
 ;向量中斷模式和非向量中斷模式的概念
 ;A)  向量中斷模式是當cpu讀取位于0x18處的IRQ中斷指令的時候,系統自動讀取對應于該中斷源確定地址上的指令取代0x18處的指令,
 ;    通過跳轉指令系統就直接跳轉到對應地址.ADC中斷的向量地址為0xC0,則在0xC0處放如下代碼:ldr PC,=HandlerADC ,
 ;    當ADC中斷產生的時候系統會自動跳轉到HandlerADC函數中
 
 ;B)  向量中斷模式處理方式是一種傳統的中斷處理方法,當系統產生中斷的時候,系統將interrupt pending寄存器中對應標志位置位,
 ;    然后跳轉到位于0x18處的統一中斷函數中,該函數通過讀取interrupt pending寄存器中對應標志位,來判斷中斷源,
 ;    并根據優先級關系再跳到對應中斷源的處理代碼中
 
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
;=============================================================================================================================
;下面是具體的中斷處理函數跳轉的宏,通過上面的$HandlerLabel的宏定義展開后跳轉到對應的中斷處理函數(對于向量中斷)
    LTORG 
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
;*************************************************************************
;IRQ  ==the program put this phrase to 0xc000000
;???可能是給用戶程序使用的異常表???
ExceptionHanlderBegin
    b      .
    ldr    pc, MyHandleUndef            ;    HandlerUndef 
    ldr    pc, MyHandleSWI              ;    HandlerSWI 
    ldr    pc, MyHandlePabort           ;    HandlerPabort 
    ldr    pc, MyHandleDabort           ;    HandlerDAbort
    b .                                 ;    HandlerReserved
    ldr    pc, MyHandleIRQ              ;    HandlerIRQ
    ldr    pc, MyHandleFIQ              ;    HandlerFIQ
    
MyHandleUndef  DCD  HandleUndef         ;reserve a word(32bit)
MyHandleSWI    DCD  HandleSWI 
MyHandlePabort DCD  HandlePabort
MyHandleDabort DCD  HandleDabort
MyHandleIRQ    DCD  HandleIRQ
MyHandleFIQ    DCD  HandleFIQ
ExceptionHanlderEnd
;*************************************************************************
;============================================================================================================================
;以下兩個例程都可以用來處理非向量中斷
;具體判斷I_ISPR中各位是否置1 :置1表示目前此中斷等待響應(每次只能有一位置1),從最高優先級中斷位開始判斷,檢測到等待服務
;One of the following two routines can be used for non-vectored interrupt.
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,AddrISPR;=I_ISPR       <=> ldr r9,=I_ISPR 
    ldr     r9,[r9]
 cmp  r9, #0x0 ;If the IDLE mode work-around is used,
      ;r9 may be 0 sometimes.
 beq  %F2
    mov     r8,#0x0
0
    movs    r9,r9,lsr #1  ;將最低位送入C
    bcs     %F1
    add     r8,r8,#4   ;r8充當索引
    b     %B0
1
    ldr     r9,AddrHandleADC;=HandleADC 找到中斷表的首地址
    add     r9,r9,r8  ;首地址+索引 = 中斷服務地址
    ldr     r9,[r9]   ;加載中斷服務
    str     r9,[sp,#8]  ;放入事先預留的堆棧位置
    ldmfd   sp!,{r8-r9,pc} ;進入中斷服務
2
 ldmfd sp!,{r8-r9}  ;???IDLE MODE故不進行中斷服務,返回了事???
 add  sp,sp,#4
 subs pc,lr,#4
 
AddrISPR;There is no this phrases in original 44binit.s  為什么不直接寫ldr r9,=I_ISPR 和ldr r9,=HandleADC,而要這么做呢??? 
    DCD     I_ISPR
AddrHandleADC    
    DCD     HandleADC
IsrIRQEnd  
;****************************************************
;* START           *
;****************************************************
;上電和復位后 程序開始從位于0x0執行b ResetHandler 程序從跳轉到這里執行
ResetHandler
 ;1.禁止看門狗
    ldr     r0,=WTCON     ;watch dog disable 
    ldr     r1,=0x0   
    str     r1,[r0]
 ;屏蔽所有中斷 
    ldr     r0,=INTMSK
    ldr     r1,=0x07ffffff  ;all interrupt disable
    str     r1,[r0]
    ;****************************************************
    ;* Set clock control registers      *
    ;****************************************************
 ;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
    ldr r0,=LOCKTIME
    ldr r1,=0xfff
    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]
    ;****************************************

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大尺度视频在线观看| 精品免费国产二区三区| 国产日韩欧美综合在线| 久久精品国产在热久久| 亚洲精品一区二区三区福利 | 国产日韩精品久久久| 精品在线观看免费| 久久久一区二区三区捆绑**| 国产iv一区二区三区| 国产精品护士白丝一区av| 91美女福利视频| 亚洲风情在线资源站| 精品少妇一区二区三区视频免付费 | 亚洲男人的天堂av| 欧美伊人久久久久久久久影院| 亚洲二区在线观看| 日韩女优制服丝袜电影| 国产成人av资源| 亚洲激情自拍偷拍| 欧美一级欧美一级在线播放| 国产一区在线精品| 亚洲精品水蜜桃| 日韩欧美国产综合一区| aaa欧美色吧激情视频| 丝袜脚交一区二区| www国产成人| 色婷婷久久综合| 麻豆成人av在线| 最新国产成人在线观看| 欧美一区二区精品| 成人av电影观看| 婷婷开心激情综合| 国产欧美精品一区二区三区四区| 91搞黄在线观看| 国产成人av资源| 日韩国产成人精品| 国产精品素人一区二区| 欧美一区二视频| 91最新地址在线播放| 久久国产精品99久久久久久老狼| 国产精品久久久久久亚洲毛片 | 日日摸夜夜添夜夜添国产精品| 精品久久久久99| 色婷婷久久久综合中文字幕| 久久国产精品色婷婷| 亚洲一区影音先锋| 国产日本欧洲亚洲| 日韩精品中文字幕在线不卡尤物| 99精品视频一区二区三区| 久久99精品国产麻豆婷婷洗澡| 亚洲天天做日日做天天谢日日欢| 26uuu精品一区二区| 欧美三级一区二区| 99re热这里只有精品视频| 激情综合五月天| 午夜久久久久久久久久一区二区| ㊣最新国产の精品bt伙计久久| 欧美成人福利视频| 欧美高清视频一二三区| 99re66热这里只有精品3直播 | 成人午夜伦理影院| 蜜臀av性久久久久蜜臀av麻豆| 亚洲人精品午夜| 中文在线一区二区| 久久久777精品电影网影网| 91精品国产福利| 欧美视频一区二区三区四区 | 伊人婷婷欧美激情| 国产精品对白交换视频| 久久久久久9999| 欧美电影免费观看高清完整版在线观看 | 国产一区在线看| 国精产品一区一区三区mba视频| 亚洲福利一区二区| 一区二区三区产品免费精品久久75| 国产精品久久久久影院老司| 欧美国产综合一区二区| wwww国产精品欧美| 2021久久国产精品不只是精品| 精品少妇一区二区三区免费观看 | 国产成人免费xxxxxxxx| 国产综合色视频| 国产在线精品一区在线观看麻豆| 蜜臀91精品一区二区三区 | 色婷婷av一区二区三区gif| 972aa.com艺术欧美| 91丨九色丨国产丨porny| 91影视在线播放| 欧美网站大全在线观看| 欧美日韩在线播放一区| 欧美高清你懂得| 精品国偷自产国产一区| 欧美精品一区二区三区一线天视频 | 国产91精品入口| 99热这里都是精品| 91麻豆蜜桃一区二区三区| 色哟哟国产精品免费观看| 欧美吞精做爰啪啪高潮| 欧美剧情电影在线观看完整版免费励志电影| 欧美性xxxxxx少妇| 欧美丰满一区二区免费视频| 精品少妇一区二区三区在线播放 | 日本韩国欧美三级| 欧美高清视频一二三区| 精品卡一卡二卡三卡四在线| 久久久久久久久久电影| 亚洲欧洲另类国产综合| 亚洲成人免费av| 国产专区欧美精品| 99re亚洲国产精品| 91精品国产色综合久久不卡电影| 精品国产123| 国产精品久久久99| 五月天视频一区| 国产一区二区毛片| 色综合一个色综合| 日韩精品专区在线影院观看| 国产精品久久久久久久浪潮网站| 伊人一区二区三区| 精品影视av免费| 色综合欧美在线| 26uuu成人网一区二区三区| 亚洲精品中文字幕乱码三区 | 亚洲一区在线免费观看| 国内外成人在线视频| 色欧美乱欧美15图片| 欧美本精品男人aⅴ天堂| 亚洲男人天堂一区| 激情小说亚洲一区| 欧美日韩国产片| 中文字幕在线一区免费| 蜜臀久久久99精品久久久久久| 成人精品免费看| 欧美一区二区三区四区视频| 中文字幕在线免费不卡| 久久er99精品| 欧美日韩激情一区| 中文字幕制服丝袜一区二区三区| 久久 天天综合| 欧亚洲嫩模精品一区三区| 国产亚洲美州欧州综合国| 青青草国产成人av片免费| 99久久精品国产精品久久| 在线成人免费视频| 亚洲男人的天堂在线观看| 国产福利一区二区三区视频在线 | 欧美日韩亚洲综合一区二区三区| 久久久久久电影| 蜜臀av一区二区| 欧美日韩国产小视频在线观看| 综合久久综合久久| 国产69精品久久久久毛片| 日韩视频免费观看高清在线视频| 亚洲另类春色校园小说| jiyouzz国产精品久久| 国产欧美一区二区精品性色超碰| 日韩1区2区3区| 欧美久久一二区| 午夜久久久影院| 欧美三级电影一区| 国产精品羞羞答答xxdd| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产精品国模大尺度视频| 成人一区二区三区中文字幕| 2021国产精品久久精品| 蜜桃精品视频在线| 欧美一级一级性生活免费录像| 亚洲第一成人在线| 欧美浪妇xxxx高跟鞋交| 亚洲h动漫在线| 在线播放亚洲一区| 日韩专区一卡二卡| 欧美精品粉嫩高潮一区二区| 性做久久久久久免费观看 | 日韩va欧美va亚洲va久久| 欧美私模裸体表演在线观看| 亚洲一区二区av在线| 欧美日韩中文字幕精品| 日韩精品国产欧美| 欧美一区二区精品| 国产一区视频在线看| 国产午夜久久久久| 成人精品免费视频| 亚洲欧美另类小说| 欧美日韩一区二区三区免费看| 亚洲成人av中文| 日韩三级中文字幕| 国产馆精品极品| 亚洲摸摸操操av| 欧美一区二区在线免费播放| 六月丁香婷婷色狠狠久久| 久久久久久久综合色一本| 成人精品免费看| 亚洲自拍偷拍综合| 精品久久久久久久久久久久包黑料 | 丁香激情综合国产| 又紧又大又爽精品一区二区| 91麻豆精品国产综合久久久久久| 麻豆精品一二三| 国产精品成人在线观看|