娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年04月29日(星期二)

正在發生

2021年04月29日 | 基于虛擬存儲的嵌入式存儲系統的設計方法

發布者:悠然自在 來源: eefocus關鍵字:虛擬存儲  嵌入式存儲系統  8051單片機 手機看文章 掃描二維碼
隨時隨地手機看文章

1、引言

嵌入式系統由嵌入式硬件和固化在硬件平臺中的嵌入式軟件組成。傳統的小規模嵌入式系統,軟件多采用前后臺的方法,通常應用于實時性要求不高的簡單場合;對于復雜的應用場合,較為普遍的做法是給系統配上嵌入式實時操作系統(RTOS),這樣不僅能夠使系統具有良好的實時性能,降低軟件編制的工作量,還可以提高整個系統的穩定性。此外,為了簡化用戶程序,系統通常要提供一些必要的庫函數供用戶調用。同前后臺系統相比,這種實時嵌入式系統增加了系統存儲空間的開銷。Intel 8051系列及各種兼容的單片機因其極高的性價比、豐富的庫函數和長期的技術積累等背景而被廣泛應用于各種嵌入式領域中。受傳統單片機尋址空間的限制,嵌入式應用中經常需要進行存儲空間擴展。本文借鑒傳統計算機系統設計中的虛擬存儲技術,以8051單片機為例提出一種采用頁面分組和虛擬接口技術擴展存儲空間的方法。本方法與Keil C編譯器具有良好的兼容性。


2、存儲系統的組織


2.1.虛擬存儲系統


2.1.虛擬存儲系統


計算機系統中常采用虛擬存儲技術來擴展存儲系統容量,頁式虛擬存儲器是常用的一種組織方法。在這種方法下,整個虛擬地址空間和主存空間均被分成容量相等的若干頁,地址變換機構(通常是一個快速地址變換表)建立了虛擬空間到主存空間虛頁到實頁的映射。頁式存儲器組織關系如圖1。


虛擬存儲系統利用計算機CPU中的一組寄存器堆作為頁表基址寄存器,如圖1(b)所示,它與頁表一起給出用戶程序地址。實際計算機系統的頁式虛擬存儲要比這復雜得多,還需考慮未命中時的外部地址變換以及頁面替換算法,然而在嵌入式系統中這些都可以簡化乃至省去。

2.2.單片機嵌入式系統程序存儲區擴展


受虛擬存儲系統啟發,我們把上述方法作了一些修改以應用于嵌入式系統中。由于系統設計選用的外部程序存儲器容量為256k,而一般單片機(如 8051系列)的尋址空間為64k,為簡單起見,以64k為一頁,將256k虛擬地址分為4頁映射到單片機的64k空間。嵌入式系統中地址變換機構可被簡化:單片機沒有專用的頁表基址寄存器,可以通過額外的端口線(如P1.0,P1.1,P1.2等)作為基址指定不同的頁面,頁表查詢可用一個跳轉表實現。然而頁面切換前后必須保證能夠正確訪問到跳轉表,因此所有64k頁面都需要有一個完全相同的代碼段用來存放跳轉表和中斷矢量等公共資源。


為提高存儲器利用率可采用圖2所示的結構,其中公共段中存放了高32k段之間相互調用所需要的跳轉表。各段相互調用之前應先跳轉到公共段,執行頁面切換后再跳轉到被調用程序的入口,這就實現了18位虛擬地址到16位主存地址的變換。不妨以P1.0,P1.1,P1.2作為頁面基址來指定不同的頁,相應的跳轉表程序結構如下:


ADDR:CLR EA ;關中斷


SETB/CLR P1.0 ;切換頁面


SETB/CLR P1.1


SETB/CLR P1.2


SETB EA ;開中斷


JMP REAL_ADDR ;跳轉


在公共段(256k存儲芯片的低32k)中存放操作系統和提供給用戶的其他庫函數,其他各段用來存放嵌入式系統的用戶程序。采用圖2結構的單片機與存儲器接口原理圖如圖3所示。其中A0~A15地址線接法與普通存儲器擴展方法相同。

以上考慮了復位時頁面應切換到公共代碼區。


Keil C51編譯器是單片機開發應用中非常流行的一種高效編譯器,它支持上述頁面分組技術。


2.3.單片機嵌入式系統數據存儲區擴展


嵌入式系統中引入操作系統需要增加一定的數據存儲器開銷,必要時仍可以采用分頁技術擴展數據存儲區容量。


引入操作系統以后,數據區有兩種組織方法,比較簡單的一種方法是操作系統與用戶程序共用一個數據區,編譯器將整個程序一起編譯,不必區分是系統程序還是用戶程序。但這樣對用戶來說操作系統變得不透明了,而且不良的用戶程序可能會破壞系統的數據區,導致整個系統崩潰。


相對應的另一種方法是給操作系統與用戶程序分別分配獨立的數據區,譬如將128k 數據存儲器給操作系統和用戶程序各分配64k。不幸地是,當操作系統與用戶程序一起編譯時,編譯器會自動給它們分配不同的地址,這樣即使存儲器物理上是分開的,操作系統與用戶程序的數據區還是無法地址復用,這極大地浪費了地址空間;而且對傳統的單片機, Keil C 編譯器最大只支持64k數據區,幸運地是,這個矛盾可以通過采用虛擬接口的方法加以解決。


為此,將公共代碼段中的程序單獨編譯,并且在鏈接、定位目標代碼時,給操作系統和公共庫函數的每個函數在0x0000~0x7FFFH內分別指定一個固定的首地址。鑒于用戶程序可能調用這些函數,需要為這些函數分別編寫一個相同類型的同名偽函數,每個偽函數僅包含一條到真實函數(入口地址已知)的轉移指令,所有這些函數都存放在一個被稱為虛擬接口的頭文件中。虛擬接口文件與用戶程序一起編譯,完成用戶程序與操作系統兩次編譯的接口。顯然這種方法僅占用了用戶區的極少量代碼空間,而絲毫沒有浪費用戶數據區,同時又實現了地址復用。


公共代碼段和操作系統的數據區特殊的對應關系(見圖4),很容易通過P2端口線來指定。由單片機外部程序區訪問時序(圖 5)可知,PSEN的上升沿后數據總線A0~A7上開始出現指令或指令操作數,此時的地址線A15指示當前訪問的是公共代碼段(對應數據區高64k)還是其他程序段(對應數據區低64k),因此在PSEN上升沿鎖存地址線A15,用它可以選擇不同的數據存儲器空間。

3、存儲系統的性能分析


本文基于虛擬存儲系統思想實現了嵌入式系統中大容量存儲器的擴展。不難看出系統的擴展余地受端口線的限制。由于在同一塊芯片中構造圖2所示的結構,需要多使用一根端口線,因此對于8051系列使用整個P1口可以將系統的程序虛擬空間擴展至8M字節。數據存儲區擴展的最大容量還與程序在編譯時所被分成塊的數目有關,最大可達16M字節,這在單片機嵌入式系統中已經是足夠大了。


程序在調用不同頁面的函數時需要額外的軟件切換周期,頻繁的頁面切換會降低系統的性能,因此編譯時應仔細選擇函數,盡可能將相關的函數分配在同一頁中。


數據存儲區切換是由硬件實現的,頁面切換并不降低系統性能。由于操作系統與用戶程序數據區相互獨立,對用戶來說整個64k空間都是可用的,這就增加了操作系統的透明性。


4、結論


嵌入式系統由于它的專用性和特殊性,系統的軟硬件設計都與傳統的計算機系統設計方法有所不同。但進行嵌入式系統設計時仍然很有必要借鑒傳統計算機系統體系結構成熟的設計方法,“量體裁衣”為我所用。作者在進行嵌入式平臺設計時借鑒了傳統計算機虛擬存儲思想來擴展存儲系統,并在實際項目中得以應用,證明這種方法是非常有效的。

關鍵字:虛擬存儲  嵌入式存儲系統  8051單片機 引用地址:基于虛擬存儲的嵌入式存儲系統的設計方法

上一篇:51單片機頻率計數器課程設計
下一篇:大電流變流裝置過電壓智能保護模塊設計

推薦閱讀

國際半導體產業協會(SEMI)宣布已與電子系統設計聯盟(ESD Alliance)簽訂合作備忘錄,將于今年成為SEMI策略合作伙伴(Strategic Association Partner)。根據這項合作計劃,總部位于美國加州紅木城(Redwood City)的ESD Alliance于半導體設計產業生態系中的企業會員將加入SEMI,深化該聯盟在全球微電子制造供應鏈的布局,同時也加強SEMI企業會員與半導體設...
“美光 9300 系列 SSD。它的隨機讀寫和順序讀寫這四個關鍵性能指標屬于行業領先。它的功耗和其上一代產品相比降低了 28%,考慮到大的存儲容量的話,對于機柜和占地空間來說,整個回報率就會更好一些。它兼具 NVMe SSD 的性能和機械硬盤的容量,并且提供 32 個命名空間,用戶可以把它進行多個區域劃分,用在不同的工作負載和不同的虛擬機上。”美...
從外媒獲悉,美國周一宣布將對中國出口實施新限制,擬通過修改部分對華出口商品規則,要求對飛機零件、半導體相關出口產品施加新限制,使中國難以獲得半導體生產設備和其他技術... 據路透社報道,由于新冠肺炎(COVID-19) 疫情加劇了中美關系惡化,在當地時間的周一(27日),美國...
因受到來自三星、小米等的激烈競爭影響,蘋果今年將削減AirPods 25%-30%的產量。蘋果目前預計2021年的產量將在 7500萬至8500萬之間,而此前的產量預測為1.1 億。向下修正表明,市場對AirPods的需求正在減弱。 目前,預計蘋果公司2021年的產量將在7500萬至8500萬部之間,而此前的產量預測為1.1億部。數據的向下修正表明,市場對AirPods的需求正在減弱,...

史海拾趣

問答坊 | AI 解惑

產品規劃、產品開發的概念和計劃階段的重要性

在柯維博士的《高效能人士7個習慣》中,他提出一個有趣的觀點:任何創造實際是經過2個層次,一次是“心智的創造”,另一次才是“實際的創造”。其中心智的創造尤為重要,因為它是創新的源頭和起始,難度更大,更為難能可貴。心理學家馬斯洛也指出, ...…

查看全部問答∨

wince里怎樣顯示bmp圖片,像PC里縮略圖那樣顯示??

如題:我想做一個程序,顯示bmp圖片,最好像在PC里顯示縮略圖那樣顯示bmp圖片!!!…

查看全部問答∨

問個單片機數據接收問題!(應該比較簡單,來就送分)

    單個字符接收沒什么問題,多字節接收不行了!比如我要從串口調試助手送出一串字符(AAC234,7568等),單片機接收后存到緩存里?有幾個菜的問題先問下:這個字符串是動態的,個數不定,是不是只要將接收數組定義大點就可以,數據處理 ...…

查看全部問答∨

單片機C語言視頻教程

單片機C語言視頻教程      這個是提供給不能上網或者網速慢的朋友一個方便。 有條件的朋友可以到這個網站去下載:http://seemy.go.51.net   資料齊全,會都是視頻教程。 51單片機C視頻教程在很貼子上看到,很多朋 ...…

查看全部問答∨

pic12f683輸出問題

#include<pic.h>void main(void){ANSEL=0x00;TRISIO=0x00000000; GPIO=0xff;GIE=1;while(1){}}問題:   為啥我的單片機管腳沒有輸出?…

查看全部問答∨

DMA接收溢出的問題

請教各位高手 如果DMA接收設置為4個字節,但發了5個字節時,會吧數組前面的字節覆蓋掉,等下一次在發送4個字節的時候,DMA接收數組還是串了一個字節?怎么解決呢?…

查看全部問答∨

load program 時候出錯拉!

我 load program 時總是提示在程序空間的VECT的首地址處失敗,vector.asm分配到VECT空間, 著是怎么回事啊?請高手指點,謝謝拉 …

查看全部問答∨

LM3S系列的ROM RUN和RAM RUN

試了兩款LM3S8962和LM3S9B96,問題都一樣。LM3S系列能夠將程序下載到內存,然后修改PC指針,在內存中運行,這樣調試程序下載速度比較快,也減少了flash的讀寫次數,這是背景。除了一些大的程序,我都是在內存中調試,簡稱RAM RUN,大家可以翻翻我以 ...…

查看全部問答∨

2011儀器器件清單分析(全)——決戰2011全國大學生電子設計競賽

本帖最后由 paulhyde 于 2014-9-15 09:27 編輯 決戰2011全國大學生電子設計競賽——儀器器件清單分析 格式好亂……原文可以在附件中下載!另外,有同學轉載我沒有意見,但煩請注明出處! 2009 2011 1.基本儀器清單 20MHz普通示波器(雙通道, ...…

查看全部問答∨

求MSP430+MLX90615溫度傳感器例程

RT,苦求MSP430+MLX90615溫度傳感器例程,有用過的兄弟姐妹望出手相助一下,不勝感激!…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 子洲县| 临邑县| 内江市| 卓资县| 丰原市| 贵南县| 东兰县| 甘肃省| 丹东市| 永嘉县| 射洪县| 板桥市| 伊川县| 永州市| 金堂县| 日喀则市| 安泽县| 云林县| 岚皋县| 苍梧县| 额敏县| 河北区| 湘西| 高安市| 许昌县| 嘉祥县| 枞阳县| 南丹县| 斗六市| 犍为县| 金坛市| 洛浦县| 西畴县| 漳州市| 麻阳| 商河县| 吕梁市| 随州市| 沛县| 洞口县| 临汾市|