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

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

MCU也玩虛擬內(nèi)存

作者:qjhu0433 欄目:嵌入式系統(tǒng)
MCU也玩虛擬內(nèi)存
一片微控制器上RAM只有2K,但是我寫的東西用了2K+10bytes的RAM,我在想通用操作系統(tǒng)上經(jīng)常提到什么虛擬內(nèi)存,為什么我不能在微控制器上模擬一個,現(xiàn)在我不考慮系統(tǒng)運行效率,只關(guān)心能否實現(xiàn)?但我想了好久也沒有一點眉目,但我不死心,提出來,大伙一起想,看看有什么好注意,有誰了解通用操作系統(tǒng)的虛擬內(nèi)存是如何實現(xiàn)的,現(xiàn)在我想用片內(nèi)EEPROM模擬RAM.

假設(shè)系統(tǒng)有2048Bytes RAM,有10Bytes EEPROM如何把10Bytes EEPROM的地址空間映射到RAM地址空間的2049~2058呢.
假設(shè)我定義一字符指針CHAR* p = (CHAR*)2049;
那么我用CHAR first_EEPROM_data = *p;正常訪問數(shù)據(jù)EEPROM第一個字節(jié)數(shù)據(jù).
請問如何實現(xiàn).


2樓: >>參與討論
caluova
RE
  要玩虛擬內(nèi)存,必要條件是處理器要有MMU單元,虛擬地址——》物理地址的轉(zhuǎn)換是由MMU單元進(jìn)行查表操作(地址映射表)來完成的,這個過程對于程序員來說是幾乎透明的,
  若你沒有MMU單元,你發(fā)出的任何地址否則的話,處理器將按實地址進(jìn)行操作,不可能有任何轉(zhuǎn)換,除非你改寫編譯器,在編譯期間將地址轉(zhuǎn)換掉。
  另外最好有cache,不然的話頻繁的查表操作將非常消耗處理器的資源。

  參看你的需求,其實并不需要虛擬內(nèi)存支持,虛擬內(nèi)存是正對整個操作系統(tǒng)而言,不管任何地址,都會進(jìn)行轉(zhuǎn)換,而你這里只是需要映射數(shù)據(jù)區(qū)的一部分?jǐn)?shù)據(jù),和和虛擬內(nèi)存不能相提并論。要實現(xiàn)EEPROM到RAM的映射,要看你用的是什么處理器,若是51,可以通過動態(tài)改寫指令來完成:即當(dāng)訪問超出了2K內(nèi)存實,動態(tài)改寫掉指令機器碼,將MOV或MOVX改寫為MOVC即可。使用完再改回來。

3樓: >>參與討論
qjhu0433
謝謝拉!
 
4樓: >>參與討論
shenlan51
謝謝caluova
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
PC104優(yōu)盤讀寫卡 多功能PS/2鍵盤模塊
一個學(xué)習(xí)arm、fpga、嵌入式的好論壇
小弟求教
關(guān)于用ARM作圖像采集的問題
[求助]socket使用中流式套接字的一個問題
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入


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