新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 并行NOR Flash在SOPC開發中的應用設計

        并行NOR Flash在SOPC開發中的應用設計

        作者: 時間:2010-07-28 來源:網絡 收藏

          4 存儲非易失數據或參數

          有時候系統需要存儲非易失的數據或參數,這就需要通過編寫程序直接對J3D進行讀/寫操作。當然,前提是先要在EDK中為J3D添加一個XPS MCH EMC接口。這個接口對并行 和SRAM來說都是適用的,如果用于SRAM則可以直接讀/寫,不需要驅動,而用于并行則需要自己編寫相應的驅動程序。下面為自行編寫的一個執行塊擦除、單字寫、單字讀操作的程序。需要注意的是: 寫操作前一定要先進行擦除操作,寫命令或寫數據之后一定要對狀態寄存器進行判斷是否完成相應操作;讀操作則很簡單,像SRAM的讀/寫一樣。

          Xuint16 data=0xF0F0;

          Xuint16 Status,ReadData;

          /*塊擦除程序*/

          XIo_Out16(XPAR_FLASH_16MX8_MEM0_BASEADDR,0x2020 );//指定地址塊的擦除設置

          XIo_Out16(XPAR_FLASH_16MX8_MEM0_BASEADDR,0xD0D0 );//指定地址塊的擦除確認

          do{

          Status = XIo_In16(XPAR_GENERIC_EXTERNAL_MEMORY_MEM0_BASEADDR);

          }while ((Status 0x0080) != 0x0080);//讀狀態寄存器直至塊擦除完成

          /*單字寫程序*/

          XIo_Out16(XPAR_FLASH_16MX8_MEM0_BASEADDR,0x4040 );//指定地址處單字寫操作設置

          XIo_Out16(XPAR_FLASH_16MX8_MEM0_BASEADDR,data );//向指定地址處寫入一個字長的數據

          do{

          Status = XIo_In16(XPAR_GENERIC_EXTERNAL_MEMORY_MEM0_BASEADDR);

          }while ((Status 0x0080) != 0x0080);//讀狀態寄存器直至寫操作完成

          /*單字讀程序*/

          ReadData=XIo_In16(XPAR_FLASH_16MX8_MEM0_BASEADDR );//讀相應地址處的數據

          還有一種情況是在系統運行前就把數據寫入中。首先,把數據寫入一個二進制文件中。注意,MicroBlaze的存儲格式是BigEndian(即高字節數據保存在低地址,低字節數據保存在高地址),PC機的存儲格式則是LittleEndian(即高字節數據保存在高地址,低字節數據保存在低地址),因此如果是用VC++產生的二進制文件,一定要進行高、低字節交換。在Matlab中生成數據文件則可以在相應的文件操作函數中添加參數’b’(表示以BigEndian格式存儲),如FileID=fopen(’data.bin’,’w+’,’b’)。產生的二進制文件可以通過Program Flash Memory對話框下載到J3D中,注意不要選中Autoconvert file to SREC format when programming flash和Create Flash Bootloader Application選項。

          結語

          本文討論了在以Xilinx Spartan XC3S1600E為基礎的設計中,Intel J3D并行 Flash的4種不同用途及其使用方法與技巧,尤其對一些技術關鍵問題予以詳細的闡述,其中融入了筆者在項目開發中的實際經驗,具有較高的參考價值。J3D既可以用于存儲配置比特流,又可以存儲軟處理器程序代碼,也可以存儲非易失的數據和參數,甚至三者可以并存于同一片J3D中。本文只是以Intel J3D并行 Flash為例討論其在開發中的用法,這些方法同樣適用于其他廠家具有CFI(Common Flash Interface)接口的并行NOR Flash。靈活地綜合運用這些方法,對于開發具有重要意義。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 4 下一頁

        關鍵詞: FPGA SOPC NOR Flash 嵌入式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贵港市| 汕头市| 罗山县| 禄丰县| 喀什市| 乌拉特前旗| 遂昌县| 丹棱县| 晋州市| 张家界市| 即墨市| 宿州市| 永修县| 宝山区| 乡城县| 淄博市| 弥勒县| 博爱县| 普定县| 太仆寺旗| 甘洛县| 治多县| 秦皇岛市| 溆浦县| 天全县| 新竹市| 任丘市| 石楼县| 绩溪县| 咸丰县| 堆龙德庆县| 新乐市| 西乡县| 巴青县| 衡东县| 绥滨县| 贡山| 富平县| 社旗县| 大石桥市| 咸阳市|