音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

[求助]看了幾天44b0初始化程序,看得那個(gè)暈啊

作者:lynn5302 欄目:ARM技術(shù)
[求助]看了幾天44b0初始化程序,看得那個(gè)暈啊
初學(xué)ARM,買了優(yōu)龍44b0的板子.看了幾天44binit.s(初始化代碼),看得我暈呼呼的.有幾個(gè)問題一直不明白.

1.宏定義   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 do not 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

上面的程序是不是把[SP+4]<--[HandleLabel] ??SP到底是多少? "_ISR_STARTADDRESS"又是在哪里定義的?這是分配堆棧空間的程序嗎?每一個(gè)中斷都有不一樣的堆棧地址??

2.關(guān)于RO bast,RW bast,

IMPORT |Image$$RO$$Base| ,
BaseOfROM DCD |Image$$RO$$Base| ,
GetBaseOfROM
  ldr  r0, BaseOfROM
  mov  pc, lr
資料好像說這些是只讀內(nèi)存定位地址(即程序起始地址),實(shí)際上就是RAM中的某地址吧?不過還是不怎么明白上面的程序,這跟ADS1.2中l(wèi)inker 的RO,RW地址有什么區(qū)別嗎??

3.我對(duì)DCD這個(gè)指令很是不解!!!!
  [ BUSWIDTH=16
;  DCD 0x11111111 ;Bank0=OM][1:0], Bank0~Bank7=16bit
  DCD 0x11111001 ;Bank0=OM[1:0]  16bit BootRomSST39VF160/SST39VF320) :0x0
;             |||||||-  Bank1=8bit Nand FLASH
;             |||||---  Bank2=8bit PDIUSBD12
;             ||||----  Bank3=16bit RTL8019
;             |||-----  Bank4~5=16bit No Uesd
;             --------  Bank6~7=16bit SDRAM
    | ;BUSWIDTH=32
DCD 0x22222220 ;Bank0=OM[1:0], Bank1~Bank7=32bit
    ]
DCD ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) ;GCS0
DCD ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) ;GCS1
以上分配的地址應(yīng)該是0X01C8_0000開始的吧?但是我卻不明白為什么DCD就是分配SFR的BWSCON至BANKCON5????對(duì)了在這些程序的前面有這樣二句   
LTORG ;聲明文字池??其實(shí)我還不明白什么文字池
SMRDATA DATA  ;這句呢?SMRDATA是個(gè)什么東西,找了一下,44BINIT.S中只有一個(gè)這東西.
4.還有一些小問題,比如那個(gè)聲明文字池指令?在你程序上好像出現(xiàn)了二次,我也不明白,我手上的書說得很少,也許是我悟性差吧,還有,在你程序某些地方頂格出現(xiàn)的0,1,2是什么?如果說是標(biāo)號(hào),但是又有好幾個(gè)0和1,這些是什么作用的??把程序COPY到RAM中的那段程序還沒仔細(xì)看,因?yàn)橐谎劭慈?覺得很是有點(diǎn)不難度.
望各位高人指點(diǎn)一下,讓我早日明白ARM的真諦.我手有個(gè)東西應(yīng)該是用到44B0的A0-A7,  nWE,nOE,和nGCS中的一個(gè),而這個(gè)東西的C語言API函數(shù)都有現(xiàn)在的.言而我依然不知道如何下手把它搭到ARM7的板上~~~


2樓: >>參與討論
edwinfwd
樓主,你的板子是FS44B0XI V2.1嗎?950RMB,好象貴了點(diǎn)
樓主,問下優(yōu)龍的扳子質(zhì)量怎么樣?技術(shù)服務(wù)發(fā)面呢?我也想買個(gè)FS44B0XI V2.1

3樓: >>參與討論
sean_wang
很簡(jiǎn)單
關(guān)于1:ADS的編譯器是用R0傳遞第一個(gè)參數(shù)的。所以這個(gè)宏可以動(dòng)態(tài)的將傳入的地址設(shè)置到堆棧中,再利用出棧指令跳轉(zhuǎn)到所要去的地方。這樣ISP的定位就相當(dāng)靈活。
關(guān)于2:他就是你在ADS編譯器里定義的RO地址
關(guān)于3:DCD 就是保留4字節(jié)空間,后面跟的參數(shù)就是在這個(gè)保留的空間里填寫的數(shù)據(jù)。你可以理解為C語言里的常量。
關(guān)于4:我也不明白,不好意思。

4樓: >>參與討論
qiuyang957
第一個(gè)問題可以說的再具體再淺顯一點(diǎn)嗎
還是不太明白,先謝謝!

5樓: >>參與討論
lynn5302
謝謝大家
謝謝sean_wang,我現(xiàn)在基本上理解了,edwinfwd我買的是核心板,只有CPU和FLASH及RAM,520元,個(gè)人感覺太貴了,沒什么技術(shù)支持。

對(duì)了sean_wang,如果ADS編譯器里不指定RW,那是不是RW區(qū)緊接在RO區(qū)后面呢?

關(guān)于第四個(gè)問題那些0,1,2的確是標(biāo)號(hào),是局部標(biāo)號(hào)來的
例:b %F1  ;向前跳到1標(biāo)號(hào)處。  

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ads1.2及sdt中幫助極不好用,如何設(shè)置?
上海,南京,山東,安徽及周邊地區(qū)PCB電路板
望指點(diǎn)一二,有關(guān)UCLINUX的任務(wù)和進(jìn)程!
濕敏電容
OSD字符疊加的新方法
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)