注:參考【正點(diǎn)原子】I.MX6U嵌入式Linux驅(qū)動開發(fā)指南V1.6
一、Ubuntu 和 Windows 文件互傳
在開發(fā)的過程中會頻繁的在 Windows 和 Ubuntu 下進(jìn)行文件傳輸,比如在 Windwos 下進(jìn)行代碼編寫,然后將編寫好的代碼拿到 Ubuntu 下進(jìn)行編譯。Windows 和 Ubuntu 下的文件互傳我們需要使用 FTP 服務(wù),設(shè)置方法如下:
1、開啟 Ubuntu 下的 FTP 服務(wù)
打開 Ubuntu 的終端窗口,然后執(zhí)行如下命令來安裝 FTP 服務(wù):
sudo apt-get install vsftpd
等待軟件自動安裝,安裝完成后使用 VI 命令打開/etc/vsftpd.conf,如下:
sudo vi /etc/vsftpd.conf
打開 vsftpd.conf 文件以后找到如下兩行:
local_enable=YESwrite_enable=YES
確保上面兩行前面沒有“#”,有的話就取消掉,完成以后如圖 4.1.1 所示:
修改完 vsftpd.conf 以后保存退出,使用如下命令重啟 FTP 服務(wù):
sudo /etc/init.d/vsftpd restart
2、Windows 下 FTP 客戶端安裝
Windows 下 FTP 客戶端我們使用 FileZilla,這是個免費(fèi)的 FTP 客戶端軟件,可以在 FileZilla官網(wǎng)下載,下載地址如下:https://www.filezilla.cn/download
Ubuntu 作為 FTP 服務(wù)器,F(xiàn)ileZilla 作為 FTP 客戶端,客戶端肯定要連接到服務(wù)器上,打開站點(diǎn)管理器,點(diǎn)擊:文件->站點(diǎn)管理器,點(diǎn)擊“新站點(diǎn)(N)”按鈕來創(chuàng)建站點(diǎn),新建站點(diǎn)以后就會在“我的站點(diǎn)”下出現(xiàn)新建的這個站點(diǎn),站點(diǎn)的名稱可以自行修改,選中新創(chuàng)建的站點(diǎn),然后對站點(diǎn)的“常規(guī)”進(jìn)行設(shè)置,設(shè)置如圖所示:
Ubuntu系統(tǒng)查看IP地址,在終端輸入:
ifconfig
如果提示'Command 'ifconfig' not found, but can be installed with:sudo apt install net-tools”,在終端輸入:
sudo apt install net-tools
如果Ubuntu 文件目錄下的中文目錄都是亂碼的,這是因?yàn)榫幋a方式?jīng)]有選對,先斷開連接,點(diǎn)擊:服務(wù)器(S)->斷開連接,然后打開站點(diǎn)管理器,選中要設(shè)置的站點(diǎn)“Ubuntu”,選擇“字符集”,如下圖所示。
3、Ubuntu 下 NFS 和 SSH 服務(wù)開啟
3.1 NFS 服務(wù)開啟
后面進(jìn)行 Linux 驅(qū)動開發(fā)的時(shí)候需要 NFS 啟動,因此要先安裝并開啟 Ubuntu 中的 NFS 服務(wù),使用如下命令安裝 NFS 服務(wù):
sudo apt-get install nfs-kernel-server rpcbind
等待安裝完成,安裝完成以后在用戶根目錄下創(chuàng)建一個名為“l(fā)inux”的文件夾,以后所有的東西都放到這個“l(fā)inux”文件夾里面,在“l(fā)inux”文件夾里面新建一個名為“nfs”的文件夾,如圖所示:
圖中創(chuàng)建的 nfs 文件夾供 nfs 服務(wù)器使用,可以在開發(fā)板上通過網(wǎng)絡(luò)文件系統(tǒng)來訪問 nfs ,要先配置 nfs,使用如下命令打開 nfs 配置文件/etc/exports:
sudo vi /etc/exports
打開/etc/exports 以后在后面添加如下所示內(nèi)容:
/home/kodo/linux/nfs *(rw,sync,no_root_squash)
添加完成以后的/etc/exports 如圖 所示:
重啟 NFS 服務(wù),使用命令如下:
sudo /etc/init.d/nfs-kernel-server restart
3.2 SSH 服務(wù)開啟
開啟 Ubuntu 的 SSH 服務(wù)以后我們就可以在 Windwos 下使用終端軟件登陸到 Ubuntu,比如使用 SecureCRT,Ubuntu 下使用如下命令開啟 SSH 服務(wù):
sudo apt-get install openssh-server
上述命令安裝 ssh 服務(wù),ssh 的配置文件為/etc/ssh/sshd_config,使用默認(rèn)配置即可。
二、Ubuntu 交叉編譯工具鏈安裝
1、交叉編譯器安裝
ARM 裸機(jī)、Uboot 移植、Linux 移植這些都需要在 Ubuntu 下進(jìn)行編譯,編譯就需要編譯器,我們在第三章“Linux C 編程入門”里面已經(jīng)講解了如何在 Liux 進(jìn)行 C 語言開發(fā),里面使用 GCC 編譯器進(jìn)行代碼編譯,但是 Ubuntu 自帶的 gcc 編譯器是針對 X86 架構(gòu)的!而我們現(xiàn)在要編譯的是 ARM 架構(gòu)的代碼,所以我們需要一個在 X86 架構(gòu)的 PC 上運(yùn)行,可以編譯 ARM 架構(gòu)代碼的 GCC 編譯器,這個編譯器就叫做交叉編譯器,總結(jié)一下交叉編譯器就是:
1、它肯定是一個 GCC 編譯器。
2、這個 GCC 編譯器是運(yùn)行在 X86 架構(gòu)的 PC 上的。
3、這個 GCC 編譯器是編譯 ARM 架構(gòu)代碼的,也就是編譯出來的可執(zhí)行文件是在 ARM 芯片上運(yùn)行的。
交叉編譯器中“交叉”的意思就是在一個架構(gòu)上編譯另外一個架構(gòu)的代碼,相當(dāng)于兩種架構(gòu)“交叉”起來了。
交叉編譯器有很多種,我們使用 Linaro 出品的交叉編譯器,Linaro 是一間非營利性質(zhì)的開放源代碼軟件工程公司,Linaro 開發(fā)了很多軟件,最著名的就是 Linaro GCC 編譯工具鏈(編譯器),關(guān)于 Linaro 詳細(xì)的介紹可以到 Linaro 官網(wǎng)查閱。Linaro GCC 編譯器下載地址如下:
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
打開以后下載界面如圖所示:
在圖中有很多種 GCC 交叉編譯工具鏈,我所使用的 I.MX6U-ALPHA 開發(fā)板是一個 Cortex-A7 內(nèi)核的開發(fā)板,因此選擇 arm-linux-gnueabihf,點(diǎn)擊后面的 “Binaries”進(jìn)入可執(zhí)行文件下載界面,如圖所示:
在寫教程的時(shí)最新的編譯器版本是 7.3.1,但在測試 7.3.1 版本編譯器的時(shí)候發(fā)現(xiàn)編譯完成后的 uboot 無法運(yùn)行。所以不推薦使用最新版的編譯器。筆者測試過 4.9 版本的編譯器可以正常工作,所以需要下載 4.9 版本的編譯器,下載地址為:
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
上圖中有很多種交叉編譯器,我們只需要關(guān)注這兩種:
gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
第一個是針對 32 位系統(tǒng)的,第二個是針對 64 位系統(tǒng)的。大家根據(jù)自己所使用的 Ubuntu 系統(tǒng)類型選擇合適的版本,比如我安裝的 Ubuntu 16.04 是 64 位系統(tǒng),因此我要使用 :
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
在 Ubuntu 中創(chuàng)建目錄:/usr/local/arm,命令如下:
sudo mkdir /usr/local/arm
創(chuàng)建完成以后將剛剛拷貝的交叉編譯器復(fù)制到 /usr/local/arm 這個目錄中,在終端使用命令“ cd ” 進(jìn)入到存放有交叉編譯器的目錄,比如我前面將交叉編譯器拷貝到了目錄“/home/zuozhongkai/linux/tool”中,然后使用如下命令將交叉編譯器復(fù)制到 /usr/local/arm 中:
sudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f
操作步驟如圖所示:
拷貝完成以后在/usr/local/arm 目錄中對交叉編譯工具進(jìn)行解壓,命令如下:
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz
等待解壓完成,解壓完成以后會生成一個名為“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf”的文件夾,這個文件夾里面就是我們的交叉編譯工具鏈。
修改環(huán)境變量,使用 VI 打開/etc/profile 文件,命令如下:
sudo vi /etc/profile
打開/etc/profile 以后,在最后面輸入如下所示內(nèi)容:
export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin
添加完成以后的/etc/profile 如圖所示:
修改好以后就保存退出,重啟 Ubuntu 系統(tǒng),交叉編譯工具鏈(編譯器)就安裝成功了。
三、VS Code安裝
VSCode 下載地址是:https://code.visualstudio.com/
1、Windows 版本安裝
手動下載安裝
2、Linux 版本安裝
Linux 下的 VSCode 安裝包為.deb 格式,使用如下命令安裝:
sudo dpkg -i code_1.32.3-1552606978_amd64.deb
3、Visual Studio Code 插件的安裝
VSCode 支持多種語言,比如 C/C++、Python、C#等等,主要用來編寫 C/C++ 程序的,所以需要安裝 C/C++ 的擴(kuò)展包,我們需要按照的插件有下面幾個:
1)、One Dark Pro,VSCode 的主題。
2)、C/C++ Snippets,即 C/C++重用代碼塊。
3)、C/C++ Advanced Lint,即 C/C++靜態(tài)檢測 。
4)、Code Runner,即代碼運(yùn)行。
5)、GBKtoUTF8,將 GBK 轉(zhuǎn)換為 UTF8。
6)、ARM,即支持 ARM 匯編語法高亮顯示。
7)、C/C++,這個肯定是必須的。
8)、Include AutoComplete,即自動頭文件包含。
9)、Rainbow Brackets,彩虹花括號,有助于閱讀代碼。
10)、Chinese(Simplified),即中文環(huán)境。
11)、vscode-icons,VSCode 圖標(biāo)插件,主要是資源管理器下各個文件夾的圖標(biāo)。
12)、compareit,比較插件,可以用于比較兩個文件的差異。
13)、DeviceTree,設(shè)備樹語法插件。
14)、TabNine,一款 AI 自動補(bǔ)全插件,強(qiáng)烈推薦,誰用誰知道!
上一篇:【IMX6ULL學(xué)習(xí)筆記】二、U-Boot命令合集
下一篇:IMX6ULL開發(fā)平臺Linux-LED實(shí)驗(yàn)
推薦閱讀最新更新時(shí)間:2025-06-08 12:57




設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- AM1DR-2403SH30Z 3.3V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- 使用 Analog Devices 的 LTC3728LIGN 的參考設(shè)計(jì)
- 用于開/關(guān)控制應(yīng)用的 AM2G-4818SZ 18V 2 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- ToubanPCB
- 使用 Infineon Technologies AG 的 TDA 16846-2 的參考設(shè)計(jì)
- ADA4610-2ARZ-R7 正峰值檢波器運(yùn)算放大器的典型應(yīng)用電路
- LT6656ACS6-2.5、2.5V 精密電流和升壓電壓基準(zhǔn)的典型應(yīng)用
- 使用 Omron 的 S8VS-09024BS 的參考設(shè)計(jì)
- 使用具有 PowerPath 和 2A 輸入限制的 LTC4162EUFD-L41 9V 至 35V、2 節(jié)、3.2A 充電器的典型應(yīng)用
- VL53L0X測距模塊
- LPC2000系列學(xué)習(xí)筆記10--Bootloader
- 在線式氣體檢測儀故障原因及排除故障的方法
- Mobileye與極氪合作開發(fā)消費(fèi)級自動駕駛汽車
- 專注于創(chuàng)“芯” 鴻博微榮獲創(chuàng)新創(chuàng)業(yè)大賽優(yōu)勝獎
- 工作場所中的協(xié)作:新一代協(xié)作機(jī)器人如何改善手動工作的性質(zhì)
- 2022年CIS市場將達(dá)219億美元,三星進(jìn)一步縮小與索尼差距
- “太湖之芯”創(chuàng)業(yè)大賽賦能我國集成電路產(chǎn)業(yè)建設(shè)!
- 機(jī)械硬盤:云時(shí)代的下一個犧牲品
- e絡(luò)盟社區(qū)開展第三期“可編程之路”培訓(xùn)活動
- 蘋果被判侵犯3G專利,需向西班牙公司TOT賠償1.1億美元
- 從設(shè)計(jì)概念到 FPGA 原型僅需數(shù)分鐘,印度 InCore 完成 SoC Generator 平臺硅驗(yàn)證
- 消息稱因難尋客戶,三星推遲美國芯片工廠的完工時(shí)間
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動駕駛安全性
- 曉鶯說:線控制動變革風(fēng)云
- 大眾商用車推出AirConsole 將其信息娛樂系統(tǒng)擴(kuò)展為游戲機(jī)
- 福州大學(xué)發(fā)明新機(jī)器視覺傳感器 可使機(jī)器人對極端光照做出超快反應(yīng)
- 蘋果獲沉浸式虛擬顯示器相關(guān)的專利
- 英特爾汽車“折戟”,十年布局一夜歸零
- 提升潔凈生產(chǎn)環(huán)境,AAF為中國“芯”護(hù)航
- 關(guān)于ARM DS-5的求助
- 如何捕捉瞬間高溫溫度值,用什么傳感器件
- 使用毫微功耗運(yùn)算放大器實(shí)現(xiàn)電流感應(yīng)
- 靈動微MM32SPIN25PF可兼容替換MM32F031CBT6
- TMS320F28335之GPIO引腳通用輸入/輸出口
- 這可能是最好的模擬工程師電路設(shè)計(jì)指導(dǎo)手冊(內(nèi)含運(yùn)算放大器等文章匯編)
- 寫一下雕刻機(jī)制作的思路,拋磚引玉邀您一起參與
- 糾結(jié)的國內(nèi)醫(yī)療電子
- 穩(wěn)壓二極管的選用原則和方法