Linux之C應(yīng)用編程點(diǎn)燈步驟
基于Linux的C應(yīng)用編程,是學(xué)習(xí)嵌入式的一個重要分支,今日歷經(jīng)萬難,才把燈給點(diǎn)亮,我覺得還是有必要記錄一下的。
首先是要準(zhǔn)備的硬件條件:
PC一臺;
開發(fā)板(正點(diǎn)原子IMX6ULL-MINI,eMMC+DDR);
2根USB數(shù)據(jù)線;
然后是軟件部分:
VMware+Ubuntu18;
SecureCRT7.0;
VScode(ubuntu);
XFTP(文件傳輸工具);
本次實(shí)驗(yàn)的具體框圖如下:

下面開始每一步的詳細(xì)介紹:
第一部分:先給開發(fā)板燒入系統(tǒng)。
??????? 燒錄有2種方法,每種方法又可以燒在不同的存儲介質(zhì)上。分別是USB_OTG和腳本燒錄,可以燒在SD卡、eMMC或NANDFlash上。本次實(shí)驗(yàn)是通過USB_OTG燒錄在eMMC上。
????????一根USB插在板子的USB_OTG上,燒系統(tǒng)用;另一根插在USB_TTL上,與板子通信用。

因?yàn)槭怯肙TG燒錄,所以撥碼開關(guān)撥到如圖所示的位置,即0100 0000。

然后打開燒錄軟件,這里使用的是正點(diǎn)原子家的,可以去他家找下載得到。根據(jù)自己的選擇的燒錄方案選擇對應(yīng)的下載腳本,本次實(shí)驗(yàn)用到的是圖中綠色框選中的腳本。

打開界面如下:

出現(xiàn) “符合HID 標(biāo)準(zhǔn)的供應(yīng)商定義設(shè)備” 則表示沒問題,點(diǎn)擊“Start” 開始燒錄。
當(dāng)燒錄完成后,點(diǎn)擊Stop(一定要點(diǎn)),然后點(diǎn)擊Exit。

燒錄完成后,我們再次調(diào)整撥碼開關(guān),因?yàn)楸敬螌?shí)驗(yàn)是EMMC啟動,所以是10100110。

接下來打開SecureCRT,選擇開發(fā)板對應(yīng)的COM口,PC是通過串口來與板子通信的。新建一個繪畫然后有如下配置:


配置好SecureCRT后,按下板子上的RST按鈕。此時SecureCRT會接收到板子上的信息,表示正在啟動Linux系統(tǒng)。啟動完成如圖所示。

第二部分:程序編寫
?????進(jìn)入虛擬機(jī)下的Ubuntu18,在用戶目錄下建立一個Linux文件夾,然后建立兩個子目錄,分別是 vsCode_ws(放源代碼) 和tools(放交叉編譯工具鏈)。

在vscode_ws目錄下建立一個工程文件夾。

打開Vscode。打開剛剛建立的工程文件夾,然后建立一個.c文件

寫上代碼:
具體功能就步解釋了,不是本章重點(diǎn)。
第三部分,編譯,調(diào)試。
從正點(diǎn)原子資料中找到,fsl-imx-xll-glibc-x86_64.................sh 文件,用XFTP等文件傳輸工具從window傳到Ubuntu里面,放到剛剛建立的tools下。

如果是白色的字符顯示,說明不夠執(zhí)行權(quán)限。用一下命令添加權(quán)限。
然后執(zhí)行:
終端會問你存在那個目錄,我們默認(rèn)就好。根據(jù)提示敲入回車。
添加下環(huán)境變量:
搞定交叉編譯器后,就可以在Vscode中點(diǎn)擊“新建終端”,在終端里輸入:
然后可以發(fā)現(xiàn)我們生成了一個ELE文件,這個文件可以被開發(fā)板執(zhí)行。

再次打開XFTP,把這個文件傳去window。

打開SecureCRT,選擇一個目錄(別再root下,最好在用戶目錄下),輸入 rz 命令,回車。


執(zhí)行以下,發(fā)現(xiàn)失敗,應(yīng)該是權(quán)限不夠。

使用如下代碼給文件添加權(quán)限。

可以發(fā)現(xiàn)板子上的燈亮了。
然后試試關(guān)燈:

燈點(diǎn)好了,然后呢?
參考文獻(xiàn):
1、【正點(diǎn)原子】I.MX6U嵌入式Linux C應(yīng)用編程指南V1.4
2、【正點(diǎn)原子】I.MX6U用戶快速體驗(yàn)V2.6
正點(diǎn)原子資料下載:
http://www.openedv.com/docs/index.html