日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]嵌入式存儲系統(tǒng)由嵌入式硬件和固化在硬件平臺中的嵌入式存儲系統(tǒng)軟件組成。傳統(tǒng)的小規(guī)模嵌入式存儲系統(tǒng),軟件多采用前后臺的方法,通常應用于實時性要求不高的簡單場合;對于復雜的應用場合,較為普遍的做法是給系統(tǒng)

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

2 存儲系統(tǒng)的組織

2.1 虛擬存儲系統(tǒng)

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

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

 498)this.style.width=498;" />

2.2 單片機嵌入式存儲系統(tǒng)程序存儲區(qū)擴展

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

為提高存儲器利用率可采用圖2所示的結構,其中公共段中存放了高32k段之間相互調用所需要

498)this.style.width=498;" />


的跳轉表。各段相互調用之前應先跳轉到公共段,執(zhí)行頁面切換后再跳轉到被調用程序的入口,這就實現(xiàn)了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)中存放操作系統(tǒng)和提供給用戶的其他庫函數(shù),其他各段用來存放嵌入式存儲系統(tǒng)的用戶程序。采用圖2結構的單片機與存儲器接口原理圖如圖3所示。其中A0~A15地址線接法與普通存儲器擴展方法相同。

 498)this.style.width=498;" />


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

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

2.3 單片機嵌入式存儲系統(tǒng)數(shù)據(jù)存儲區(qū)擴展

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

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

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

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

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

 

498)this.style.width=498;" />

498)this.style.width=498;" />

3 存儲系統(tǒng)的性能分析

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

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

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

4結論

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

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

北京2022年10月19日 /美通社/ -- 10月18日,北京市經濟和信息化局發(fā)布2022年度第一批北京市市級企業(yè)技術中心創(chuàng)建名單的通知,諾誠健華正式獲得"北京市企業(yè)技術中心"認定。 北京市企業(yè)技...

關鍵字: BSP ARMA COM 代碼

實際上函數(shù)指針本質也是一個指針,只不過這個指針指向的不是內存中的一段數(shù)據(jù)而是內存中的一段代碼

關鍵字: 指針 數(shù)據(jù) 代碼

經過幾十年發(fā)展,嵌入式技術已經用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強的屬性,讓很多非嵌入式領域的同學望而卻步。近十幾年的發(fā)展,物聯(lián)網覆蓋了越來越多領域,包括了家居,商業(yè),工業(yè),農業(yè)等領域,不僅吸引...

關鍵字: 嵌入式 物聯(lián)網 技術

隨著IT技術飛速發(fā)展,互聯(lián)網已經進入了“物聯(lián)網”時代。物聯(lián)網中需要的大量設備不在依賴人與人之間的交互產生聯(lián)系,更多通過協(xié)議、通信、程序設計等方式連接到一處。即 “物聯(lián)網”的目的則是讓所有的物品都具有計算機的智能但并不以通...

關鍵字: 嵌入式 物聯(lián)網 計算機

蘇州2022年10月17日 /美通社/ -- 開拓藥業(yè)(股票代碼:9939.HK),一家專注于潛在同類首創(chuàng)和同類最佳創(chuàng)新藥物研發(fā)及產業(yè)化的生物制藥公司,宣布其自主研發(fā)、潛在同類首創(chuàng)的福瑞他恩(KX-826)治療痤瘡的中國...

關鍵字: ST FDA 代碼 ADI

最近看到APP上,給我推送了很多類似的回答,借此機會,也想著重新審視一下自己的學習歷程,以及結合自身和大牛,分享一些學習經驗,希望對大家有所啟發(fā)和幫助。

關鍵字: APP 嵌入式 C語言

大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現(xiàn)自己的想法的感覺真的很棒。所以從大學期間一直到現(xiàn)在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅...

關鍵字: 系統(tǒng)設計 技術選型 需求分析

萬物智聯(lián)時代,嵌入式技術及其應用的形態(tài)將更加豐富和多元,同時也將日益呈現(xiàn)深度物理融合、混合架構共存、群體智能協(xié)同、網絡安全攸關等諸多新的計算特性。顯然,經典的嵌入式系統(tǒng)體系結構、軟硬件技術和開發(fā)方法都已很難應對新趨勢下的...

關鍵字: 嵌入式 物聯(lián)網 計算機

物聯(lián)網是新一代信息技術的重要組成部分,是互聯(lián)網與嵌入式系統(tǒng)發(fā)展到高級階段的融合。通用計算機經歷了從智慧平臺到互聯(lián)網的獨立發(fā)展道路;嵌入式系統(tǒng)則經歷了智慧物聯(lián)到局域智慧物聯(lián)的獨立發(fā)展道路。

關鍵字: 嵌入式 物聯(lián)網 計算機

在智能汽車時代,保障智能汽車數(shù)據(jù)安全已成為一項新的重要課題。

關鍵字: 豐田 代碼 信息安全

單片機

21600 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉