產(chǎn)品詳情
此 32 位處理器采用同一套總線來讀取指令和加載/存儲數(shù)據(jù)。指令代碼和數(shù)據(jù)都位于相同的存儲器地址空間,但在不同的地址范圍。程序存儲器,數(shù)據(jù)存儲器,寄存器和 IO 端口都在同一個線性的 4GB 的地址空間之內(nèi)。這是 32 位處理器的最大地址范圍,因為它的地址總線寬度是 32 位。此外,為了降低不同客戶在相同應用時的軟件復雜度,存儲映射是按 32 位處理器提供的規(guī)則預先定義的。在存儲器映射表中, 一部分地址空間由 32 位處理器的系統(tǒng)外設所占用,且不可更改。此外,其余部分地址空間可由芯片供應商定義使用。CIU32M010、CIU32M030 器件的存儲器映射表顯示了 CIU32M010、CIU32M030 器件的存儲器映射,包括代碼、SRAM、外設和其他預先定義的區(qū)域。簡化了每個外設的地址譯碼。
片上 SRAM
芯片內(nèi)置 8K 字節(jié)的 SRAM。它可以按字節(jié)(8 位)、半字(16 位)或字(32 位)進行訪問。 SRAM 起始地址為 0x2000_0000。
片上 FLASH 概述
閃存存儲器有兩個不同存儲區(qū)域
? 主閃存存儲塊,它包括應用程序和用戶數(shù)據(jù)區(qū)(若需要時)
? 副閃存存儲塊,也叫信息塊,其包含兩個部分
– 選項字節(jié)(Option bytes)-內(nèi)含硬件及存儲保護用戶配置選項。
– 系統(tǒng)存儲器(System memory) - 閃存接口基于 AHB 協(xié)議執(zhí)行指令和數(shù)據(jù)存取。
引導配置
芯片復位后,通過客戶自己在副閃存的配置,選擇 SWDCLK 默認工作是上拉還是下拉。正常啟動后, CPU 從地址 0x0000_0000 獲取堆棧頂?shù)牡刂?,并從存儲?x0000_0004 位置指示的地址開始執(zhí)行代碼。
位帶操作
為了減少“讀-改-寫”操作的次數(shù),32 位 RISC 處理器提供了一個可以執(zhí)行單原子比特操作的位帶功能。存儲器映射包含了兩個支持位帶操作的區(qū)域。其中一個是 SRAM 區(qū)的1MB 范圍,第二個是片內(nèi)外設區(qū)的 1MB 范圍。這兩個區(qū)域中的地址除了普通應用外,還有自己的“位帶別名區(qū)”。位帶別名區(qū)把每個比特擴展成一個 32 位的字。當用戶訪問位帶別名區(qū)時,就可以達到訪問原始比特的目的。
下面的公式表明了位帶別名區(qū)中的每個字如何對應位帶區(qū)的相應比特或目標比特。
bit_word_addr =bit_band_base +(byte_offset×32)+(bit_number×4)
其中:
? bit_word_addr 指的是位帶區(qū)目標比特對應在位帶別名區(qū)的地址;
? bit_band_base 指的是位帶別名區(qū)的起始地址;
? byte_offset 指的是位帶區(qū)目標比特所在的字節(jié)的字節(jié)地址偏移量;
? bit_number 指的是目標比特在對應字節(jié)中的位置(0-7)。
例如,要想訪問 0x2000 0200 地址的第 7 位, 可訪問的位帶別名區(qū)地址是:
bit_word_addr = 0x2200 0000 + (0x200 * 32)+ (7 * 4)= 0x2200 401C
如果對 0x2200 401C 進行寫操作,那么 0x2000 0200 的第 7 位將會相應變化;如果對 0x2200 401C進行讀操作,那么視 0x2000 0200 的第 7 位狀態(tài)而返回 0x01 或 0x00。
沈陽芯碩科技有限公司是華大電子專業(yè)代理商,有技術問題可咨詢我們