<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PSTN短消息終端SoC系統的軟硬件設計

PSTN短消息終端SoC系統的軟硬件設計

作者: 時(shí)間:2010-12-06 來(lái)源:網(wǎng)絡(luò ) 收藏

  3.3 存儲空間的劃分和映射

  在物理上,把8KB的片內RAM分為兩部分,0000H~1BFFH(共7 KB)映射到數據空間,1C00H~1FFFH(共1 KB)映射到程序空間,并覆蓋Flash中程序空間的1C00H~1FFFH區域;把512 KB的Flash存儲器也分成兩部分,00000H~0FFFFH(共64 KB)映射到程序空間,剩下的10000H~7FFFFH(共448 KB)都映射到數據空間。

  對微控制器核來(lái)說(shuō),可以尋址64 KB的程序空間和64 KB的數據存儲空間。對整個(gè)而言,因為Flash中的程序空間有1 KB被RAM程序空間覆蓋掉,所以邏輯上它的程序空間依然是64 KB,但數據空間變?yōu)? KB+448 KB,共455 KB。微控制器核通過(guò)擴展的SFR寄存器FLASH_PAGE按32 KB×16頁(yè)的頁(yè)面方式訪(fǎng)問(wèn)Flash存儲器,其中包括程序空間和數據空間,如圖3所示。

  

程序空間和數據空間的劃分和映射

  圖3 程序空間和數據空間的劃分和映射

  在對Flash存儲器件進(jìn)行寫(xiě)操作后的某一段時(shí)間內(從幾十μs~幾百μs),對它進(jìn)行讀操作是不能讀出一個(gè)確切值的,這是Flash存儲器件的一個(gè)特性。本中程序和數據存放在同一個(gè)AM29LV040 Flash存儲器中。在對Flash存儲器進(jìn)行寫(xiě)操作時(shí),要不斷地從其中讀出進(jìn)行寫(xiě)操作的程序指令,然后對它本身進(jìn)行寫(xiě)操作。微控制器核在20 MHz的時(shí)鐘頻率下,指令周期大約是200 ns,即每隔200 ns左右,就要從Flash存儲器中讀取一條指令。這顯然和上述的Flash存儲器特性發(fā)生了沖突。

  通過(guò)對編譯環(huán)境的設定,可以把進(jìn)行寫(xiě)Flash操作的函數unsigned char WriteData_FLASH (unsigned char * dest, unsigned char *scr, unsigned int len) 和Flash扇區擦除函數unsigned char EraseSector_FLASH (unsigned char sector_index)定位到程序空間的1C00H~1FFFH,并備份到數據空間的0EC00H~0EFFFH。在應用程序的設備初始化函數 void DevicesInit()中,調用加載函數void LoadFLASHOpToRAM(),把對Flash進(jìn)行寫(xiě)或者擦除操作的這1KB的程序代碼從Flash加載到RAM的程序空間。以后凡是涉及到對 Flash的寫(xiě)或者擦除操作,都由硬件邏輯切換總線(xiàn)到RAM去執行這一段程序代碼。這樣,以不大的RAM開(kāi)銷(xiāo),解決了不能同時(shí)對Flash進(jìn)行讀和寫(xiě)操作的矛盾。函數void LoadFLASHOpToRAM()的代碼如下:

  #define PROG_RAM_DATA0xEC00

  #define PROG_RAM_DATA_PAGE9

  staTIc unsigned char xdata RAM_prog[1024] _at_ 0x1C00;

  void LoadFLASHOpToRAM(){

  unsigned char xdata * p;

  FLASH_PAGE = PROG_RAM_DATA_PAGE;

  p = (unsigned char xdata *)PROG_RAM_DATA;

  memcpy(RAM_prog,p,1024);

  }

  4 總結

  本文詳細講述了在基于微控制器IP核協(xié)同的方法。在合理劃分硬件和軟件任務(wù)的基礎上,使設計更好地達到了性能的要求。


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>