在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    <address id="qec3z"><var id="qec3z"><center id="qec3z"></center></var></address>

      <span id="qec3z"><code id="qec3z"></code></span>
    • <dfn id="qec3z"></dfn>
      <ruby id="qec3z"><thead id="qec3z"><noscript id="qec3z"></noscript></thead></ruby>
      <label id="qec3z"></label><dfn id="qec3z"><var id="qec3z"></var></dfn>

        新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 基于IP核的PSTN短消息終端SoC軟硬件協同設計

        基于IP核的PSTN短消息終端SoC軟硬件協同設計

        作者: 時間:2010-11-25 來源:網絡 收藏

          設置Modem為FSK模式:

        void Modem_SetMode_FSK() {
        MODEM_CTRL = modem_ctrl_mirror (~MODEM_B0_MODE);
        modem_ctrl_mirror = modem_ctrl_mirror (~MODEM_B0_MODE);
        }

          在初始化程序中對這些“只寫”寄存器及其鏡像全局變量進行賦值。

        void DevicesInit() {
        MODEM_CTRL = MODEM_CTRL_INI;
        modem_ctrl_mirror = MODEM_CTRL_INI;
        }

        3.3 存儲空間的劃分和映射

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

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

        按此在新窗口瀏覽圖片
        圖3 程序空間和數據空間的劃分和映射

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

          通過對編譯環(huán)境的設定,可以把進行寫Flash操作的函數unsigned char WriteData_FLASH (unsigned char * dest, unsigned char *scr, unsigned int len) 和Flash扇區(qū)擦除函數unsigned char EraseSector_FLASH (unsigned char sector_index)定位到程序空間的1C00H~1FFFH,并備份到數據空間的0EC00H~0EFFFH。在應用程序的設備初始化函數void DevicesInit()中,調用加載函數void LoadFLASHOpToRAM(),把對Flash進行寫或者擦除操作的這1KB的程序代碼從Flash加載到RAM的程序空間。以后凡是涉及到對Flash的寫或者擦除操作,都由硬件邏輯切換總線到RAM去執(zhí)行這一段程序代碼。這樣,以不大的RAM開銷,解決了不能同時對Flash進行讀和寫操作的矛盾。函數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核PSTN短消息終端SoC設計中軟硬件協同設計的方法。在合理劃分硬件和軟件任務的基礎上,使設計更好地達到了系統性能的要求。現在SoC已經在Xilinx VirtexII 2v1000 驗證平臺上順利運行,并成功進行了和服務器的互聯互通測試。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區(qū)

        關閉