本篇試用報告由發燒友【華仔stm32】提供,原文標題《【飛凌OKA40i-C開發板試用體驗】編譯環境的搭建以及編寫自己的第一個helloworld》,感謝【華仔stm32】的支持。
筆者主要下載了官方已經建立好環境的Ubuntu虛擬機包,還有OKA40i-C開發板的Linux用戶資料。
![08e07ec8-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lmAbjueAAPxBc1I-5c913.png)
【1】建立編譯環境
1、安裝ubuntu虛擬機,由于我在以前的開發板試用中已經安裝好了VMware。這里就不再展示,如果沒有安裝的,請自行根據OKA40i-C開發板用戶編譯手冊的第一、三章來安裝,手冊有詳細的安裝說明:
![09182bf2-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqAessQAAh6VTb2e2o125.png)
2、我這里直接按照手冊的第二章,直接就有現成的環境,應該很快就可以。安裝好后打開虛擬機:
![095d6596-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqALJFOAAO5IQq9Uv4966.png)
3、仔細閱讀編譯手冊《第四章:linux編譯篇》,并一步步實現。
先在虛擬機中的/home/目錄下新建work文件夾,并把OKA40i-C用戶資料-20220322\Linux\源碼\目錄下的xaa、xab拷貝到虛擬機work目錄下面:
![09865dc0-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqAUl_dAAHwr5CEvK4399.png)
將共享文件夾中的源碼拷貝到 ubuntu 的/home/forlinx/work 目錄下并校驗。
![09c8e320-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqALBz2AAF-hRB7yLY201.png)
合并源碼,進行校驗和解壓。
![09ed069c-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqAa0seAADx0H17GKg084.png)
解壓后進入lichee目錄下面:
![0a11888c-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqARiNYAADdCddCoOI397.png)
這個源碼包很大,差不多70G,所以大家要準備一個大的硬盤,要不一下就“爆炸”。
![0a4f158a-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqAeDsgAACWJWfmkwo057.png)
解壓文件系統:(注意)這里文件里的解壓文件跟實際的不同,這里是rootfs-a40i.tar.gz。
![0a88b2cc-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lqAOtLQAAEzN9Edtmc170.png)
![0a94aa0a-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luAQOmMAAFFKVdE548756.png)
到這里,源碼解壓完畢,我發現我的硬盤只有4G不到了,趕緊把虛擬機換個硬盤。
![0aba4012-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luAKateAABZbBqsIs4112.png)
換了硬盤接著來編譯源碼,按照《手冊》4.2.1一步步設置:
![0ad1abda-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luAeKWnAANTITgt7KE191.png)
然后編譯內核:
forlinx@ubuntu:~/work/lichee$ sudo ./build.sh -m kernel
然后就要耐心等待,看大家自己的電腦來決定:
![0b03a414-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luATT_qAACkQuJLcw0993.png)
生成rootfs.ext4、鏡像打包:
![0b1eefee-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luAC0bXAAMZX57bfbo885.png)
![0b4d1c2a-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4luAZ1W9AAHDXeMZO0o562.png)
打包:
![0b541bec-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyAEOWGAACMF5cmX1E564.png)
打包結束。
![0b6e00b6-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyAOUYmAAB4EOm_Xww930.png)
至此源碼的編譯到這里就結束了。這是我第一次編譯源碼,教程寫得非常詳細,大家應該對照起來沒有什么問題。這里建議的就是硬盤一定要留100G。
當然大家要是不想折騰源碼編譯,在飛凌嵌入式官方提供的OKA40i-C、OKT3-C_Linux3.1.0用戶資料-20220322\Linux\鏡像\目錄下面有編譯好的好些包,大家可以自己選擇下載:
![0b86b4c6-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyAWimkAAKf4LdM9U0818.png)
【2】鏡像燒寫
1、將生成的sun8iw11p1_linuxOKA40i_C_uart0-1024x600.img文件拷到win下面。
2、安裝PhoenixSuit。安裝包在OKA40i-C、OKT3-C_Linux3.1.0用戶資料-20220322\Linux\工具目錄中,安裝過程這里省略。
3、燒寫,可以多試幾次。
![0bac427c-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyAWW70AAud6dSVjek983.png)
【3】編譯自己的程序
在work目錄下新建一個helloworld文件夾,在helloworld文件夾內新建helloworld.c,寫代碼如下:
#include
int main(void)
{
printf("helloworld!\r\n");
printf("hello OKA40i-C\r\n");
return 0;
}
在lichee/buildroot-201611/target/user_rootfs_apps/cmd/subs下的rtc中復制一個makefile文件過來,并修改為:
DEST_DIR ?=_install
#CC ?=arm-linux-gcc
CC =arm-linux-gnueabihf-gcc-5.3.1
build:
@$(CC) -o $(TARGET) helloworld.c
hold:
[url=home.php?mod=space&uid=70594]@echo[/url] "helloworld hold[skip]"
install:
[url=home.php?mod=space&uid=2293869]@MKDIR[/url] -p $(DEST_DIR)
@cp $(TARGET) $(DEST_DIR)
uninstall:
@rm -fr $(DEST_DIR)/$(TARGET)
distclean: uninstall
@rm -fr $(TARGET)
@rm -fr _install
然后執行make:
![0bf49aea-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyAR8OoAABR96Npg-g129.png)
沒有報錯,在當前目錄下生成的helloworld文件:
![0c0ec622-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/32/wKgaomTn4lyATBOmAABDMh2oRMU700.png)
把helloworld拷到開發板下面,修改權限就可以運行了:
![0c26766e-5ec3-11ed-b116-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/33/wKgaomTn4l2AYBxzAAEy6z_zzYc387.png)
-
ARM
+關注
關注
134文章
9172瀏覽量
369262 -
嵌入式技術
+關注
關注
10文章
360瀏覽量
36836
發布評論請先 登錄
相關推薦
榜樣力量,智領未來——2024年度電子發燒友社區表彰
華秋電子 | 電子發燒友亮相OpenHarmony人才生態大會2024
【AG32開發板體驗連載】網絡攝像頭
i.MX Linux開發實戰指南—基于野火i.MX系列開發板
【BearPi-Pico H3863星閃開發板體驗連載】開發環境搭建
【BearPi-Pico H3863星閃開發板體驗連載】玩轉星閃,可視化呈現
【米爾NXP i.MX 93開發板試用評測】01.i.MX 93開發環境的搭建
鴻蒙OpenHarmony【標準系統編譯】 (基于RK3568開發板)
![鴻蒙OpenHarmony【標準系統<b class='flag-5'>編譯</b>】 (基于RK3568<b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙OpenHarmony【小型系統編譯】 (基于Hi3516開發板)
![鴻蒙OpenHarmony【小型系統<b class='flag-5'>編譯</b>】 (基于Hi3516<b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C9/99/wKgaomYeL0WAZFDHAAACSiKnE8w930.jpg)
鴻蒙OpenHarmony【輕量系統編譯】 (基于Hi3861開發板)
![鴻蒙OpenHarmony【輕量系統<b class='flag-5'>編譯</b>】 (基于Hi3861<b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
評論