新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > FLASH__HCS12學(xué)習(xí)筆記(5)

FLASH__HCS12學(xué)習(xí)筆記(5)

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
昨天調(diào)了一天的FLASH擦寫,到最后依舊沒有調(diào)通,但是對FLASH的結(jié)構(gòu)還總算有一定的了解了。我調(diào)的程序是北航出版社的《使用HCS12微控制器的設(shè)計(jì)與應(yīng)用》這本書附帶光盤上的例子,程序似乎沒有問題,但是FLASH確實(shí)是擦不掉,串口返回的數(shù)據(jù),每一頁都相同,令人費(fèi)解,并且如果我要讀FLASH上的數(shù)據(jù),就會靈程序報(bào)錯停止,不知道是跑飛了還是什么。也希望如果有同樣問題的朋友能夠一起討論討論。

下來羅列一些FLASH的基本概念,也算是復(fù)習(xí)一下。

本文引用地址:http://m.butianyuan.cn/article/201611/321076.htm

這是HCS12內(nèi)部地址的基本結(jié)構(gòu)圖,我們可以看到第一部分是寄存器,第二部分是EEPROM,第三部分是RAM,第四部分就是FLASH了,這部分是不分頁時我們可以訪問到的FLASH,第五部分是擴(kuò)展的FLASH,這部分需要分頁訪問,DG128中有38,39,3a,3b,3c,3d,3e,3f這幾個部分,而DP256中還包括了30~37這些頁都有效,第六部分是另外的固定FLASH地址。

這么來說,$4000–$FFFF間的存儲數(shù)據(jù)是可以訪問的。
•由于Flash 模塊的地址范圍超出了 HCS12 的64K (16-bit)地址空間,所以從 $8000–$BFFF被映射到若干16K字節(jié)大小的頁框中。 由PPAGE寄存器決定在當(dāng)前訪問的是哪一頁。
•$8000 - $BFFF間共有64個可訪問的頁。使用PPAGE寄存器可以訪問到地址在$8000–$BFFF間的所有共16頁的16K字節(jié)。
•Flash模塊中每個塊包含許多行控制和狀態(tài)寄存器,它們都位于的相同地址空間 INITRG + $100 - INITRG + $10F。通過Flash 配置寄存器選擇有效的某行寄存器。
•MC9S12DP256 有7個引腳端口, 端口K,用來仿真或者作為通用 I/O。其余六個端口用來決定哪一個Flash頁正在被訪問。 其余的地址位放在 PPAGE 寄存器中。


所有的256K的FLASH可以通過16K的PPAGE窗口來訪問,其中兩個16K的頁也可以通過固定地址($4000-7FFF, $C000-FFFF)來訪問。$4000-$7FFF與$3E相對應(yīng),$C000-$FFFF與$3F相對應(yīng)。這兩個固定頁克服了內(nèi)存分頁機(jī)制的一些缺點(diǎn)。采用分頁機(jī)制,在某一頁中的函數(shù)無法直接訪問訪問另一頁中的數(shù)據(jù)。需要被其它頁的函數(shù)訪問的數(shù)據(jù)應(yīng)該放在固定頁中,或只有固定頁的函數(shù)才能訪問其他頁的數(shù)據(jù)。因?yàn)閺?fù)位和中斷向量表只有16位,所以所有的中斷服務(wù)程序和復(fù)位初始化程序必須從固定頁中開始執(zhí)行。大部分中斷服務(wù)程序可以放在非固定頁中,部分的中斷服務(wù)程序尤其起始部分要放在固定頁中。通過CALL來調(diào)用非固定頁中的函數(shù),最后用RTI指令返回。



關(guān)鍵詞: FLASHHCS12學(xué)習(xí)筆

評論


技術(shù)專區(qū)

關(guān)閉