資料介紹
分享到:嵌入式系統是以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。嵌入式軟件的基本體系結構包括嵌入式實時操作系統RTOS(RealTime operating Systerrl)、嵌入式設備驅動程序、嵌入式應用程序編程接口(中間件)和嵌入式應用程序。
現階段,計算機應用的普及、互聯網技術的實用以及納米微電子技術的突破,正有力推動著21世紀的工業生產、商業活動、科學實驗和家庭生活等領域自動化和信息化進程。全過程自動化產品制造、大范圍電子商務活動、高度協同科學實驗以及現代化家居生活,為嵌入式產品造就了嶄新而巨大的商機。除了溝通信息高速公路的交換機、路由器和調制解調器,構建計算機集成制造系統(CIMS)所需的數據傳輸系統DCS(Data Communication System)和機器人以及規模較大的家用汽車電子系統,最有產量效益和時代特征的嵌入式產品應數因特網上的信息家電(information appliances),如網絡可視電話、網絡游戲機、電子商務、商務通(PDA)、移動電話以及多媒體產品(如電視機頂盒、DVD播放機、電子閱讀機)。
眾所周知,“一次編程,到處使用”的Java軟件概念原本就是針對網上嵌入式小設備提出的,幾經周折,目前SUN公司已推出了J2ME(Java 2 P1atform Micro Edition)針對信息家電的Java版本,其技術日趨成熟,開始投入使用。SUN公司Java虛擬機(JVM)技術的有序開放,使得Java軟件真正實現跨平臺運行,即Java應用小程序能夠在帶有JVM的任何硬軟件系統上執行。加上Java語言本身所具有的安全性、可靠性和可移植性等特點,對實現瘦身上網的信息家電等網絡設備十分有利,同時對嵌入式設備特別是上網設備軟件編程技術產生了很大的影響。
1 Java的性能問題及幾種解決方案
Java程序也有其本身的缺陷,那就是其效率問題。由于Java是一種介于解釋型和編譯型之間的語言,其對內存的管理是通過JVM虛擬機來實現的,同樣的程序,如果用編譯型語言C來實現,其運行速度一般要比Java快得多。因此,提高Java的性能就顯得十分重要。
迄今為止,人們為提高Java的運行速度而做出的許多努力,主要集中在程序設計的方法和模式選擇方面。但是由于算法和設計模式的優化是通用的,對Java有效的優化算法和設計模式,對其他編譯語言也基本適用,因此不能從根本上改變Java程序與編譯型語言在執行效率方面的差異。
另外,JIT(Just In Time,及時編譯)技術也是一個比較好的思想。它的基本原理是,首先,通過Java編譯器把Java源代碼編譯成與平臺無關的二進制字節碼。然后,在Java程序真正執行之前,系統通過JIT編譯器把Java的字節碼編譯為本地化機器碼。最后,系統執行本地化機器碼,不用對字節碼進行解釋。這樣做的優點是,大大提高了Java程序的性能,縮短了加載程序的時間;同時,由于編譯的結果并不在程序運行期間保存,因此也節約了存儲空間。缺點是,由于JIT編譯器對所有的代碼都想優化,因此同樣也占用了很多時間。
動態優化技術即提前編譯為機器碼的技術(dynamicopttmization,ahead of time technology)是提高Java性能的另一個嘗試。動態優化技術充分利用了Java源碼編譯、字節碼編譯、動態編譯和靜態編譯的技術。其輸入是Java的源碼或字節碼。而輸出是經過高度優化的可執行代碼和動態庫(WindoW中是.dil文件,UNIX中是共享庫.a.so文件)。其優點是能大大提高程序的性能,缺點是破壞了Java的可移植性,也對Java的安全帶來了一定的隱患。
2 JNI技術
實際上,有一種通常被忽視的技術可以在很大程度上解決這個難題,那就是JNI(Java Native Interface,Java本地化方法)。圖1是JNI技術實現的一般步驟。
(1)編寫Java類代碼
其中,需要JNI實現的方法應當用native關鍵字聲明。在該類中,用System.1oadLibrary()方法加載需要的動態鏈接庫。關鍵代碼如下:
//Compute.java
public class Compute{
public native double comp (double params);
static{
//調用動態鏈接庫
System.loadLibrary(“mathlib”);
}
(2)編譯成字節代碼
在這個過程中,由于采用了native關鍵字聲明,Java編譯器會忽視沒有代碼體的JNI方法部分。
(3)生成相關JNI方法的頭文件
這個過程的實現一般是通過利用jlavah-jni * class生成的,也可以手工生成該文件;但是由于Java虛擬機是根據一定的命名規范完成對JNI方法的調用,所以手工編寫頭文件需要特別小心。
上述文件產生的頭文件部分代碼如下:
//Compute.h
;
extern“C”{
JNIEXPORT jdoubleJNICALL Java_Compute_comp(JNI-Env *, jobject, jdoubleArray);
;
JNI函數名稱分為三部分:首先是Java關鍵字,供Java虛擬機識別;然后是調用者類名稱(全限定的類名,其中用下劃線代替名稱分隔符);最后是對應的方法名稱,各段名稱之間用下劃線分割。
JNI函數的參數也由三部分組成:首先是JNIEnv *,是一個指向JNI運行環境的指針;第二個參數隨本地方法是靜態還是非靜態而有所不同一一非靜態本地方法的第二個參數是對對象的引用,而靜態本地方法的第二個參數是對其Java類的引用;其余的參數對應通常Java方法的參數,參數類型需要根據一定規則進行映射。
現階段,計算機應用的普及、互聯網技術的實用以及納米微電子技術的突破,正有力推動著21世紀的工業生產、商業活動、科學實驗和家庭生活等領域自動化和信息化進程。全過程自動化產品制造、大范圍電子商務活動、高度協同科學實驗以及現代化家居生活,為嵌入式產品造就了嶄新而巨大的商機。除了溝通信息高速公路的交換機、路由器和調制解調器,構建計算機集成制造系統(CIMS)所需的數據傳輸系統DCS(Data Communication System)和機器人以及規模較大的家用汽車電子系統,最有產量效益和時代特征的嵌入式產品應數因特網上的信息家電(information appliances),如網絡可視電話、網絡游戲機、電子商務、商務通(PDA)、移動電話以及多媒體產品(如電視機頂盒、DVD播放機、電子閱讀機)。
眾所周知,“一次編程,到處使用”的Java軟件概念原本就是針對網上嵌入式小設備提出的,幾經周折,目前SUN公司已推出了J2ME(Java 2 P1atform Micro Edition)針對信息家電的Java版本,其技術日趨成熟,開始投入使用。SUN公司Java虛擬機(JVM)技術的有序開放,使得Java軟件真正實現跨平臺運行,即Java應用小程序能夠在帶有JVM的任何硬軟件系統上執行。加上Java語言本身所具有的安全性、可靠性和可移植性等特點,對實現瘦身上網的信息家電等網絡設備十分有利,同時對嵌入式設備特別是上網設備軟件編程技術產生了很大的影響。
1 Java的性能問題及幾種解決方案
Java程序也有其本身的缺陷,那就是其效率問題。由于Java是一種介于解釋型和編譯型之間的語言,其對內存的管理是通過JVM虛擬機來實現的,同樣的程序,如果用編譯型語言C來實現,其運行速度一般要比Java快得多。因此,提高Java的性能就顯得十分重要。
迄今為止,人們為提高Java的運行速度而做出的許多努力,主要集中在程序設計的方法和模式選擇方面。但是由于算法和設計模式的優化是通用的,對Java有效的優化算法和設計模式,對其他編譯語言也基本適用,因此不能從根本上改變Java程序與編譯型語言在執行效率方面的差異。
另外,JIT(Just In Time,及時編譯)技術也是一個比較好的思想。它的基本原理是,首先,通過Java編譯器把Java源代碼編譯成與平臺無關的二進制字節碼。然后,在Java程序真正執行之前,系統通過JIT編譯器把Java的字節碼編譯為本地化機器碼。最后,系統執行本地化機器碼,不用對字節碼進行解釋。這樣做的優點是,大大提高了Java程序的性能,縮短了加載程序的時間;同時,由于編譯的結果并不在程序運行期間保存,因此也節約了存儲空間。缺點是,由于JIT編譯器對所有的代碼都想優化,因此同樣也占用了很多時間。
動態優化技術即提前編譯為機器碼的技術(dynamicopttmization,ahead of time technology)是提高Java性能的另一個嘗試。動態優化技術充分利用了Java源碼編譯、字節碼編譯、動態編譯和靜態編譯的技術。其輸入是Java的源碼或字節碼。而輸出是經過高度優化的可執行代碼和動態庫(WindoW中是.dil文件,UNIX中是共享庫.a.so文件)。其優點是能大大提高程序的性能,缺點是破壞了Java的可移植性,也對Java的安全帶來了一定的隱患。
2 JNI技術
實際上,有一種通常被忽視的技術可以在很大程度上解決這個難題,那就是JNI(Java Native Interface,Java本地化方法)。圖1是JNI技術實現的一般步驟。
(1)編寫Java類代碼
其中,需要JNI實現的方法應當用native關鍵字聲明。在該類中,用System.1oadLibrary()方法加載需要的動態鏈接庫。關鍵代碼如下:
//Compute.java
public class Compute{
public native double comp (double params);
static{
//調用動態鏈接庫
System.loadLibrary(“mathlib”);
}
(2)編譯成字節代碼
在這個過程中,由于采用了native關鍵字聲明,Java編譯器會忽視沒有代碼體的JNI方法部分。
(3)生成相關JNI方法的頭文件
這個過程的實現一般是通過利用jlavah-jni * class生成的,也可以手工生成該文件;但是由于Java虛擬機是根據一定的命名規范完成對JNI方法的調用,所以手工編寫頭文件需要特別小心。
上述文件產生的頭文件部分代碼如下:
//Compute.h
;
extern“C”{
JNIEXPORT jdoubleJNICALL Java_Compute_comp(JNI-Env *, jobject, jdoubleArray);
;
JNI函數名稱分為三部分:首先是Java關鍵字,供Java虛擬機識別;然后是調用者類名稱(全限定的類名,其中用下劃線代替名稱分隔符);最后是對應的方法名稱,各段名稱之間用下劃線分割。
JNI函數的參數也由三部分組成:首先是JNIEnv *,是一個指向JNI運行環境的指針;第二個參數隨本地方法是靜態還是非靜態而有所不同一一非靜態本地方法的第二個參數是對對象的引用,而靜態本地方法的第二個參數是對其Java類的引用;其余的參數對應通常Java方法的參數,參數類型需要根據一定規則進行映射。
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式軟件開發的特點、設計流程、嵌入式軟件的結構
- 嵌入式軟件開發需要懂的硬件基礎
- 嵌入式軟件開發做什么?嵌入式開發培訓學哪些
- 嵌入式軟件開發環境
- 嵌入式軟件開發基礎實驗報告4×4鍵盤控制
- 嵌入式軟件開發基礎實驗報告數碼管顯示
- 嵌入式Linux與物聯網軟件開發C語言內核深度解析書籍的介紹
- 基于嵌入式軟件開發中構件技術的研究 6次下載
- 嵌入式軟件開發概述 1次下載
- ARM嵌入式軟件開發 64次下載
- 嵌入式軟件開發中構件技術的研究 32次下載
- Eclipse嵌入式軟件開發平臺 55次下載
- 嵌入式軟件開發與Embedded-GIS 36次下載
- 嵌入式系統軟件開發環境中調試器的設計
- 嵌入式軟件開發系列教程 (很多本書)
- 嵌入式系統中的實時操作系統 263次閱讀
- 嵌入式軟件開發和軟件開發的區別 1738次閱讀
- 基于功能安全的汽車嵌入式軟件單元驗證技術研究 847次閱讀
- 嵌入式軟件架構設計之程序分層 1024次閱讀
- 基于UML嵌入式軟件開發環境的自動取款機系統的應用方案 3608次閱讀
- 基于嵌入式軟件的JNI技術應用解析 1020次閱讀
- 詳解嵌入式軟件開發到FPGA開發 6329次閱讀
- 嵌入式軟件開發編程規范介紹 4206次閱讀
- 嵌入式軟件開發的這些編程規范你了解嗎 3809次閱讀
- 嵌入式開發和底層開發有什么區別 1.5w次閱讀
- 關于嵌入式軟件開發測試的十大秘訣 2257次閱讀
- 不得不看!關于嵌入式軟件開發的四點建議總結 7200次閱讀
- 嵌入式系統開發中驅動程序設計的5個方法盤點 3057次閱讀
- 在Nios II平臺下搭建RTEMS嵌入式開發簡析 1510次閱讀
- 學嵌入式開發入門_學嵌入式開發需要看哪些書籍 2.4w次閱讀
下載排行
本周
- 1TPS54202H降壓轉換器評估模塊用戶指南
- 1.02MB | 7次下載 | 免費
- 2華瑞昇CR215芯片數字萬用表原理圖
- 0.21 MB | 1次下載 | 3 積分
- 3SMD LED選型目錄 燈珠手冊
- 5.36 MB | 1次下載 | 免費
- 4Tiva C系列DK-TM4C129X入門指南
- 1.69MB | 1次下載 | 免費
- 5電涌保護器(SPD)的選擇、安裝以及裝配
- 4.57 MB | 1次下載 | 免費
- 6時源芯微EMC前車燈案例
- 458.59 KB | 1次下載 | 免費
- 7bq25890、bq25892雙級聯充電器EVM(PWR692)用戶指南
- 2.02MB | 1次下載 | 免費
- 8TPS54426降壓轉換器評估模塊用戶指南
- 847.7KB | 次下載 | 免費
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 156次下載 | 免費
- 22024PMIC市場洞察
- 2.23 MB | 63次下載 | 免費
- 3開關電源設計原理手冊
- 1.83 MB | 30次下載 | 免費
- 4智能門鎖原理圖
- 0.39 MB | 28次下載 | 免費
- 5OAH0428最新規格書(中文)
- 2.52 MB | 15次下載 | 7 積分
- 6ST7789V2單芯片控制器/驅動器英文手冊
- 3.07 MB | 9次下載 | 1 積分
- 7LTH7充電電路和鋰電池升壓5V輸出電路原理圖
- 0.04 MB | 7次下載 | 免費
- 8TPS54202H降壓轉換器評估模塊用戶指南
- 1.02MB | 7次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935119次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183334次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73807次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65987次下載 | 10 積分
評論
查看更多