飛思卡爾_第三章_儲存器映像控制模組
3.1 簡介
這部分敘述了飛思卡爾S12X平臺的儲存器映像控制子模組的功能,儲存器映像控制模組的結構方框圖如圖3-1.
儲存器映像控制模組控制多主存取的優先順序,內部資源和外部空間的選擇。內部匯流排,包括內部儲存器和外圍裝置,都受儲存器映像控制模組的控制。每一個區域性地址空間都可轉化成全域性地址空間。
3.1.1 專業術語
邏輯“1” |
相當於布林值真的電位 |
邏輯“0” |
相當於布林值假的電位 |
0x |
表示十六進位制數 |
x |
表示忽略,不用管 |
位元組 |
8位元資料 |
字 |
16位元資料 |
區域性地址 |
基於64KB的儲存器間(16位地址) |
全域性地址 |
基於8MB |
對齊地址 |
邊界對齊的地址 |
非對齊地址 |
邊界不對齊的地址 |
匯流排時鐘 |
系統時鐘,查閱時鐘與復位產生模組(CRG) |
擴充套件模式 |
正常擴充套件模式 模擬單片模式 模擬擴充套件模式 特殊測試模式 |
單片模式 |
正常單片模式 特殊單片模式 |
模擬模式 |
模擬單片模式 模擬擴充套件模式 |
正常模式 |
正常單片模式 正常擴充套件模式 |
特殊模式 |
特殊單片模式 特殊測試模式 |
NS |
正常單片模式 |
SS |
特殊單片模式 |
NX |
正常擴充套件模式 |
ES |
模擬單片模式 |
EX |
模擬擴充套件模式 |
ST |
特殊測試模式 |
未生效區域 |
可以由頁面暫存器(RPAGE,PPAGE,EPAGE)存取並且沒有生效(未使用)的儲存區域 |
外部/擴充套件空間 |
在全域性地址範圍14_0000 to 3F_FFFF可以存取的儲存區域 |
外部資源 |
在擴充套件模式時通過外部匯流排連線到MCU的資源(模擬器和應用程式)包括(未生效的區域和外部擴充套件空間) |
PRR |
埠替代暫存器 |
PRU |
位於模擬端的埠替代單元 |
MCU |
微控制器單元 |
NVM |
非易失性儲存器;Flash EEPROM or ROM |
3.1.2 特徵,特色
這塊的主要特徵是:
l 分頁能力支援全域性8M的儲存器地址空間
l 在主CPU,BDM和XGATE之間有匯流排仲裁
l 同時存取不同的資源(內部的,外部的和外圍裝置的)見圖圖3-1
l 目標匯流排存取衝突的解決
l MCU操作模式的控制
l MCU安全控制
l 分開記憶體映像圖給主CPU, BDM and XGATE
l ROM控制位來使能片上FLASH或ROM的選擇
l 埠替代暫存器存取控制
l 在單片模式中,當CPU存取未生效儲存區域(例如,一個不屬於任何片上模式的地址)時產生系統復位
3.1.3 S12X儲存對映
S12X結構使生效一系列儲存映像方案包括:
l 一個CPU的8MB的全域性映像,定義使用一個全域性頁暫存器(GPAGE)定義,且用專用的23位地址存數/取數指令
l 一個BDM的8MB的全域性映像,定義使用一個全域性頁暫存器(BDMGPR)定義,且用專用的23位地址存數/取數指令
l 一個(CPU或BDM)的64KB的區域性映像,定義使用特殊資源頁暫存器(RPAGE,EPAGE和PPAGE)定義,且用相對應的指令設定,這在任何時刻可見的64KB可以被看成被16位(CPU或BDM)地址存取的本地映像
儲存器映像控制模組執行著把不同的儲存映像方案翻譯成特殊的全域性(物理)的地址以便執行。
3.1.4 執行方式
這一部分列舉並簡單的描述了所有的由儲存器映像控制模組(MMC)可以支援的操作模式
3.1.4.1 節電模式
l 執行模式
在執行模式中儲存器映像控制模組(MMC)起作用
l 等待模式
在等待模式中儲存器映像控制模組(MMC)起作用
l 停止模式
在停止模式儲存器映像控制模組(MMC)不工作
3.1.4.2 起作用模式
l 單片模式
在正常的和特殊的單片模式中,內部儲存器是被佔用的,外部匯流排不起作用
l 擴充套件模式
當訪問外部匯流排時,在正常擴充套件模式和特殊測試模式下,地址,資料和控制訊號是起作用的。訪問內部資源將不會引起外部匯流排的起作用與否。
l 模擬模式
外部匯流排在模擬時是起作用的,經過外部工具進入正常擴充套件模式或正常單片模式
3.1.5 結構方框圖
圖3-1 展示儲存器映像控制模組的結構方框圖
3.2 外部訊號描述
使用者被建議查閱埠配置裝置概覽和外部匯流排訊號的位置,一些引腳不是在所以的執行中都有聯絡。表格3-3和3-4列出了引腳名字和功能。也同時對他們的操作提供了一個簡要的描述。
3.3 儲存映像圖和暫存器
3.3.1 儲存映像圖單元
與儲存器映像控制模組(MMC)有聯絡的暫存器的一個概述顯示在如下的圖解3-2.有關暫存器和位的詳細描述將會在接下來的部分給出。
3.3.2 暫存器描述
3.3.2.1 儲存器映像控制模組(MMC)控制暫存器 0(MMCCTL0)
讀:任何時刻。在模擬模式,讀操作將會從外部匯流排返回資料;在所有其他模式中,資料是從這個暫存器讀取的。
寫:任何時刻。在模擬模式,寫操作也將直接從外部訊號得到資料。
1 不使能,特徵總是不生效
2 使能,適當的暫存器的位的值控制著它的使能與否
MMCCTL0是用來控制外部匯流排功能,如:
l 得到片選功能(見 Table 3-5和Table 3-6)
l 控制不同的外部延伸裝置(裝置),要得到更詳細的介紹請查閱S12X_EBI模組介紹
注意:當CPU在存取這個暫存器時,XGATE也寫存取這個暫存器,將會導致無法預料的結果。
Field |
Description |
7-6 CS3E[1:0] |
片選3使能——這兩位使能外部片選3()的輸出,這個是宣稱在存取特殊外部地址期間,有關聯的全域性地址範圍見Table 3-7 and Figure 3-17。 片選3只在正常擴充套件模式和模擬擴充套件模式被啟用時才有效 片選3在其他任何模式下都失效, 00 :片選3不使能 01,10,11 :片選3使能 |
5-4 CS2E[1:0] |
片選2使能——這兩位使能外部片選2()的輸出,這個是宣稱在存取特殊外部地址期間,有關聯的全域性地址範圍見Table 3-7 and Figure 3-17。 片選2只在正常擴充套件模式和模擬擴充套件模式被啟用時才有效 片選2在其他任何模式下都失效, 00 :片選2不使能 01,10,11 :片選2使能 |
3-2 CS1E[1:0] |
片選1使能——這兩位使能外部片選1()的輸出,這個是宣稱在存取特殊外部地址期間,有關聯的全域性地址範圍見Table 3-7 and Figure 3-17。 片選1只在正常擴充套件模式和模擬擴充套件模式被啟用時才有效 片選1在其他任何模式下都失效, 00 :片選1不使能 01,10,11 :片選1使能 |
1-0 CS0E[1:0] |
片選0使能——這兩位使能外部片選0()的輸出,這個是宣稱在存取特殊外部地址期間,有關聯的全域性地址範圍見Table 3-7 and Figure 3-17。 片選0只在正常擴充套件模式和模擬擴充套件模式被啟用時才有效 片選0在其他任何模式下都失效, 00 :片選0不使能 01,10,11 :片選0使能 |
Table 3-7 列出了每個片選片的地址邊界和它與生效的內部限定資源的關係。
1 外部的RAM頁索引暫存器(RPAGE)在(NX,EX)中存取
2 當ROMHM設定(see ROMHM in Table 3-16)被認為的空間被片上儲存塊佔用
3 當內部的NVM是使能的(see ROMON in Section 3.3.2.5,儲存器映像控制模組(MMC)控制暫存器1-MMC Control Register (MMCCTL1)),不會被認為的空間被片上儲存塊佔用
4 外部的程式頁索引暫存器(PPAGE)在(NX,EX)中存取
3.3.2.2 模式暫存器(MODE)
讀:任何時刻。在模擬模式,讀操作將會從外部匯流排返回資料;在所有其他模式中,資料是從這個暫存器讀取的。
寫:只有當狀態轉變允許時(see Figure 3-5)。在模擬模式,寫操作也將直接從外部訊號得到資料。
模式暫存器(MODE)的模式位用來建立MCU的操作模式。
注意:當CPU在存取這個暫存器時,XGATE也寫存取這個暫存器,將會導致無法預料的結果。
Field |
Description |
7-5 MODC MODB MODA |
模式選擇位——這些位在復位狀態()高電平(無效時)控制通用的運算(工作)狀態。外部模式引腳MODC,MODB和MODA在復位狀態()低電平(有效時)來限定操作模式。在復位狀態()訊號變得失效時(高電平),引腳的狀態鎖存到各自的暫存器位。(見Figure 3-4)。 存在著寫限制,在某些模式之間不允許模式轉變。Figure 3-5闡述了所有允許的模式轉變。試圖未授權的模式轉變將不會改變模式位。但是將會妨礙以後的寫這些暫存器位,除掉在特殊模式。 從正常單片模式向正常擴充套件模式轉變和從模擬單片模式向模擬擴充套件模式轉變只能在寫一個值b101才會執行(寫一次),寫任何其他的值將不會改變模式位,但是將會妨礙以後的寫這些暫存器位。 當裝置是被保護時,改變操作的模式是不允許的。但是將會妨礙以後的寫這些暫存器位,除掉在特殊模式。 在模擬模式,讀地址從外部匯流排返回資料,外部匯流排由模擬器驅動。因此模擬器的硬體有責任要提供預期的值(例如,當裝置處於模擬單片模式時,提供一個相當於正常單片模式的值;或者當裝置處於模擬擴充套件模式時,提供一個相當於正常擴充套件模式的值) |
說明:
狀態轉變由外部引腳(MODC, MODB, MODA)決定
狀態轉變由寫存取模式暫存器(MODE)
(MODC, MODB, MODA)為110和111是非法的引腳值,是沒有使用的,保留為以後擴充套件用。
3.3.2.3 全域性頁索引暫存器(GPAGE)
任何時刻可讀;任何時刻可寫。
全域性頁索引暫存器(GPAGE)用來在全域性地址建立一個23位的地址格式,它只使用在CPU在執行全域性指令時(GLDAA,GLDAB,GLDD,GLDS,GLDX,GLDY,GSTAA,GSTAB,GSTD,GSTS,GSTX,GSTY)(見CPU Block Guide)。所產生的全域性地址是由CPU的區域性地址[15:0]和全域性頁索引暫存器(GPAGE)[22:16]拼在一起組成的。(見Figure 3-7)
注意:當CPU在存取這個暫存器時,XGATE也寫存取這個暫存器,將會導致無法預料的結果。
Field |
Description |
6-0 GP[6:0] |
全域性頁索引暫存器位6-0——這些頁索引暫存器位被用來選擇訪問128個64KB頁中的哪一頁。 |
Example 3-1 這個例子演示了GPAGE暫存器的用法
——————————————————————————————————————
LDX #0x5000 ;設定全域性頁索引暫存器GPAGE的偏移值為0x5000
MOVB #0x14, GPAGE ;初始化全域性頁索引暫存器GPAGE的值為0x14
GLDAA X ;全域性地址0x14_5000的值裝入累加器A
——————————————————————————————————————
3.3.2.4 直接頁面暫存器(DIRECT)
任何時刻可讀;特殊模式下任何時刻可讀,其他模式下只能讀一次。
這個暫存器可以決定在儲存映像中的256位元組的指引頁的位置(狀態)。這個對全域性和本地映像都有效。
Field |
Description |
7-0 DP[15:8] |
直接頁索引位15-8——當使用直接定址模式執行存取時,這些位被CPU使用。這個暫存器的這些位來自地址位的[15:8]位。(見Figure 3-9) |
注意:當CPU在存取這個暫存器時,XGATE也寫存取這個暫存器,將會導致無法預料的結果。
全域性地址的[22:16]位將來自全域性頁索引暫存器(GPAGE)[6:0]位,免得CPU在直接定址模式或通過恰當的本地地址到全域性地址的擴充套件時執行全域性指令???(查閱3.4.2.1.1,“本地地址擴充套件映像”)。
Example 3-2 這個例子演示了直接定址方式的用法
——————————————————————————————————————
MOVB #0x80, DIRECT ;設定直接頁面暫存器DIRECT的值為0x80。之可寫一次
;對於地址範圍0xXX_80XX的全域性資料存取可以直接定址
;對於地址範圍0x80XX的邏輯資料存取可以直接定址
LDY <00 ;從0x8000開始裝載變址暫存器Y(直接儲存,隨即定址)。
; <操作強制對一些彙編
——————————————————————————————————————
的力量直接訪問一些組裝,但在許多情況下,裝配“直接頁意識”,可以自動選擇直接模式。
未完。。。
相關推薦
飛思卡爾_第三章_儲存器映像控制模組
3.1 簡介 這部分敘述了飛思卡爾S12X平臺的儲存器映像控制子模組的功能,儲存器映像控制模組的結構方框圖如圖3-1. 儲存器映像控制模組控制多主存取的優先順序,內部資源和外部空間的選擇。內部匯流排,包括內部儲存器和外圍裝置,都受儲存器映像控制模組的控制。每一個區域性地
恩智浦(飛思卡爾)智慧車舵機和電機PID控制
這篇文章主要是基於B車模這種單電機四輪車模來寫的,內容是講兩者PID之間的差異,以及兩者各自的主要控制引數,並不講它們的完整的PID程式要如何寫。 寫PID的時候,首先要理解電機控制與舵機控制的區別。很多人有一個誤區就是把電機和舵機當成同一個系統來控制,在調車
深入理解計算機系統_第一部分_第三章_程式的機器級表示
深入,並且廣泛 -沉默犀牛 文章導讀 計算機執行機器程式碼,用位元組序列編碼低階的操作,包括處理資料、管理記憶體、讀寫儲存裝置上的資料,以及利用網路通訊。編譯器基於程式語言的規則、目標機器的指令集和作業系統遵循的慣例,經過一系列的階段生成機器程式碼。GCC C語言編譯器以彙
天嵌TQ_E9卡片電腦移植飛思卡爾yocto L4.1.15_1.0.0_ga 第三篇 新版uboot(2015.04-r0)網絡卡移植(RTL8211E)
經過前面的移植現在板子已經能成功跑起來yocto的2015.04版u-boot,但是如果我們ping主機則會提示不通,這裡我們繼續把u-boot的網絡卡移植上去,畢竟之後的核心移植少不了tftp功能
Day 4 | 實習第四天 飛思卡爾S12--高邊驅動和低邊驅動
在使用MOS管設計開關電源或者馬達驅動電路的時候,大部分人都會考慮MOS管的導通電阻、最大電壓、最大電流等,也有很多人僅僅考慮這些因素。這樣的電路也許是可以工作的,但並不是優秀的,作為正式的產品設計也是不允許的。 下面是我對MOS及MOS驅動電路基礎的一點總結,其中參考了一
Java編程思想讀書筆記_第三章
str style java sys out java編程 new col println 本章提到的關於==的部分,一個完整的實驗如下: 1 class Test { 2 public static void main(String[] args)
產品研發ARM開發板如何選擇?飛思卡爾I.MX6Q開發板
pow 清分 工作 images logs 時鐘 網通 https 處理器 處理器:迅為-i.MX6開發板恩智浦Cortex-A9 四核i.MX6Q處理器,主頻1GHz,內存2G,存儲16GB。 系統支持:i.MX6開發板系統支持LINUX,Android,Ubuntu系統
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(2)- Boot配置(BOOT_CFG Pin/eFUSE)
TP 執行 不同 mcu 更新 oom als 配置 示例 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Boot配置。 在上一篇文章 飛思卡爾i.MX RT系列微控制器啟動篇(1)- Boot簡介 裏痞子衡為大
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器介紹篇(3)- 命名規則
rule 成員 oom 嵌入 信息 100% 規則 控制器 今天 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的命名規則。 打開任何一款i.MX RT系列芯片的Data Sheet均可找到如下命名規則表,以i.M
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(3)- Serial Downloader模式(sdphost/mfgtool)
efi RM pda lock mman www. esc https conn 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Serial Downloader模式。 在上一篇文章 飛思卡爾i.MX RT系列微
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(6)- Bootable image格式與加載(elftosb/.bd/.bin)
before 詳細介紹 tab true 加載完成 table sdp 推薦 包含 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Bootable image格式與加載過程。 在i.MXRT啟動系列第三篇文章 飛
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(9)- 從Parallel NOR啟動
16bit erase section cloud 你會 命令執行 選型 兩個 寬度 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Parallel NOR啟動。 上一篇講i.MXRT從Raw NAND啟動的文章
飛思卡爾MC9S12系列單片機地址影射以及分頁問題
flash 方式 優先 獲得 機制 再看 這就是 範圍 基本上 對於用MCU的人來說,不一定要明白HCS12(x) memory map的機制和聯系。因為如果沒有系統地學習操作系統和編譯原理之類的課程,確實有些難度。並且,對於DG128 XS128這樣的MCU,默認的e
痞子衡嵌入式:飛思卡爾i.MX RT系列微控制器啟動篇(13)- 從Serial(1-bit SPI) EEPROM/NOR恢復啟動
如何 use pin 訪問 fill normal loader 擔心 飛思卡爾 大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家介紹的是飛思卡爾i.MX RT系列MCU的Serial EEPROM/NOR恢復啟動。 在前幾篇裏痞子衡介紹的Boot Dev
傳輸層_計算機網路原理第三章_自考本科段
概要:計算機網路原理第三章傳輸層知識點小結 1、傳輸層基本服務 識記:傳輸層基本服務 (1)傳輸層基本服務:為網路應用程序提供端到端的邏輯通訊服務;提供的服務可分為無連結服務和麵向連線服務。
第三章_微分中值定理與導數的應用
總習題三: 考察零點的個數主要是分析函式的單調性的問題,求出函式的駐點,看是極大值還是極小值然後帶入進行判斷零點的個數 有的時候代入法對於選擇題是非常高效和正確的 基本上都是使用洛
python快速上手_第三章 函式
def hello(): print('hello') print('world') hello() hello() hello() def 關鍵字來定義一個函式, 接下來是 函式名hello() 接下來縮排的部分是 函式體。 函式是在呼叫的時候執行,而不是
恩智浦iMX6Q核心板/飛思卡爾Cortex-A9高穩定性低功耗開發板
iMX6Q核心板-商業級 iMX6Q-Plus核心板 iMX6DL核心板-商業級 iMX6Q核心板-工業級 &nbs
飛思卡爾 MC9S12XEP100 bootloader CAN
帶有bootloader的程式分為兩個工程: 1. bootloader; 2.user_app; 上述兩部分,官方資料已經提供。現在需要能夠讀懂這兩份程式碼,明確自己需要做什麼。 飛思卡爾的MC9S12XEP100的bootloarder啟動過程與STM32等晶片有
使用飛思卡爾的FEE官方驅動
通過參考官方的驅動手冊。修改ee_blocks.h匹配專案。 具體機理可以參考官方文件。本文件在wind river的編譯器dcc下測試並使用。 1 #ifndef _EE_BLOCKS_H_ 2 #define _EE_BLOCKS_H_ 3 #include "ee_emu