www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀];=========================================;文件名稱:S3C244xInit.s;說 明:ARM內(nèi)核初始化;功能說明:ARM內(nèi)核初始化,并將RO、RW、ZI段的所有; 內(nèi)容全部復(fù)制到RAM當(dāng)中;開發(fā)平臺:RealView MDK 4;===============

;=========================================
;文件名稱:S3C244xInit.s
;說 明:ARM內(nèi)核初始化
;功能說明:ARM內(nèi)核初始化,并將RO、RW、ZI段的所有
; 內(nèi)容全部復(fù)制到RAM當(dāng)中

;開發(fā)平臺:RealView MDK 4
;=========================================

;IMPORT __use_no_semihosting_swi
GET MemConfig.inc
GET S3C244x.inc

_STACK_BASEADDRESS EQU 0x34000000

;管理模式堆棧棧頂?shù)刂?br/>SVCStack EQU _STACK_BASEADDRESS ;0x33ff5800 ~


;---------------------------------------------------------------------------

IMPORT __use_no_semihosting_swi
IMPORT |Image$$ER_ROM1$$RO$$Limit| ; 加載域中RO段起始地址
IMPORT |Image$$RW_RAM1$$RW$$Base| ; 加載域中RO結(jié)束地址加1,即加載域中RW段的起始地址
IMPORT |Image$$RW_RAM1$$ZI$$Base| ; 運(yùn)行域中RW段起始地址
IMPORT |Image$$RW_RAM1$$ZI$$Limit| ; 運(yùn)行域中RW段結(jié)束地址加1,即ZI段的起始地址

IMPORT Main ; The main entry of mon program

CODE32
PRESERVE8

AREA Init,CODE,READONLY

ENTRY

b ResetHandler
b . ;handler for Undefined mode
b . ;handler for SWI interrupt
b . ;handler for PAbort
b . ;handler for DAbort
b . ;reserved
b . ;handler for IRQ interrupt
b . ;handler for FIQ interrupt

;======================================================================================
; ENTRY
;======================================================================================
ResetHandler
;ARM重啟后,看門狗是默認(rèn)打開的
ldr r0,=WTCON ;禁止看門狗
ldr r1,=0x0
str r1,[r0]

ldr r0,=INTMSK
ldr r1,=0xffffffff ;所有中斷禁止
str r1,[r0]

ldr r0,=INTSUBMSK
ldr r1,=0x7ff ;所有子中斷禁止
str r1,[r0]


ldr r0,=GPGCON
ldr r1,=0xFD95ffba ; set output
str r1,[r0]
ldr r0,=GPGDAT ;set high.
ldr r1,=0x1000
str r1,[r0]
ldr r0,=GPGUP
ldr r1,=0xffff
str r1,[r0]

;//初始化PLL和時(shí)鐘
ldr r0,=LOCKTIME ;PLL重置延遲
ldr r1,=0xffffff ;由于配置或其他原因?qū)е轮黝l變化時(shí)
;PLL新的輸出需要一個(gè)穩(wěn)定過度的時(shí)間
str r1,[r0]


ldr r0,=CLKDIVN ;設(shè)置分頻數(shù)
ldr r1,=7
str r1,[r0]

;當(dāng)設(shè)置UPLLCON和MPLLCON時(shí),需要先設(shè)置UPLLCON
ldr r0,=UPLLCON ;USB時(shí)鐘
ldr r1,=((56<<12)+(2<<4)+2) ;Fin=12MHz,Fout=48MHz
str r1,[r0]
nop ; USB時(shí)鐘設(shè)置后需要7個(gè)時(shí)鐘延時(shí)
nop
nop
nop
nop
nop
nop
nop
nop

;Configure MPLL ;鎖相環(huán)控制寄存器
ldr r0,=MPLLCON
ldr r1,=((92<<12)+(1<<4)+1)
str r1,[r0]


; :::::::::::::::::::::::::::::::::::::::::::::
; BEGIN: Power Management
; - - - - - - - - - - - - - - - - - - - - - - -
;檢查復(fù)位狀態(tài),復(fù)位狀態(tài)含看門狗復(fù)位、喚醒復(fù)位、電源復(fù)位
ldr r1,=GSTATUS2
ldr r0,[r1]
tst r0,#0x2 ;檢測是否喚醒復(fù)位
beq %F4 ;若是喚醒復(fù)位,跳轉(zhuǎn)到4

ldr r1, =MISCCR
ldr r0, [r1]
bic r0, r0, #(3 << 17) ; SCLK0:0->SCLK, SCLK1:0->SCLK, SCKE:L->H
; 位清除指令,即將[17:18]位清零
str r0, [r1]

;設(shè)置內(nèi)存控制寄存器
;ldr r0, =SMRDATA ; 獲取SMRDATA地址
add r0, pc, #SMRDATA - (. + 8);r0=pc+&SMRDATA-pc-8
ldr r1, =BWSCON ; 獲取BWSCON地址
add r2, r0, #52 ; SMRDATA變量結(jié)束地址r2=SMRDATA地址+52
; 從下面定義SMRDATA變量中總共DCD了13個(gè)地址
; 52=13*4
loop10 ; 將SMRDATA地址上的內(nèi)容賦給BWSCON、BANKCON0-BANKCON7、BANKSIZE等寄存器
; 這個(gè)可以從后面SMRDATA的內(nèi)容可以獲得
ldr r3, [r0], #4 ; 讀取r0地址上的內(nèi)容賦給r3,并且r0=r0-4
str r3, [r1], #4 ; r3內(nèi)容寫入r1,并且r1=r1+4
cmp r2, r0 ; 比較r2(r0+52)、r0的內(nèi)容,總共比較14次
bne loop10 ; 若不同跳轉(zhuǎn)到10

mov r1, #256
loop11
subs r1, r1, #1 ;延時(shí)一段時(shí)間
bne loop11


; ldr r1,=GSTATUS3 ;GSTATUS3保存的是掉電模式的保存的PC地址
; 如何保證跳過去的前提是內(nèi)存數(shù)據(jù)正確!
ldr r2, =0x201000 ; 內(nèi)存地址偏移量
add r2, r2, #0x30000000 ; 內(nèi)存物理地址基址
bx r2 ; 調(diào)到內(nèi)存地址0x30000000+0x201000=0x3020100地址處
nop ;為了防止程序跑飛,可以在mov pc,rn語句中加nop和b.
nop
nop
b .

; - - - - - - - - - - - - - - - - - - - - - - -
; END: Power Management
; :::::::::::::::::::::::::::::::::::::::::::::
4
; Configure memory controller
;ldr r0,=SMRDATA
add r0, pc, #SMRDATA - (. + 8)

ldr r1,=BWSCON ;BWSCON Address
add r2, r0, #52 ;End address of SMRDATA
0
ldr r3, [r0], #4
str r3, [r1], #4
cmp r2, r0
bne %B0

;Initialize stacks
;bl InitStacks
ldr sp,=SVCStack ;獲取管理模式堆棧棧頂指針


;將RW段拷貝至RAM,將ZI段清零
ldr r0, =|Image$$ER_ROM1$$RO$$Limit| ;加載域中RO段地址+1->ro,即加載域中RW段起始地址
ldr r1, =|Image$$RW_RAM1$$RW$$Base| ;運(yùn)行域中RW段的開始地址->r1
ldr r3, =|Image$$RW_RAM1$$ZI$$Base| ;運(yùn)行域中ZI開始地址->r3

cmp r0, r1 ;比較加載域中RW段開始地址和運(yùn)行域中RW段開始地址
beq %F2 ;若相同,則RW段無需拷貝,跳至2執(zhí)行,否則跳過這一句
1
;將加載域中RW段復(fù)制到運(yùn)行域,r0、r1中的地址會每次以4字節(jié)的幅度改變
cmp r1, r3 ;比較r1和r3的值,判斷RW段是否復(fù)制完畢
ldrcc r2, [r0], #4 ;相等(未復(fù)制完畢)則將r0地址的內(nèi)容復(fù)制到r2中,r0=r0+4
strcc r2, [r1], #4 ;相等則將r2的內(nèi)容復(fù)制到r1中,r1=r1+4
bcc %B1 ;(跳轉(zhuǎn)條件就是無符號數(shù)比較小于)不相等的話執(zhí)行1
2 ;以下為清零ZI段
ldr r1, =|Image$$RW_RAM1$$ZI$$Limit| ;
mov r2, #0
3 ;開始清零,r3中的地址會每次以4字節(jié)的幅度改變
cmp r3, r1 ;比較,判斷是否清零完畢
strcc r2, [r3], #4 ;如果清零未完畢,則將r3中地址開始的地方的4個(gè)字節(jié)數(shù)據(jù)清零
bcc %B3 ;(跳轉(zhuǎn)條件就是無符號數(shù)比較小于)如果清零未完畢,則繼續(xù)執(zhí)行3


b Main ;Dont use main() because ......
b .

LTORG ;文字詞

;SMRDATA
SMRDATA DATA
;注意SMRDATA與 SMRDATA DATA的效果是一樣的
; Memory configuration should be optimized for best performance
; The following parameter is not optimized.
; Memory access cycle parameter strategy
; 1) The memory settings is safe parameters even at HCLK=75Mhz.
; 2) SDRAM refresh period is for HCLK<=75Mhz.

DCD (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28));BWSCON寄存器
DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) ;BANKCON0
DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) ;BANKCON1
DCD ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) ;BANKCON2
DCD ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) ;BANKCON3
DCD ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) ;BANKCON4
DCD ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) ;BANKCON5
DCD ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) ;BANKCON6(SDRAM)
DCD ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) ;BANKCON7(SDRAM)
DCD ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Tsrc<<18)+(Tchr<<16)+REFCNT);REFERSH寄存器(SDRAM)
;;;
; DCD 0x00aC03F4 ;refresh
DCD 0xB2 ;SCLK power saving mode, BANKSIZE 128M/128M;BANKSIZE寄存器(128MB)


DCD 0x30 ;MRSR6寄存器 CL=3clk
DCD 0x30 ;MRSR7寄存器 CL=3clk

ALIGN ;字節(jié)對齊(不對齊的時(shí)候自動加上補(bǔ)丁字節(jié))

END

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉