新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > FLASH__HCS12學習筆記(5)

        FLASH__HCS12學習筆記(5)

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

        下來羅列一些FLASH的基本概念,也算是復習一下。

        本文引用地址:http://www.104case.com/article/201611/321076.htm

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

        這么來說,$4000–$FFFF間的存儲數據是可以訪問的。
        •由于Flash 模塊的地址范圍超出了 HCS12 的64K (16-bit)地址空間,所以從 $8000–$BFFF被映射到若干16K字節(jié)大小的頁框中。 由PPAGE寄存器決定在當前訪問的是哪一頁。
        •$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相對應,$C000-$FFFF與$3F相對應。這兩個固定頁克服了內存分頁機制的一些缺點。采用分頁機制,在某一頁中的函數無法直接訪問訪問另一頁中的數據。需要被其它頁的函數訪問的數據應該放在固定頁中,或只有固定頁的函數才能訪問其他頁的數據。因為復位和中斷向量表只有16位,所以所有的中斷服務程序和復位初始化程序必須從固定頁中開始執(zhí)行。大部分中斷服務程序可以放在非固定頁中,部分的中斷服務程序尤其起始部分要放在固定頁中。通過CALL來調用非固定頁中的函數,最后用RTI指令返回。



        關鍵詞: FLASHHCS12學習筆

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 叶城县| 尚志市| 河西区| 黄浦区| 五华县| 商洛市| 桃园县| 嘉兴市| 淅川县| 盐亭县| 瑞丽市| 宜川县| 门源| 台东市| 宜兰市| 旬阳县| 华蓥市| 桂平市| 石门县| 拜泉县| 南皮县| 当雄县| 郁南县| 临朐县| 迭部县| 双流县| 南皮县| 三亚市| 麻阳| 麻城市| 斗六市| 江源县| 德阳市| 镇坪县| 塔城市| 天津市| 额尔古纳市| 汉阴县| 湟源县| 思南县| 麟游县|