裸機開發步驟和工具使用

2021-02-13 百問科技

本篇是arm裸機1期加強版Wiki第7課_開發板熟悉與體驗,共3節,文字無法完整的描述視頻內容,如果您覺得這些文章不錯,想進一步學習更深層次的內容,請參加我們最近舉辦的10元試看活動,試看接下來的視頻。名額有限,先到先得。

001節_裸機開發步驟簡介

回憶大學在VC6.0上面學習C語言,操作大致流程如下:

x86平臺,Windows應用程式:建立工程/項目,編輯源碼,編譯代碼(編譯器:VC6.0),運行。

在Ubuntu上學習C語言,操作大致流程如下:

x86平臺,Ubuntu應用程式:編輯源碼,編譯代碼(編譯器:gcc),運行。

兩者是幾乎一致的。

名詞解釋:

使用gcc的原因:功能強大、穩定、開源免費

1)gcc -v查看gcc的版本,從而驗證了gcc編譯器正常。

不論你使用哪一個版本的gcc,只有後面能夠正常編譯就可以了。

2)gcc -o 輸出文件名 源文件 
o:output

交叉編譯模式

通常編譯嵌入式程序的平臺成為宿主機(如:PC的ubuntu系統,CPU架構為X86架構),運行嵌入式程序的平臺成為目標機(如:某款ARM開發板,CPU架構為ARM架構)。在X86平臺編輯和和編譯器arm-linux-gcc編譯ARM架構的程序,兩者屬於不同的架構平臺,從而屬於交叉編譯模式。然後將程序燒寫到ARM開發板中(下載方式有:JTAG、USB、SD卡、網絡等多種方式),然後在開發板上運行該程序。

編輯器
推薦使用windows平臺的source insight和notepad。 
source insight在查看代碼、編輯代碼等功能時非常好用。

編譯器 
推薦使用arm-linux-gcc 
arm-linux-gcc是基於linux平臺的arm編譯器。它是開源免費的編譯器。 
arm-linux-gcc功能強大、穩定、支持的arm晶片眾多、更新速度快。

入門誤區:使用ads、MDK

ads(停止更新)、MDK,是windows平臺的編譯器,功能較弱。

1)只適合個人或者小團隊的開發,不適合於中型、大型團隊的協作開發。

2)是收費軟體。

002節_source insight代碼查看工具的使用

編輯器

推薦使用windows平臺的source insight和notepad。

source insight在查看代碼、編輯代碼等功能時非常好用。

source insight針對:c文件、h文件、ARM彙編文件

notepad針對:其他文件,如Makefile(簡單理解為:指明了要編譯哪些源文件、指定編譯後的輸出文件名)

source insight是收費軟體,但是這個軟體可以免費35天。 
版本:3.5

安裝包:自己百度一下」source insight3.5」

source insight常用設置:

1.增加文件類型

 options-->documents options中,將c source file的文件過濾設置為*.c;*.h;*.S

2.新建項目(新建工程)

 project-->newproject,然後將相應的文件添加到該項目中。

3.字體的設置(解決中文亂碼)

 options-->documentsoptions中,將screen fonts設置為:宋體、常規、12、GB2312.

使用alt+F12來調整字體的等寬。

4.說明一下source insight的窗口

項目窗口:指明該項目中有哪些文件。 
主窗口:顯示當前打開文件的文件內容。 
符號窗口:顯示了當前打開文件的函數名、結構體名、宏定義等等。 
上下文窗口:光標放在某個函數上(變量上、宏定義上),在下面的上下文窗口就可以看到相應的定義。

5.顯示行號

 view-->linenumber

6.快速跳轉到某一行

 工具欄中有一個go to line。

7.高亮關鍵詞

光標放在關鍵詞上,然後右鍵菜單—>highlight word

8.查看函數定義位置

光標放在函數上,然後右鍵菜單—>jump to defintion,或者ctrl + 滑鼠左鍵。 
go back (alt + ,)回到上一次光標所在位置,或者使用工具欄中的向左箭頭。 
go forward(alt + .)回到下一次光標所在位置,或者使用工具欄中的向右箭頭。

9.查找

 右鍵菜單-->lookup reference,或者ctrl + / 。

003節_notepad編輯器和二進位文件查看工具

下面介紹兩個免費的工具: 
文本編輯器工具Notepad:https://notepad-plus-plus.org/

和二進位查看工具FreeHex Editor Neo:https://www.hhdsoftware.com/free-hex-editor 

Notepad++使用技巧:

按住Ctrl+滑鼠滾輪,可以縮放文本內容大小;

查看c語言文件時,雙擊變量,即可在高亮整個文本中的該變量;

查看c語言文件時,光標放在任一括號處,即可高亮整個括號範圍;

快捷鍵「Ctrl+F」,打開查找窗口,可搜索所需字符;

Free Hex Editor Neo使用技巧:

打開hex二進位文件,默認每行顯示16個數,即0x00-0x0f;

在菜單欄的View->Offset可設置左邊偏移的顯示進位;

在菜單欄的View->Display As可設置當前數據的顯示進位;

在菜單欄的View->Columns As可設置當前每行顯示多少數據;

在菜單欄的View->Group By可設置當前數據顯示的數據類型;

 

上一篇:開發板熟悉與體驗

韋東山2012年創辦的深圳百問網科技有限公司旗下帳號,長期發布課程進度,嵌入式Linux乾貨。"悅己之作,方能悅人","學嵌入式,就看韋東山視頻"。


相關焦點

  • 網頁開發工具盤點+使用教程
    如果想要快速製作一個網站,那麼就需要用到網頁開發工具。好用的網頁開發工具有哪些?一般來說,知名度較高的開發工具會比較好用,國外有WordPress, Wix, Strikingly;國內有建站之星、上線了等等。
  • Microchip發布基於RISC-V的SoC FPGA開發工具包
    免費和開源的RISC-V指令集架構(ISA)的應用日益普遍,推動了經濟、標準化開發平臺的需求,該平臺嵌入RISC-V技術並利用多樣化RISC-V生態系統。為滿足這一需求,Microchip Technology宣布推出業界首款基於RISC-V的SoC FPGA開發工具包。
  • 合約機和裸機的對比怎麼樣?有什區別?
    裸機是指:到品牌專營店直接購買裸機,不含折扣不包話費。然後需要購機者自行選擇通訊運營商,自由選擇適合自己的套餐。合約機是指:通訊運營商 (如移動、聯通、電信等)與手機生產商合夥定製的合法手機類型,用戶使用該手機必須和指定運營商籤約。通俗地說,合約機和裸機的區別主要在於話費,手機本身並沒有什麼不同。裸機就是單獨購買一部手機,不牽扯到其他任何東西,就是大家直接購買手機,這點都很好理解。
  • Python文本預處理:步驟、使用工具及示例
    本文約3100字,建議閱讀6分鐘 本文將討論文本預處理的基本步驟、文本預處理過程所需要的工具。 標籤:機器學習 Python 算法 模型 本文將討論文本預處理的基本步驟,旨在將文本信息從人類語言轉換為機器可讀格式以便用於後續處理。此外,本文還將進一步討論文本預處理過程所需要的工具。當拿到一個文本後,首先從文本正則化(text normalization) 處理開始。
  • ...發布業界首款基於 RISC-V 指令集架構的 SoC FPGA 開發工具包
    (美國微芯科技公司)宣布推出業界首款基於 RISC-V 的SoC FPGA開發工具包。這款名為Icicle 的開發工具包專為業界領先的低功耗、低成本、基於 RISC-V 的PolarFire® SoC FPGA打造,匯集了眾多的Mi-V 合作夥伴,助力加速不同行業的客戶設計部署和商業應用。
  • 聰明人都使用裸機?那手機有必要套殼嗎?聽聽設計師怎麼說!
    對於智慧型手機來說都已經走進了千家萬戶,基本上人人都有一部智慧型手機,甚至在老年人當中也已經適應了智慧型手機的發展,那麼分析下來的話,為什麼仍然有許多的人都在使用裸機呢?這其中是有很大的原因的,其中就有一些設計師認為,使用裸機有以下的幾點好處!
  • Python程式設計師使用頻率比較高的5款開發工具推薦
    很多Python學習者想必都會有如下感悟:最開始學習Python的時候,因為沒有去探索好用的工具,吃了很多苦頭。後來工作中深刻體會到,合理使用開發的工具的便利和高效。今天,千鋒廣州小編總結了Python程式設計師使用頻率比較高的5款開發工具,希望對大家的工作和學習有幫助。
  • PaddleX全流程開發工具公開邀測啦!
    這裡向您隆重推薦一位精英級別的保鏢——飛槳全流程開發工具PaddleX。什麼是PaddleX?依託飛槳開源深度學習框架和豐富的工具組件,PaddleX進行全流程的整合打通,為開發者提供飛槳全流程開發的最佳實踐。
  • 聊聊UI設計師的工作流程和高頻使用工具
    設計師日常使用的工具,乾貨較多,篇幅較長,強烈推薦。2.支持css/less/saas等css屬性,直接粘貼,開發簡直不能太爽了3.支持標註,方便團隊協作(可以替代prd文檔了)4.支持色板和字體 導航 ,可以用作使用規範實戰運用見:《UI設計師怒轉!
  • 三十九、ETL工具Kettle基礎使用
    Kettle工具介紹Kettle是一款國外開源的ETL工具,純Java編寫,開業在Windows、Linux、Unix上運行,可以高效穩定的完成數據抽取。)設計工具(GUI方式):通過圖形界面來設計ETL轉換過程(transformation)和作業(Job);Pan——轉換(transform)執行器(命令行方式):Pan允許批量運行有Spoon設計的ETL轉換(例如使用時間調度器),Pan是一個後臺執行的程序,沒有圖形界面。
  • 卡巴斯基混合雲安全保護軟體開發工具免受供應鏈攻擊
    該產品已經更新,增加了對容器的保護,新增了容器、鏡像和倉庫掃描功能,以實現與持續集成和交付管道(CI/CD)的集成。另外,為了支持企業使用各種公有雲平臺,卡巴斯基混合雲安全還增加了對谷歌雲的保護。能夠影響軟體開發的供應鏈攻擊是網絡罪犯實施攻擊的有效工具,利用這種攻擊,他們可以將一段惡意代碼植入合法軟體中。
  • 軟體開發加速度!新思科技推出全新ARC HS4x/4xD開發套件
    ARC HS4x/4xD處理器和各種外圍設備的結合使開發者能夠在功能齊全的硬體平臺上構建和調試複雜的軟體。ARC HS4x/4xD開發套件可配置支持單核和雙核的HS45D和HS47D處理器以及多達四核的ARC HS48處理器,幫助開發者靈活使用單個開發板進行多個ARC HS處理器配置。
  • 一款免費在線工具,可協助設計師開發人員測試顏色的對比度和可視
    除了從選色工具直接套用其他設計師選好的顏色(例如著色的可隨機產生符合WCAG規範的文字和背景顏色組合),我也建議測試一下你選用顏色之間的「網頁親和力」指數,這個步驟並不會耗費太多時間。本文要推薦的「Hex Naw」是一款免費在線工具,可協助設計師或開發人員測試整體顏色的對比度和可視性,如同之前介紹過的「Koa11y檢測網頁有無符合網頁親和力」A11y各項指標和最佳化建議,只不過Hex Naw不用下載或安裝,通過瀏覽器就能輕鬆使用。
  • 華為XR內容開發工具Reality Studio上線
    華為XR內容開發工具Reality Studio正式上線據悉,華為Reality Studio已於近期正式建立,上線華為開發者官網。它是一款 XR 內容開發工具(多功能 3D 編輯器),提供了 3D 場景編輯、動畫製作和事件交互等功能,幫助開發者快速打造 3D 可交互場景。
  • 為React開發人員推薦8個測試工具、庫和框架
    我們也知道應用要交付生產環境前是必須要經過完善的測試的,而測試應用程式時,有趁手的工具能極大減輕開發人員的負擔、提升測試效率並減少測試漏洞。正所謂"工欲善其事,必先利其器",這篇文章就為大家推薦 8 個好用的測試工具、庫和框架。本文編譯自 GeeksforGeeks 網站。
  • 谷歌高效開發的秘密:來自谷歌前員工的軟體開發工具指南
    但從另一方面看,谷歌的內部工具是非常有局限的。事實上,幾乎所有此類工具均與谷歌獨有的內部生態系統緊密耦合。這意味著人們一旦離職,很不幸就無法在其它環境中使用這些工具。  儘管如此,這些才華橫溢的谷歌離職人員汲取了在世界領先技術組織工作中的經驗教訓,進而為其他許多組織注入了新的動力。但適應谷歌之外的編程開發環境並非易事,尤其是他們已經形成依賴的一些工具沒辦法在使用了。
  • 前端開發工具包WijmoJS全新版本來啦
    前端開發工具包WijmoJS全新版本來啦 2020年01月02日 11:20作者:黃頁編輯:黃頁 近期,葡萄城前端開發工具包WijmoJS V2019.0 Update3 正式發布
  • 國內首發,騰訊開源Serverless 雲原生一體化部署工具:雲開發 Cloud...
    國內的 Serverless 生態建設起步較晚,隨著微信和騰訊雲共同開發的小程序雲開發的推出,帶來了超過100萬開發者使用,大力普及了對Serverless的認識。然而市面上相關的工具鏈並不完善,這導致用戶在遷移至 Serverless 架構的過程中面臨開發和部署難度大、成本高等問題。
  • 設計師和開發人員首選的macOS取色工具,你確定不看看?
    小編整理了深受設計師和開發人員喜愛的mac取色軟體分享給大家,可以輕鬆收集,調整,組織和導出屏幕上任何像素的顏色快來一起看看吧~設計師和開發人員首選的macOS取色工具,你確定不看看?(好用的屏幕取色工具)一款好用的屏幕取色工具,Kelir Pro Mac破解版允許您使用獨特的選擇器從屏幕上的任何位置選擇任何顏色,並預覽您選擇的顏色。
  • 親測好用的Kubernetes&DevOps工具!
    Amazon Elastic Container Service是一個Kubernetes DevOps工具,它允許用戶管理和擴展他們的容器化應用程式,並使用Kubernetes簡化部署。它使用ansible-playbook來自動化Kubernetes集群配置。主要功能包括基於Ansible,高度可用,跨平臺;流行的雲提供商集成甚至是裸機,多種配置選項,多平臺CI/CD等等。因為Kubespray擁有一個開放的開發模型,易於使用,大大降低了編排集群的難度,任何人都可以很容易地學習如何使用Kubespray。