java7 arm_zynq7000系列移植—JDK1.7 移植到嵌入式ARM平台
今天無(wú)意間搜索到 armv7的硬件相關(guān)信息——ARM 浮點(diǎn)運(yùn)算
硬浮點(diǎn)Hard-float
編譯器將代碼直接編譯成發(fā)射給硬件浮點(diǎn)協(xié)處理器(浮點(diǎn)運(yùn)算單元FPU)去執(zhí)行。FPU通常有一套額外的寄存器來(lái)完成浮點(diǎn)參數(shù)傳遞和運(yùn)算。
軟浮點(diǎn) Soft-float
編譯器把浮點(diǎn)運(yùn)算轉(zhuǎn)換成浮點(diǎn)運(yùn)算的函數(shù)調(diào)用和庫(kù)函數(shù)調(diào)用,沒(méi)有FPU的指令調(diào)用,也沒(méi)有浮點(diǎn)寄存器的參數(shù)傳遞。浮點(diǎn)參數(shù)的傳遞也是通過(guò)ARM寄存器或者堆棧完成。 現(xiàn)在的Linux系統(tǒng)默認(rèn)編譯選擇使用hard-float,即使系統(tǒng)沒(méi)有任何浮點(diǎn)處理器單元,這就會(huì)產(chǎn)生非法指令和異常。因而一般的系統(tǒng)鏡像都采用軟浮點(diǎn)以兼容沒(méi)有VFP的處理器。
上次在ARM平臺(tái)zynq7000 系列下成功搭建JRE8環(huán)境,下載的源碼包是ejdk-8u191-linux-arm-sflt.tar.gz。而sflt代表的是——軟浮點(diǎn) Soft-float。
由此可見(jiàn)zynq7000系列下的ARM核浮點(diǎn)運(yùn)算是——軟浮點(diǎn) 運(yùn)算(Soft-float)。
在zynq7000系列下安裝JDK的前提條件是:需要安裝適用于軟浮點(diǎn)運(yùn)算的JDK。
遺憾的是JDK1.8到目前都沒(méi)有提供軟浮點(diǎn)運(yùn)算相應(yīng)的源碼包,而JDK1.7及其以下的版本提供了相應(yīng)的源碼包。
1. 下載支持軟浮點(diǎn)運(yùn)算的JDK1.7
2. 將源碼包解壓到zynq根文件系統(tǒng)中
使用以下命令解壓:
# tar -zxvf jdk-7u45-linux-arm-vfp-sflt.tar.gz
By the way: 這個(gè)JDK源碼包解壓后有160多M,需要擴(kuò)容一下根文件系統(tǒng)的大小。
關(guān)于擴(kuò)容根文件系統(tǒng)請(qǐng)參考我寫(xiě)的這篇博文:https://blog.csdn.net/QiHsMing/article/details/85085596
3. 配置環(huán)境變量
配置環(huán)境變量和一般的linux系統(tǒng)相同:
1)打開(kāi)配置文件profile。
# vi /etc/profile
2)在文件末尾添加環(huán)境變量:
JAVA_HOME=/home/root/jdk1.7.0_45
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
3)使配置文件 profile 立即生效
# source /etc/profile
或
# . /etc/profile
4. 驗(yàn)證java運(yùn)行環(huán)境
輸入以下命令:
# java -version
驗(yàn)證結(jié)果如圖所示。
5. 運(yùn)行HelloWorld示例
1)新建HelloWorld.java文件
# vi HelloWorld.java
編譯運(yùn)行:
# javac HelloWorld.java
#java HelloWorld
總結(jié)
以上是生活随笔為你收集整理的java7 arm_zynq7000系列移植—JDK1.7 移植到嵌入式ARM平台的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java singleton 数据清楚_
- 下一篇: java实现打印购物清单jframe_在