8051 code bank 原理介紹

2021-10-07 10:32:35 字數 1428 閱讀 3407

乙個標準的8051器件能定址64kb的**位址空間。對於超過64kb的**,微控制器系統通常採用**分頁(code banking)的方式來擴充套件程式空間。

硬體上通sfr 操縱port 的bit 來實現。

軟體設定:

新建工程是需要將startup.a51和l51_bank.a51加進去,其中startup.a51是新建功能是自動新增,l51_bank.a51是手動新增的,原始檔在keil的安裝目錄lib下(\keil\c51\lib\l51_bank.a51)。

1、 首先在keil 中勾選上use extended linker(lx51) instead of bl51

注意想要使用code bank 功能必須要勾選上這一項。

2、 target 下勾選code banking, 表示支援code banking 功能,大小根據需求設定

到這一步為止keil 上的設定完成,現在我們要修改l51_bank.a51

1、先看一下它的配置段, 主要有下面五個變數需要設定:

通常需要修改

b_nbanks : 指定bank 的數量

b_mode: 選擇bank 切換通過那種方式。

bank 切換的核心:

主要是兩個函式 b_bank&n 和b_switch&n:

b_bank&n 的作用時儲存一些位址,防止bank 切換後回不來。

1、儲存當前 bank 的位址(c51 會針對多個bank 生成乙個位址向量表,來存放b_switch&n 函式, 儲存的位址就是這個位址)

2、儲存要切換函式位址

b_switch&n 切換到對應的bank

下面看乙個例子: bank0->bank1->bank0

MIMO均衡演算法(CMA,LMS,RLS)原理介紹

引言 由於mimo技術在提高通道容量方面具有巨大的潛力,因此已經在無線通訊領域和光通訊領域得到了廣泛的應用。mimo技術充分的利用了空間這一維度,在應用到無線通訊領域中時,發射端和接收端通過多個發射天線和多個接收天線進行通訊,但是不同天線的通道由於多徑效應導致相互串擾,在接收端需要進行相應的數字訊號...

css sprite原理優缺點及使用示例介紹

css sprites在國內很多人叫css精靈,是一種網頁應用處理方式。它允許你將乙個頁面涉及到的所有零星都包含到一張大圖中去,這樣一來,當訪問該頁面時,載入的就不會像以前那樣一幅一幅地慢慢顯示出來了。對於當前網路流行的速度而言,不高於200kb的單張的所需載入時間基本是差不多的,所以無需 顧忌這個...

Keepalived高可用性集群及原理介紹

keepalived起初是專為lvs開發的,現在主要功能有兩個,分別是健康檢查和監控接替。keepalived 故障切換轉移原理介紹 在兩個負載均衡排程器上安裝keepalived以實現高可用的目的。兩個排程器之間通過vrrp協議來保證高可用性,當一台排程器宕機時,另一台備用的立即接替原主機服務,當...