新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 利用Java良好的移植特性的FPGA可編程嵌入式系統

        利用Java良好的移植特性的FPGA可編程嵌入式系統

        作者: 時間:2012-07-12 來源:網絡 收藏

        1. 應用程序代碼(包括可對進行編程的比特流)下載協議;

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

          2. 用于遠程管理的維護相關的協議;

          3. 控制對訪問權限的認證協議。

          管理器包括基于socket連接的客戶端類加載器。遠端應用程序可以下載到本地并按照下面的過程執行:

          1. 完成認證過程,系統進入管理模式;

          2. 下載應用程序代碼,完成系統初始化,比如加載比特流到相應的存儲單元;

          3. 執行新的應用程序。

          在該系統中,為了簡化起見,預先映射硬件方法地址到確定的系統物理存儲區,目的是為了尋址操作的方便快捷。

          由于我們使用了軟件平臺,應用程序就無法直接訪問底層的硬件。這就是說,運行在處理器虛擬機上的應用程序不能直接訪問映射到中硬件方法的緩存區域。為解決這個問題,理論上可以采用下面兩種方法:

          1. 修改虛擬機,使其具有對處理器物理地址的直接訪問能力;

          2. 單獨設計一種Java本地接口(JNI),使得應用程序通過該接口提供的功能實現對硬件方法映射到的物理地址的訪問。

          盡管第一種方案的效率較高,并且沒有引入額外開銷,但是修改Java虛擬機內核是相當繁雜的工作,同時也可能會引起潛在的系統不穩定。第二種方案雖然引入了一定的額外開銷,但便于和實現。因此,我們采用方案二,在Java虛擬機和Java本地接口之外又設計了一個本地通信庫。

          本地通信庫API形式如下:

          int hwWriteXXX(int addr, XXX p);

          int hwWriteArrayXXX(int addr, XXX[] p);

          XXX hwReadXXX(int addr);

          XXX[] hwReadArrayXXX(int addr);

          int hwConfig(int cf_mem_addr, int bitstr_size);

          Java本地接口層接口的形式如下:

          class HWInterface{

          static int ConfigStatus;

          public static native int setParam(CID hw_cid, object P)

          {

          if(type_of_P == XXX)

          err = hwWriteXXX(hw_cid.addr, (XXX)P);

          return err;

          }

          public static native int getResult(CID hw_cid, object R);

          public static native int setCMD(CID hw_cid, int cmd);

          public static native int getStatus(CID hw_cid);

          public synchronized static native int configHW( CID hw_cid);

          }

          在上面代碼中,XXX表示基本的Java數據類型如整型(integer)、浮點型(float)、雙精度型(double)等。

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


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 长岛县| 铁力市| 盐津县| 张家口市| 赣州市| 顺平县| 宾川县| 太康县| 台江县| 贡山| 天津市| 栖霞市| 祁东县| 神农架林区| 和田县| 商南县| 京山县| 丰顺县| 十堰市| 建阳市| 会昌县| 邯郸县| 东兰县| 汤阴县| 乾安县| 宁晋县| 镇平县| 乌恰县| 红安县| 准格尔旗| 荔波县| 望都县| 濮阳县| 贡觉县| 泗阳县| 霞浦县| 湘乡市| 恩施市| 南漳县| 衡阳县| 德化县|