嵌入式工程必備技能之建造自己的開發環境!

2021-02-14 尚觀嵌入式研究室

不會建造自己的開發環境的嵌入式工程師,一定算不上大牛的技術人員。

機器:電腦      環境:Linux

VIM或EMACS做編輯器,GCC做編譯器, automake做工程,doxygen做文檔,cvs或svn做管理。

安裝步驟

1. 安裝gcc等;
done in 《Ubuntu安裝筆記》.
2. 升級vi到vim;
done in 《Ubuntu安裝筆記》.
3. 安裝ctags;
#sudo apt-get install ctags
4. 安裝ctaglist;
http://www.vim.org/scripts/script.php?script_id=273
5. 安裝cscope;
#sudo apt-get install cscope
6. 安裝global;
#sudo apt-get install global
7. 安裝cppcomplete
http://www.vim.org/scripts/script.php?script_id=273

工具簡介

總體使用的感覺定位查找類型定義基本可以用,但自動補全類型方面由於ctags的功能有限,感覺在大工程時,不一定很好用。

大型程序一定要global的參與,它的分析比較全面,但在vim中的提示信息有限。

taglist 精幹,需要ctags的支撐 ,直接可以在左邊列出函數列表,全局參數列表。(可以排序)

cscope 比較強大,可以對函數以及部分類型定義進行跳轉,但有些BUG,好像在某些條件下無法正確找到分析枚舉的定義。

cppcomplete 需要ctags的支撐,可以補全類型或者函數名(可不是普通Ctrl+P/N的那種)
global 新版本可以嵌入vim使用,提供比較完整解析和類型索引,和cscope比,稍微差些的就是對類型引用的列印列表中沒有標識這個引用在什麼函數中進行的。其實我的感覺global可能不是為vim所生,它的主要目的是用html的方式進行表達相關的關聯關係和索引,使用起來感覺沒有cscope的那麼貼切。

VIM

VIM在本機上被安裝到/usr/share/vim/vim70目錄下(用$VIM代指)。可以通過修改$VIM/plugin, $HOME/.vim下的文件內容和$HOME/.vimrc來配置VIM參數。

使用gvim或者vim -g可以啟動圖形界面的vim。

VIM比如Ctrl-N可以實現自動補全,[I 可以查看光標所在處的函數的聲明,Ctrl-]跳轉到函數聲明所在的文件,gd則是在當前文件跳轉到局部變量的聲明處。


CtagList

在VIM中用
":TlistToggle" command to open/close the taglist window.
":help taglist" command to get more information about using the taglist plugin.


Ctags

Q:如何看到標準庫文件中的定義?
A:
在你的目錄下建一個連結到標準庫的原始碼,然後
ctags -R *
vi -t printf
就可以看見了。

歡迎訂閱尚觀科技官方微信
每天都是乾貨

如果你想系統學習C語言、stm32或底層技術
如果你想全面了解網際網路IT背後的市場需求和技術要求
歡迎猛戳下方閱讀原文


相關焦點

  • 嵌入式必備技能之Git的使用
    代碼版本控制對於我們嵌入式軟體開發崗是一項基礎、必備的技能,需要熟練掌握。實際工作中常用的版本控制系統有:Git(分布式版本控制系統)與SVN(集中式版本控制系統)。本次分享Git在實際工作中的基本使用方法。
  • 嵌入式軟體開發-書籍推薦
    對於嵌入式開發來說,需要按照自己的需求來選擇相應的細分領域和深度的書籍來系統學習。如果是從零開始,想對Linux有一個循序漸進、由淺入深的學習,下面這5本書足矣,千萬不要貪多!第 2 本:《UNIX環境高級編程(第3版)》or《Linux/UNIX系統編程手冊》這明明是兩本書,為什麼要放在一起推薦?因為這兩本書的定位是一樣的,都是以Linux應用層的開發為主,可以分別翻閱一下目錄或部分章節,然後根據自己的需要和習慣來選擇其中的一本就可以了。
  • 乾貨 | 嵌入式必備技能之Git的使用~
    代碼版本控制對於我們嵌入式軟體開發崗是一項基礎、必備的技能,需要熟練掌握。實際工作中常用的版本控制系統有:Git(分布式版本控制系統)與SVN(集中式版本控制系統)。本次分享Git在實際工作中的基本使用方法。
  • 乾貨 | 嵌入式必備技能之Git的使用
    代碼版本控制對於我們嵌入式軟體開發崗是一項基礎、必備的技能,需要熟練掌握。實際工作中常用的版本控制系統有:Git(分布式版本控制系統)與SVN(集中式版本控制系統)。本次分享Git在實際工作中的基本使用方法。
  • 物聯網時代的嵌入式開發平臺
    作為典型的嵌入式開發,物聯網應用的開發與網際網路應用從硬體配置到運行環境有巨大的不同。
  • 幾種Linux下嵌入式開發環境的介紹
    做Linux嵌入式系統的對常見的幾種嵌入式開發環境一定不會陌生,由於主要接觸網絡相關產品的一些系統設計,因此,將可能用到的嵌入式開發環境簡要總結一下
  • 老曹眼中的開發學習環境
    「工其事必先利其器」,對於一個全棧而言,一個與自己匹配的開發和學習環境,能夠極大地提高個人的工作效率,很多時候都可以做到事半而功倍
  • 嵌入式Linux開發日誌(3)——環境變量
    本文是嵌入式Linux開發日常記錄,今天分享下Linux環境變量的相關知識。
  • 【連載】嵌入式Linux開發教程:獲取Linux環境
    摘要:這是對周立功編著的《嵌入式Linux開發教程》的第四期連載。
  • Xilinx Zynq-7000 嵌入式系統設計實驗教程
    隨著計算機技術、集成電路設計技術和半導體工藝技術的不斷發展,微處理器的應用幾乎無處不在;而以應用為中心、軟硬體可剪裁的專用計算機系統產品(即嵌入式系統產品)也已成為我國信息產業新的經濟增長點。嵌入式計算機系統設計技術已成為物聯網、通信、雷達、自控、微電子等研究應用領域的工程師必須掌握的基本技術和技能。
  • 手把手教你搭建嵌入式開發環境(ubuntu)
    學習嵌入式的同學們注意嘍!我想你首先得搭建一個開發環境吧!否則你還能咋玩的起來?所以今天說一下嵌入式開發環境搭建。
  • 過來人給嵌入式工程師的十個建議
    在很多大公司仍然是如此,但趨勢似乎又有回頭的跡象;有越來越多業者開始整合工程師的角色,尋找既熟悉軟體也熟悉硬體技術的工程師,以求事半功倍之效。調查顯示,現在有越來越多工程師的工作同時牽涉硬體與軟體技術。有越來越多工程師需要軟硬體技術能力兼備嵌入式技術日進千裡,工程師要如何確保自己學習到的新技術是最關鍵的?
  • 一個嵌入式軟體開發工程師的自白
    ,ID:玄妙漪瀾,內容有刪改本人本科非985/211,工作地點廣州,現職業為linux C軟體開發工程師,但我的工作背景相對廣泛,幹過硬體測試工程師,嵌入式軟體開發工程師,電子信息工程畢業。對於女生來講,這確實是一條孤獨之道,學的人不多,學成的人更不多,但我覺得是個人思想和學習環境導致的,大環境下女生都不喜歡這個,所以想走遠可能會難。但現在女程式設計師也已越來越多,「誰說女子不如男」?如果你想搞科研,有什麼高端大氣上檔次的理想,那本專業就很難。
  • 樹莓派4 嵌入式Linux開發過程詳解
    樹莓派4 嵌入式Linux開發過程詳解1.概述2.開發環境概述3.交叉編譯工具的安裝與uboot的編譯3.1 安裝arm 64位交叉編譯環境3.2 編譯樹莓派上的uboot3.3 將u-boot放到樹莓派上運行4.樹莓派4b上的Linux
  • 成為嵌入式高手的技能清單和升級線路圖
    1、C++語言編程基礎2、QT編程開發:QT開發基礎,QT布局與控制項,QT繪圖,QT事件,QT網絡通信,QT資料庫,QT移植3、嵌入式項目開發:車載監控管理系統,工業能源管理系統 嵌入式設計應具備的基本技能 1、Linux 基礎
  • 軟體架構師必備的八大工程技能
    如今,隨著軟體技術的不斷迭代,以及應用範圍的持續擴展,企業對於軟體架構師的基本工程技能期望
  • 下載 | ARM嵌入式Linux系統開發從入門到精通
    《ARM嵌入式Linux系統開發從入門到精通》通俗易懂,可作為高等院校電子類、電氣類、控制類、計算機類等專業本科生、研究生學習嵌入式Linux的參考書目或自學教材,也可供廣大希望轉入嵌入式領域的科研和工程技術人員參考使用,還可作為廣大嵌入式培訓班的教材和教輔材料。
  • 如何利用嵌入式集成開發工具,讓其更好地服務於設計?
    Keil公司(現在是ARM 公司的一個公司)的軟體恰好提供這樣的功能,並且它還有很多優點,比如工程易於管理、自動加載啟動代碼,集編輯、編譯、仿真一體,調試功能強大等。因此,不管是單片機愛好者,還是經驗豐富的工程師,都喜歡使用這些軟體。有μVision、RealView、MDK、Keil C51。μVision是一個集成開發環境(IDE),和Eclipse類似。
  • 滲透測試必備|知道創宇研發技能表v3.1
    任何科學研究最終必須至少到哲學層面,觸碰到上帝的腳具體技術類書籍請見「專業技能」相關部分感受IT帝國的崛起與沒落,我們現在站在又一個網際網路浪潮之巔印象深刻:設計者的品味如果解決方法是醜陋的,那就肯定還有更好的解決方法,只是還沒有發現而已抓住本質好設計是簡單的設計好設計是永不過時的設計
  • 人類有朝一日可以建造的 「超大規模」工程
    這些 「超大規模工程」——有時也被稱為 「宏觀工程」——涉及浩大的項目,目標是重塑地球或者建造和地球差不多規模的龐然大物。從這些充滿未來主義的超級夢想中,我們可以看到人類無窮的創造力和想像力。超大規模工程的起源可以追溯到古希臘人。阿基米德因很多事情而負有盛名,但相傳他說過的一句最耳熟能詳的話是:「給我一個支點,我能撬起整個地球!」他說的其實是槓桿原理。