日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1.1.8內(nèi)存驅(qū)動(dòng)實(shí)驗(yàn)設(shè)置該工程加載時(shí)運(yùn)行時(shí)地址為0x30000000,如圖2-55所示:圖2-55設(shè)置加載時(shí)運(yùn)行時(shí)地址init.s:本程序文件主要實(shí)現(xiàn)了,關(guān)閉看門狗,初始化內(nèi)存,拷貝ROM數(shù)據(jù)到內(nèi)存中,然后跳往內(nèi)存中執(zhí)行xmain函數(shù),

1.1.8內(nèi)存驅(qū)動(dòng)實(shí)驗(yàn)

設(shè)置該工程加載時(shí)運(yùn)行時(shí)地址為0x30000000,如圖2-55所示:

圖2-55設(shè)置加載時(shí)運(yùn)行時(shí)地址

init.s:本程序文件主要實(shí)現(xiàn)了,關(guān)閉看門狗,初始化內(nèi)存,拷貝ROM數(shù)據(jù)到內(nèi)存中,然后跳往內(nèi)存中執(zhí)行xmain函數(shù),從xmain函數(shù)返回之后,將全部led點(diǎn)亮,進(jìn)入死循環(huán)。

;

;內(nèi)存初始化實(shí)驗(yàn)

;

AREA Init, CODE, READONLY

ENTRY

start

; close watchdog

ldr r0, = 0x53000000;將看門狗控制寄存器地址放入r0

mov r1, #0

str r1, [r0];設(shè)置看門狗控制寄存器的值為0

bl initmem;跳轉(zhuǎn)到initmem代碼段,初始化內(nèi)存

bl copyall;跳轉(zhuǎn)到數(shù)據(jù)拷貝代碼段,將ROM中數(shù)據(jù)拷貝到內(nèi)存中

IMPORT xmain;引入main.c中的xmain函數(shù)

ldr sp, =0x34000000;調(diào)用C程序之前先初始化棧指針

ldr lr, =endxmain;設(shè)置xmain函數(shù)的返回地址

ldr pc, =xmain;跳轉(zhuǎn)到C程序中的xmain函數(shù)的入口處執(zhí)行

endxmain

ldr r0, =0x56000010; LED的GPIO接口配置寄存器

ldr r1, =0x00015400; GPIO配置數(shù)據(jù)

str r1, [r0];設(shè)置GPIO

ldr r0, =0x56000014; LED控制寄存器地址

ldr r1, =0x0;全部LED亮

str r1,[r0]

loop

b loop;死循環(huán)

copyall

IMPORT |Image

RO

Base|;引入編譯器Image

RO

Base符號(hào)變量

IMPORT |Image

RW

Limit|;引入編譯器Image

RW

Limit符號(hào)變量

ldr r0, = |Image$$RO$Base|;取得Image$$RO$Base域基址的值

ldr r1, = |Image

RW

Limit|;取得Image$$RW$Base域結(jié)束地址的值

ldr r2, =0x0;數(shù)據(jù)拷貝源地址

copyallloop

teq r0,r1;測(cè)試是否拷貝完成

beq quitcopyallloop;拷貝完成,跳往quitcopyallloop退出

ldr r3, [r2], #4;四字節(jié)加載

str r3, [r0], #4;四字節(jié)存儲(chǔ)

b copyallloop;返回繼續(xù)執(zhí)行

quitcopyallloop

mov pc, lr;調(diào)用返回

initmem;內(nèi)存初始化

ldr r0, =0x48000000;加載內(nèi)存相關(guān)寄存器首地址r0

ldr r1, =0x48000034;加載內(nèi)存相關(guān)寄存器尾地址到r1

adr r2, memdata;將寄存器配置數(shù)據(jù)地址段首地址加載到r2

initmemloop

ldr r3, [r2], #4;循環(huán)設(shè)置存寄存器

str r3, [r0], #4

teq r0, r1

bne initmemloop;循環(huán)到最后一個(gè)寄存器時(shí)退出函數(shù)

mov pc,lr

memdata

DCD0x22000000;BWSCON

DCD0x00000700;BANKCON0

DCD0x00000700;BANKCON1

DCD0x00000700;BANKCON2

DCD0x00000700;BANKCON3

DCD0x00000700;BANKCON4

DCD0x00000700

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