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

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(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

16位寬的sst39vf3201為什么可以用8位方式訪問(wèn)!

作者:necrca 欄目:ARM技術(shù)
16位寬的SST39VF3201.html">SST39VF3201為什么可以用8位方式訪問(wèn)!
我的系統(tǒng)是AT91M40800 + SST39VF3201
因?yàn)槭褂?6位總線,所以ARM的A0懸空不用,ARM的A1,接SST39VF160的A0
按照這種連接方法,ARM是不可以用8位的數(shù)據(jù)指針來(lái)訪問(wèn)的;

但是,用下面的代碼就偏偏可以。。。!

0x01000000 是SST39VF3201的物理地址
a[] 是一個(gè)全局變量;
for(i=0;i<10;i++)
{
    a[i] = *(INT8U *)(0x01000001+i);
}
查看編譯出來(lái)的代碼,也沒(méi)有看出有先把16位數(shù)據(jù)讀出來(lái),拆分為8位的代碼

0x0000006c:    
         e3a04000    .@..                  MOV      r4,#0
                                          // 判斷 i<10
        0x00000070:    e354000a    ..T.    CMP      r4,#0xa
                               //10次循環(huán)結(jié)束,退出
        0x00000074:    2a000008    ...*    BCS      {pc} + 0x28  ; 0x9c
                    //跳轉(zhuǎn)COPY第一個(gè)數(shù)據(jù)
        0x00000078:    ea000002    ....    B        {pc} + 0x10  ; 0x88
                                        // i++
        0x0000007c:    e2840001    ....    ADD      r0,r4,#1
        0x00000080:    e20040ff    .@..    AND      r4,r0,#0xff
                                      //比較i的值是否大于10
        0x00000084:    eafffff9    ....    B        {pc} - 0x14  ; 0x70
                //取39VF3201的地址 (0x01000001)
        0x00000088:    e59f0254    T...    LDR      r0,0x2e4
            // (0x01000001+i)的數(shù)據(jù)讀出來(lái)(8位)
        0x0000008c:    e7d00004    ....    LDRB     r0,[r0,r4]
                // 取全局?jǐn)?shù)組a[0]的地址
        0x00000090:    e59f1250    P...    LDR      r1,0x2e8
                //的39vf3201的數(shù)據(jù)保存到a[i]中
        0x00000094:    e7c10004    ....    STRB     r0,[r1,r4]
                //比較i的值是否大于10
        0x00000098:    eafffff7    ....    B        {pc} - 0x1c  ; 0x7c
        0x0000009c:    e1a00000    ....    NOP

不明白為什么用這種物理的連接方式,可以訪問(wèn)8位的數(shù)據(jù),我的CPU的A0沒(méi)有參加
地址繹碼,象0x01000001 、0x01000003 這些地址,ARM怎么處理???
望各位指教。。!

2樓: >>參與討論
mike_le
頂下
 
3樓: >>參與討論
necrca
各位大俠有空研究這個(gè)問(wèn)題嗎?
 
4樓: >>參與討論
masashinakayama
很簡(jiǎn)單,ARM硬件幫你完成了這個(gè)事情
STRB/LDRB指令就是8位讀寫
但是讀的時(shí)候總線是16位訪問(wèn)的,多余的8位給丟掉了
如果你看到數(shù)據(jù)手冊(cè)的總線時(shí)序,你就明白了



參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
裝完REDHAT LINUX8.0后,鼠標(biāo)不好用!為什么?
有SD卡詳細(xì)規(guī)范嗎??
44B0的BANK6,BANK7
關(guān)于下載的問(wèn)題。
TLC5617兩個(gè)輸出端不能同時(shí)更新,急!
免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


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