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

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

向各位大俠請教幾個存儲器映射方面的問題!

作者:bush_em 欄目:ARM技術
向各位大俠請教幾個存儲器映射方面的問題!
請教:
問題1:
      1:為什么要存儲器映射控制,一般是在什么情況下發(fā)生存儲器映射控制呢?
問題2
      2:存儲器映射控制,是不是專用中斷的?
問題3:
      3:書上原文:“
         列如,每當產(chǎn)生一個軟件中斷請求,ARM 內(nèi)核就從 0x00000008 處取出 32 位數(shù)。這就意味著:
         當 MEMMAP[1:0]=10 (用戶 ARM 模式)時,從 0x00000008 的讀數(shù)/取指是對 0x40000008
         單元進行操作!
         
         請教,是不是芯片規(guī)定了當發(fā)生中斷時,ARM 就是從  0x00000008 處取出 32 位數(shù)?
問題4
     4:書上原文“
       用戶程序需要隨時更改異常向量表,可以將異常向量表(64字節(jié))復制到片內(nèi) RAM 的 0x40000000 地址上,
       然后設置 MEMMAP=2 進行重新映射,0x40000000 地址上的向量表就可以更改了。”

       請教,為什么要將 異常向量表(64字節(jié))復制到片內(nèi) RAM 的 0x40000000 地址上呢?
       是不是因為  片內(nèi) RAM 的其始地址就是 0x40000000 ?

       還有 然后設置 MEMMAP=2 進行重新映射,0x40000000 地址上的向量表就可以更改了
       各位大哥詳細解釋一下,好嗎?


辛苦各位大俠了!謝謝!


2樓: >>參與討論
hiberhe
隨便說說
我覺得存儲器重映射其實很簡單:我們知道,復位和發(fā)生中斷時,CPU是從固定地址讀取復位和中斷向量.

系統(tǒng)復位時,MCU一般是從0x0處開始指向,這樣一來,在0x0處一般就只能是ROM了,以后發(fā)生中斷,一般也是在這隨近取指.這樣一來,有時不是太靈活,比如bootloader中用到中斷(這個在arm中好像還好弄一點,在純ROM的MCU中更麻煩),同時像arm之類的,在ROM中執(zhí)行有許多不方便的地方.

于是就有了存儲器重映射的方法:就是通過程序控制,把非0x0處的存儲器,映射到0x0處.這樣一來,這部分存儲器對于CPU而言,跟在0x0處沒有分別,于是發(fā)生中斷時,中斷向量就從這兒取了.

至于能干什么用,就是各顯神通了,比如你可以在0x0處放一個bootloader,執(zhí)行完相關初始化程序后(在8位MCU中可以方便的用來進行IAP),然后重映射主程序,這樣很方便的.在arm中的話,可以先將代碼copy到RAM中,重映射以后,代碼全在ram中執(zhí)行(發(fā)生中斷后,也從RAM中取指),速度會快不少的:)

也不知道說得有沒有不妥的地方,其實你問的問題我也不知道是這是指這個.

3樓: >>參與討論
bush_em
hiberhe 大哥,謝謝!
hiberhe 大哥:
             您好!
我要的就是您說的啊

我還是有幾個地方?jīng)]懂:

問題1:
    您說:“ 把非0x0處的存儲器,映射到0x0處”
    這件工作是 芯片自己做的,還是要程序員做的。
    如果是需要程序做的話,那要怎么寫程序啊
    hiberhe 大哥,舉個具體的列子,好嗎?
問題2:
      于能干什么用,就是各顯神通了,比如你可以在0x0處放一個bootloader,執(zhí)行完相關初始化程序后(在8位MCU中可以方便的用來進行IAP),然后重映射主程序,這樣很方便的.在arm中的話,可以先將代碼copy到RAM中,重映射以后,代碼全在ram中執(zhí)行(發(fā)生中斷后,也從RAM中取指),速度會快不少的:)

   hiberhe 大哥,重映射主程序,到底做了哪些工作呢?



還有,請大哥幫我看看:
“ 請教:各位大俠,幫我看看下面這段程序,我有幾個地方不理解!”
這個帖子。

謝謝大哥!


            

4樓: >>參與討論
hiberhe
別稱大哥啦,叫hiber就好了
重映射不同的MCU不用.當然不是芯片自己做的,芯片不知道你需不需要重映射,以不知道你將哪塊存儲器得映射到0x0.通過在程序中設置MCU的寄存器來實現(xiàn)的.這個不同的MCU有不同的寄存器.看MCU的文檔就知道了.我知道4510是可以重映射的(自己沒實際用過,初學ARM,還是超級菜鳥),我用的44B0X不可以重映射,所以也不好給例子.

看一下CPU的文檔就知道了,很簡單的.也要注意重映射時對一些注意事項,這個在CPU的文檔里都有的.

說白了,重映射就是要CPU將非0x0處的存儲器當作0x0處來用,就這么簡單,具體CPU是怎么實現(xiàn)的,根本不用關心.設置了重映射以后,在你的程序中,就要把那片區(qū)域當作0x0的.

要完成重映射,反正就是操作一下寄存器而已.

不知道自己有沒有說清楚.

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
[求教]jtag接口pcb布線有什么注意事項么?
S3C2410用戶手冊LCD章節(jié)中關于單色4位雙掃描的插圖是不是錯了啊
avr與msc-51的區(qū)別是什么?
44b0內(nèi)部有8K RAM,請問他的開始地址應該在什么地方
雙向信號的電平轉(zhuǎn)換
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號