成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

樹莓派如何構(gòu)建交叉編譯環(huán)境

這篇文章將為大家詳細(xì)講解有關(guān)樹莓派如何構(gòu)建交叉編譯環(huán)境,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、重慶網(wǎng)站建設(shè)公司、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站設(shè)計(jì)等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:戶外休閑椅等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致稱譽(yù)!

宿主機(jī):CentOS 7  64bit

目標(biāo)硬件平臺(tái):raspberry Pi 2B+

GPIO操作庫(kù):wiringPi

宿主機(jī)工作主目錄:/home/xxxxx/raspberryPi

git的安裝就不說(shuō)了。

進(jìn)入工作主目錄

1,下載 樹莓官方 交叉編譯工具 

 git clone git://github.com/raspberrypi/tools.git

進(jìn)入tools/arm-bcm2708/目錄

如果是32位系統(tǒng),使用gcc-linaro-arm-linux-gnueabihf-raspbian/bin

如果是64位系統(tǒng),使用gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin (本例)

把它添加到環(huán)境變量:

sudo nano ~/.bashrc  (~表示home目錄)

把 export PATH=$PATH:$HOME/raspberryPi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

添加到文件結(jié)尾,保存退出

使用   source  ~/.bashrc 使其生效,或者注銷/重啟

在任意目錄下:輸入 arm-linux-gnueabihf-gcc -v  如果可以找到編譯器,說(shuō)明OK

返回到工作主目錄

2,下載wiringPi (http://wiringpi.com/download-and-install/)

git clone git://git.drogon.net/wiringPi

在宿主機(jī)上下載是為了用其頭文件,所以不要進(jìn)入目錄 ./build

3,下載自己的開(kāi)發(fā)目錄,根據(jù)自己的情況

 git clone https://git.oschina.net/xxxxx.git

在目標(biāo)硬件平臺(tái)上,

同上下載wiringPi到某個(gè)目錄,然后這里要進(jìn)入目錄去 ./build

這樣在 /usr/local/lib 目錄下 會(huì)生成 libwiringPiDev.so.2.25 和 libwiringPi.so.2.25 (版本號(hào)和lib目錄位置有差異,可以先f(wàn)ind一下)

通過(guò)某種方式,把這些lib拷貝到宿主機(jī)工作目錄上。比如拷貝到 /home/xxxxx/raspberryPi/rpi2Dev/wiringPi_Lib目錄下

在宿主機(jī)上, 進(jìn)入到/home/xxxxx/raspberryPi/rpi2Dev/wiringPi_Lib目錄下

創(chuàng)建其無(wú)版本號(hào)的軟連接:

ln -s  libwiringPi.so.2.25   libwiringPi.so

ln -s  libwiringPiDev.so.2.25   libwiringPiDev.so

如果源文件要引用此lib庫(kù),則在makefile里面  -L/xxxx/xxxx -lwiringPi, 指定lib的位置

同時(shí),makefile還要指定包含文件的位置, -I 指定到 wiringPi目錄

參考makefile和源文件見(jiàn)結(jié)尾。

注意:其實(shí)理論上第三方的庫(kù)是可以在宿主機(jī)上交叉編譯的,而且應(yīng)該是那樣做的。

但是我打開(kāi)wiringPi的 build看了,也在其目錄下找了, 沒(méi)有類似configure這樣的指定工具鏈的東西,

可能是我不懂,反正沒(méi)搞定。如果誰(shuí)知道怎么搞,說(shuō)出來(lái)大家分享下。

如上一切搞定后,就可以編碼編譯了,編譯出的bin如何上傳到樹莓派上,方法就很多了。

說(shuō)一下我的方法。

因?yàn)閏entos上我有做網(wǎng)絡(luò)程序的開(kāi)發(fā),所以有安裝nginx.

然后我會(huì)把自己生成bin的目錄軟連接到nginx的web目錄下,

這樣在樹莓派端,使用 curl 等工具就可以下載到可執(zhí)行文件了。非常方便。

在樹莓派上寫個(gè)下載并執(zhí)行腳本,很簡(jiǎn)單的事情。

#make file of raspberri pi,cross
CC=arm-linux-gnueabihf-gcc  
LD=$(CC)

TARGET=hello
OBJECT=hello.o 

RASPBERRY_PI_DIR=/home/xxxxx/raspberryPi
WIRING_PI_INCLUDE_PATH=$(RASPBERRY_PI_DIR)/wiringPi/wiringPi
#此lib是先在 目標(biāo)平臺(tái)上生成的
WIRING_PI_LIB_PATH=$(RASPBERRY_PI_DIR)/rpi2Dev/wiringPi_Lib


$(TARGET):$(OBJECT)
	$(LD) -o $(TARGET) $(OBJECT) -L$(WIRING_PI_LIB_PATH) -lwiringPi

hello.o:hello.c 
	$(CC) -o hello.o -c hello.c -I$(WIRING_PI_INCLUDE_PATH)
	

clean:
	rm -f $(TARGET) $(OBJECT)
	
install:
	#sudo cp /home/xxxx/pi/bin/hello hello
	#cp -f $(TARGET) /usr/bin;chmod -R 777 /usr/bin/pushServer
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

#include <wiringPi.h> 

int main(void)  
{ 
	int bright ;
    printf("System start...\n");     
	
	if (wiringPiSetup () == -1)
		exit (1) ;
	
	pinMode (1, PWM_OUTPUT) ;
	
	while(1)
	{
		for (bright = 0 ; bright < 1024 ; ++bright)
		{
		  pwmWrite (1, bright) ;
		  delay (1) ;
		}

		for (bright = 1023 ; bright >= 0 ; --bright)
		{
		  pwmWrite (1, bright) ;
		  delay (1) ;
		}
	}
  
	return 0;
}

關(guān)于“樹莓派如何構(gòu)建交叉編譯環(huán)境”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

本文題目:樹莓派如何構(gòu)建交叉編譯環(huán)境
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article8/jjhhop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、服務(wù)器托管品牌網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)公司、用戶體驗(yàn)、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
亚东县| 开原市| 通化市| 邢台县| 广昌县| 文成县| 清远市| 柘城县| 高唐县| 明光市| 汨罗市| 科技| 金堂县| 灵山县| 调兵山市| 讷河市| 南投县| 资溪县| 沙田区| 额尔古纳市| 博乐市| 日土县| 青海省| 石楼县| 宝应县| 鹿邑县| 万安县| 布拖县| 苍溪县| 札达县| 邻水| 泽库县| 贺兰县| 准格尔旗| 安仁县| 安丘市| 苍南县| 台北市| 化州市| 榆树市| 苗栗县|