国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

樹莓派裸機(jī)開發(fā)步驟

嵌入式IoT ? 來源:嵌入式IoT ? 作者:嵌入式IoT ? 2020-09-25 15:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

樹莓派4裸機(jī)基礎(chǔ)教程:環(huán)境搭建

1.文章目的

2.樹莓派4B的硬件配置

3.第一個(gè)基礎(chǔ)工程構(gòu)建

3.1 環(huán)境準(zhǔn)備

3.2 源代碼下載

3.3 代碼編譯與程序下載

3.4 樹莓派硬件鏈接

4.優(yōu)化調(diào)試手段

4.1 修改sd卡文件中的config.txt文件

4.2 修改網(wǎng)絡(luò)環(huán)境

4.3 修改代碼的鏈接地址

5.小結(jié)

1.文章目的

樹莓派4作為一款學(xué)習(xí)嵌入式arm開發(fā)的開發(fā)板,是非常不錯(cuò)的選擇。嵌入式開發(fā)往往需要的不僅僅是理論知識(shí),還需要?jiǎng)邮植僮鳎缓髮?shí)際體驗(yàn)效果。由于目前開發(fā)板要么資料太少,要么板子太貴,或者可玩性太低,所以嵌入式的入門和深入一直都是非常困難的問題。我寫樹莓派4裸機(jī)基礎(chǔ)教程、樹莓派4驅(qū)動(dòng)進(jìn)階、樹莓派4的RTOS這一些列的文章,也是希望借此機(jī)會(huì),和大家分享一下嵌入式開發(fā)過程的方方面面,也希望對學(xué)習(xí)嵌入式感興趣的人在閱讀完成這些文章中會(huì)有所收獲。由于樹莓派4的外設(shè),相對于前代的樹莓派2、樹莓派3等標(biāo)準(zhǔn)許多,完全可以作為學(xué)習(xí)嵌入式,學(xué)習(xí)arm編程的不錯(cuò)選擇。所謂萬變不離其宗,學(xué)會(huì)樹莓派4的嵌入式開發(fā),以后做其他的芯片的底層開發(fā)時(shí),也是可以借鑒這種思想的。

寫這些東西的目的全憑自己的興趣愛好,在工作之余培養(yǎng)自己的文檔寫作能力與專業(yè)技能,如果有涉及到不正確的觀點(diǎn)和知識(shí)點(diǎn)的地方還請多多指教。

2.樹莓派4B的硬件配置

樹莓派4b的性能非常強(qiáng),運(yùn)行Android和win10也毫無壓力。性能強(qiáng)大,但是價(jià)格卻非常的低,是一款學(xué)習(xí)嵌入式開發(fā)、學(xué)習(xí)arm開發(fā)的非常不錯(cuò)的開發(fā)板。

1.5GHz 4核心64位 ARM Cortex-A72 CPU (~3×倍性能)

1GB/2GB/4GB LPDDR4 SDRAM 內(nèi)存

全吞吐量千兆以太網(wǎng)

雙頻 802.11ac 無線網(wǎng)絡(luò)

藍(lán)牙 5.0

兩個(gè) USB 3.0 和兩個(gè) USB 2.0 接口

雙顯示器支持,分辨率高達(dá) 4K

VideoCore VI 顯卡,支持 OpenGL ES 3.x

HEVC 視頻 4Kp60 硬解碼

完全兼容早期的樹莓派產(chǎn)品

3.第一個(gè)基礎(chǔ)工程構(gòu)建

嵌入式代碼編譯開發(fā)一般是兩種,一種是通過IDE進(jìn)行編譯、下載、調(diào)試。這種開發(fā)的方式比較簡單,對環(huán)境配置的要求很低,只需要安裝IDE需要的環(huán)境即可。這種開發(fā)方式在開發(fā)單片機(jī)、中低端性能的芯片比較常見。另外一種就是在命令行中輸入相關(guān)的命令,需要自己手動(dòng)的去寫編譯腳本。這種常見的就是在Linux的開發(fā)過程中。

樹莓派程序的開發(fā)過程一般都沒有IDE,都是直接用GCC,所以我在進(jìn)行工程構(gòu)建的時(shí)候,也會(huì)采用GCC在控制臺(tái)輸入的方式進(jìn)行。工程構(gòu)建就需要自己解決了。目前常用的自動(dòng)化編譯工具就是Makefile。由于當(dāng)前的第一個(gè)項(xiàng)目的工程比較容易,所以當(dāng)前可用采用Makefile進(jìn)行項(xiàng)目工程的構(gòu)建。

3.1 環(huán)境準(zhǔn)備

在不同的平臺(tái)上進(jìn)行工程構(gòu)建的時(shí)候,首先需要準(zhǔn)備下面的環(huán)境:

1.arm交叉編譯工具鏈

2.可用執(zhí)行makefile的工具

交叉編譯工具鏈arm-none-eabi-gcc-5.4.1可以在官網(wǎng)上進(jìn)行下載,也可以到網(wǎng)盤中下載:

鏈接:https://pan.baidu.com/s/1ad3d-pl4YbpgYrxKg6mX9g

提取碼:f3cm

上述網(wǎng)盤中的gcc只適用于windows,如果是其他的系統(tǒng),請自行下載arm的交叉編譯工具鏈。

如果要在windows上使用make命令,可以下載msys2,上面集成了make的環(huán)境。

然后將交叉編譯工具鏈加入到系統(tǒng)的環(huán)境變量中,同時(shí)打開msys64文件夾,修改msys2_shell.cmd

雙擊msys2_shell.cmd,打開窗口,確保輸入arm然后按下tab鍵可以看到如下的畫面

這樣系統(tǒng)環(huán)境就準(zhǔn)備完成了。

3.2 源代碼下載

源代碼工程已經(jīng)在GitHub存在了,相關(guān)源碼可以在如下地址中找到:

https://github.com/bigmagic123/raspi4-bare-metal.git

在arm/1.compilation_environment中可以看到相關(guān)的文件列表。

文件名 說明
link.ld 鏈接文件
main.c 函數(shù)入口
Makefile 編譯規(guī)則文件
start.S 初始化匯編代碼
uart.c 串口相關(guān)的代碼
uart.h 串口相關(guān)的頭文件

該代碼的功能是啟動(dòng)跳轉(zhuǎn)到c代碼去執(zhí)行,然后串口輸出hello world程序。

3.3 代碼編譯與程序下載

上面兩個(gè)步驟完成之后,在MSYS可以進(jìn)入到工程目錄,輸入make直接編譯即可。

可以看到生成了kernel7.img固件。該固件可以放到板子上運(yùn)行。

3.4 樹莓派硬件鏈接

樹莓派4需要準(zhǔn)備一張空的SD卡、一個(gè)串口線輸出信息、一條TYPEC線供電。

首先需要將工程目錄的sd_boot下面的文件放到空的SD卡目錄中。然后將編譯好的kernel7.img放到SD卡中即可。

接著將串口線連接到樹莓派上。

接著打開串口,給開發(fā)板上電,可以看到串口的輸出信息:

Helloworld!

此時(shí)一個(gè)簡單的裸機(jī)程序就執(zhí)行起來了。

4.優(yōu)化調(diào)試手段

上述過程已經(jīng)搭建完成環(huán)境,并且可以看到串口輸出信息了。但是由于每次編譯固件后,需要將固件放到sd卡中去執(zhí)行,這樣操作比較的繁瑣,不適合學(xué)習(xí)嵌入式開發(fā)。所以可以通過樹莓派的uboot自動(dòng)去tftp服務(wù)器中獲取代碼。具體的步驟如下:

4.1 修改sd卡文件中的config.txt文件

將config.txt中的文件改為如下:

enable_uart=1 arm_64bit=0 kernel_addr=0x8000 kernel=u-boot32.bin core_freq=250

其實(shí)就是將kernel=kernel7.img改為kernel=u-boot32.bin。直接啟動(dòng)uboot。

4.2 修改網(wǎng)絡(luò)環(huán)境

如果要開發(fā)板從tftp服務(wù)器上獲取代碼,可以將開發(fā)板設(shè)置的與pc機(jī)服務(wù)器在同一網(wǎng)段內(nèi)。將網(wǎng)線插上路由器,開發(fā)板可以通過dhcp獲取ip地址。

U-Boot2020.07-rc1-g627e7ce(May112020-1954+0800) DRAM:1.1GiB RPI4ModelB(0xb03112) MMC:emmc2@7e340000:0,mmcnr@7e300000:1 LoadingEnvironmentfromFAT...OK In:serial Out:serial Err:serial Net: Warning:genet@7d580000MACaddressesdon'tmatch: AddressinDTisdc32c1:79 Addressinenvironmentisdc3222:50 eth0:genet@7d580000 Hitanykeytostopautoboot:0 U-Boot>

按照如下步驟進(jìn)行:

1.插上網(wǎng)線到路由器

2.設(shè)置環(huán)境變量

setenvbootcmd"dhcp0x00200000192.168.12.137:kernel7.img;dcacheflush;go0x00200000" saveenv

需要注意的是192.168.12.137為自己的電腦的ip地址。

3.電腦開啟TFTP服務(wù)器

注意:

如果是開發(fā)板直連電腦的網(wǎng)線,這樣設(shè)置是無效的,因?yàn)閜c機(jī)上一般不支持dhcp服務(wù)器。必須設(shè)置靜態(tài)ip地址。

然后開發(fā)板也需要給定一個(gè)ip地址??梢栽O(shè)置一個(gè)環(huán)境如下:

setenvipaddr10.1.1.100 saveenv reset

其中10.1.1.100是開發(fā)板的ip地址,與服務(wù)器是在同一網(wǎng)段。

setenvbootcmd"tftp0x0020000010.1.1.88:kernel7.img;dcacheflush;go0x00200000" saveenv

4.3 修改代碼的鏈接地址

由于uboot的啟動(dòng)地址與裸機(jī)代碼的地址不應(yīng)該在一個(gè)地方,uboot的啟動(dòng)地址為0x8000,而裸機(jī)代碼的地址現(xiàn)改為0x200000。

將該地址進(jìn)行設(shè)置即可。

重新編譯代碼,開發(fā)板上電即可??梢钥吹酱诖蛴〕鋈缦碌男畔ⅰ?/p>

這樣每次開發(fā)板上電后,都會(huì)從tftp服務(wù)器上去獲取代碼執(zhí)行。如果此時(shí)給樹莓派的供電線加上一個(gè)電源開關(guān),這樣這樣就能夠非常方便高效的調(diào)試代碼了。

5.小結(jié)

本文主要介紹樹莓派裸機(jī)開發(fā)的步驟。嵌入式開發(fā)過程中,環(huán)境搭建往往十分的重要,一個(gè)好的開發(fā)環(huán)境,一個(gè)高效的驗(yàn)證思路可以大大的節(jié)省開發(fā)時(shí)間。所以說,工欲善其事、必先利其器。想要學(xué)好嵌入式開發(fā),學(xué)會(huì)利用各種工作,讓自己的工作效率加倍十分的重要。通過上述的文章描述,嵌入式的前期的基本環(huán)境可以搭建好,同時(shí)也可以理解系統(tǒng)的啟動(dòng)過程。我覺得,萬事開頭難,只有邁出了第一步,其實(shí)寫起代碼也就沒什么太大的難度了。

- END -

原文標(biāo)題:樹莓派4裸機(jī)基礎(chǔ)教程:環(huán)境搭建

文章出處:【微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 樹莓派
    +關(guān)注

    關(guān)注

    122

    文章

    2078

    瀏覽量

    110463
  • 環(huán)境搭建
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    9461

原文標(biāo)題:樹莓派4裸機(jī)基礎(chǔ)教程:環(huán)境搭建

文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用樹莓與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    大家好,這是一個(gè)樹莓和OpenCV的連載專題。使用樹莓與OpenCV實(shí)現(xiàn)姿態(tài)估計(jì)和面部特征點(diǎn)追蹤使用樹莓
    的頭像 發(fā)表于 08-14 17:45 ?1571次閱讀
    如何使用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>與OpenCV實(shí)現(xiàn)面部和運(yùn)動(dòng)追蹤的云臺(tái)系統(tǒng)?

    樹莓屏幕怎么選?

    樹莓很多人都用過,但用屏幕的倒不是很多。不少都是直接遠(yuǎn)程操作,或者直接接身邊的顯示設(shè)備了。但我覺得給開發(fā)板配一個(gè)屏幕還是很能提升使用體驗(yàn)的。這次我就介紹一下樹莓
    的頭像 發(fā)表于 08-08 14:59 ?1502次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>屏幕怎么選?

    樹莓操作系統(tǒng):版本、特性及設(shè)置完整指南!

    樹莓操作系統(tǒng)是什么?樹莓操作系統(tǒng)是由樹莓基金會(huì)專為樹莓
    的頭像 發(fā)表于 07-28 18:26 ?1425次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>操作系統(tǒng):版本、特性及設(shè)置完整指南!

    工業(yè)樹莓的高光時(shí)刻!樹莓工業(yè)級(jí) HMI 列陣!

    上海晶珩作為樹莓官方設(shè)計(jì)合作伙伴和代理商,基于樹莓技術(shù)開發(fā)了一系列工業(yè)級(jí)人機(jī)界面(HMI)產(chǎn)品,廣泛應(yīng)用于工業(yè)自動(dòng)化、樓宇控制、智能制造
    的頭像 發(fā)表于 07-23 18:36 ?842次閱讀
    工業(yè)<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的高光時(shí)刻!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>工業(yè)級(jí) HMI 列陣!

    樹莓更新:確保系統(tǒng)安全且優(yōu)化的關(guān)鍵步驟!

    平穩(wěn)可靠地運(yùn)行,最大限度地減少潛在問題。更新軟件包列表使用“sudoaptupdate”命令更新軟件包列表是維護(hù)樹莓的關(guān)鍵步驟。此命令會(huì)從系統(tǒng)配置的軟件源中刷新
    的頭像 發(fā)表于 07-22 17:16 ?1114次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>更新:確保系統(tǒng)安全且優(yōu)化的關(guān)鍵<b class='flag-5'>步驟</b>!

    樹莓6 傳聞:發(fā)布日期與規(guī)格!

    每當(dāng)我想再為我的收藏增添一款樹莓時(shí),總會(huì)在是立即購買還是等待硬件更強(qiáng)大的下一代之間猶豫不決。但新樹莓型號(hào)的發(fā)布往往容易被錯(cuò)過,尤其是在你的信息流被病毒式傳播的貓咪視頻占據(jù)時(shí)。因此,
    的頭像 發(fā)表于 07-11 16:21 ?2310次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>6 傳聞:發(fā)布日期與規(guī)格!

    樹莓小技巧:無需鍵盤或顯示器,如何通過WiFi設(shè)置樹莓?

    樹莓是一款小巧便攜的USB供電計(jì)算機(jī),可以隱藏起來用于小型項(xiàng)目,如網(wǎng)絡(luò)服務(wù)器或家庭自動(dòng)化。通常,設(shè)置樹莓需要鍵盤和顯示器來編輯和查看樹莓
    的頭像 發(fā)表于 06-26 15:41 ?1550次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>小技巧:無需鍵盤或顯示器,如何通過WiFi設(shè)置<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>?

    樹莓分類器:用樹莓識(shí)別不同型號(hào)的樹莓!

    在本教程系列的第一部分中,您將學(xué)習(xí)如何使用樹莓AI攝像頭來檢測不同的樹莓型號(hào)。本系列由DavidPlowman創(chuàng)建,他是樹莓
    的頭像 發(fā)表于 06-13 16:39 ?1302次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>分類器:用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>識(shí)別不同型號(hào)的<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>!

    樹莓“揪出”家里的耗電怪獸!

    在本應(yīng)用中,我們將使用樹莓設(shè)置一個(gè)CE電流監(jiān)測器,并通過網(wǎng)頁界面顯示電路的電流讀數(shù)。本項(xiàng)目使用的組件硬件組件樹莓2ModelBx112通道20安培電流監(jiān)測控制器x1項(xiàng)目背景介紹在本
    的頭像 發(fā)表于 06-04 15:33 ?1531次閱讀
    用<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“揪出”家里的耗電怪獸!

    樹莓“吉尼斯世界記錄”:將樹莓的性能發(fā)揮到極致的項(xiàng)目!

    樹莓是一款功能強(qiáng)大、體積小巧且高度可定制的設(shè)備,多年來,我們見證了它被應(yīng)用于眾多領(lǐng)域。無論是將其裝入3D打印的經(jīng)典游戲機(jī)外殼,還是簡單地將它隱藏起來作為家庭文件服務(wù)器,我們都報(bào)道過在社區(qū)里用樹莓
    的頭像 發(fā)表于 05-22 16:53 ?1531次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>的性能發(fā)揮到極致的項(xiàng)目!

    樹莓 Zero 打造的智能漫游車!

    使用PXFMini和樹莓Zero打造您自己的自主漫游車。本項(xiàng)目所用組件硬件組件ErleRoboticsPXFmini×1樹莓Zero×1樹莓
    的頭像 發(fā)表于 05-13 16:39 ?1106次閱讀
    用 <b class='flag-5'>樹莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車!

    全網(wǎng)瘋傳!樹莓GUI開發(fā)竟然可以這么輕量?

    嘿,各位樹莓的發(fā)燒友們!今天我要和大家分享一個(gè)超酷的技巧——如何在沒有桌面環(huán)境的情況下,在樹莓派上開發(fā)GUI應(yīng)用。想象一下,你的樹莓
    的頭像 發(fā)表于 04-05 09:36 ?2331次閱讀
    全網(wǎng)瘋傳!<b class='flag-5'>樹莓</b><b class='flag-5'>派</b>GUI<b class='flag-5'>開發(fā)</b>竟然可以這么輕量?

    樹莓GUI應(yīng)用開發(fā):從零到炫酷的魔法之旅!

    的GUI應(yīng)用開發(fā)有多好玩、多實(shí)用!樹莓+GUI:不只是“好看”那么簡單!你可能已經(jīng)知道,樹莓是一款性價(jià)比超高的
    的頭像 發(fā)表于 04-04 09:03 ?1135次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>GUI應(yīng)用<b class='flag-5'>開發(fā)</b>:從零到炫酷的魔法之旅!

    樹莓+Balena OS:一鍵解鎖智能硬件新技能!

    樹莓,這個(gè)小巧的單板計(jì)算機(jī),一直以來都是技術(shù)愛好者和開發(fā)者的寵兒。但你有沒有想過,如何讓樹莓變得更智能?BalenaOS作為一款專為
    的頭像 發(fā)表于 03-25 09:25 ?1794次閱讀
    <b class='flag-5'>樹莓</b><b class='flag-5'>派</b>+Balena OS:一鍵解鎖智能硬件新技能!

    【第一彈】樹莓開發(fā)者必看!Ubuntu Snap煥新升級(jí):跨平臺(tái)開發(fā)從未如此簡單!

    導(dǎo)語:當(dāng)樹莓遇上UbuntuSnap,會(huì)發(fā)生什么?無論是用樹莓搭建智能家居中樞,還是開發(fā)物聯(lián)網(wǎng)邊緣設(shè)備,依賴管理和跨平臺(tái)兼容性始終是
    的頭像 發(fā)表于 03-25 09:19 ?846次閱讀
    【第一彈】<b class='flag-5'>樹莓</b><b class='flag-5'>派</b><b class='flag-5'>開發(fā)</b>者必看!Ubuntu Snap煥新升級(jí):跨平臺(tái)<b class='flag-5'>開發(fā)</b>從未如此簡單!