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

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

3天內不再提示

嵌入式Linux工程師的學(xué)習發(fā)展步驟,如何測試工程師之間的區別

傳感器技術(shù) ? 來(lái)源:未知 ? 作者:易水寒 ? 2018-07-09 11:37 ? 次閱讀

嵌入式研發(fā)行業(yè)十年,認為學(xué)習就是要不斷的吸納知識,在研發(fā)過(guò)程中,經(jīng)常會(huì )遇到一些問(wèn)題,這種發(fā)現問(wèn)題并解決問(wèn)題的過(guò)程就是進(jìn)步。下面是嵌入式Linux開(kāi)發(fā)工程師的成長(cháng)過(guò)程,希望對大家能有所啟發(fā)。

1、Linux開(kāi)發(fā)工程師

首先成長(cháng)為一名Linux開(kāi)發(fā)工程師,這是最基本的目標,他應該具備如下的素質(zhì):

(1)了解Linux基本概念和基本操作(歷史,文化,起源)(命令行,配置,操作,開(kāi)發(fā)模式)

(2)會(huì )使用Linux平臺下的編輯器vi(默認安裝,占內存小,方便向嵌入式移植)

(3)會(huì )使用Linux平臺下的編譯器GCC(相應的十幾個(gè)命令行參數

(4)會(huì )使用Linux平臺下的管理工具M(jìn)ake(與Makefile相配合,尤其用于大項目中多平臺移植的情況下)

(5)會(huì )使用Linux平臺下的調試器GDB(可以了解底層硬件,及匯編指令)

2、嵌入式工程師

他更關(guān)心的是將來(lái)在哪一目標機上運行,不關(guān)心操作系統,進(jìn)行的更多與編程相關(guān)的工作

(1)合格的C程序的程序員(理解基本的控制結構:循環(huán)、分支、數組、指針)

(2)基本的編程思想(編程實(shí)踐中總結算法

(3)程序的編譯和鏈接

(4)可執行文件內部(段、起始地址、如何加載執行)

(5)目標機處理器體系結構

(6)知道處理器的外設即System on Chip(內部存儲結構及外設驅動(dòng))

(7)匯編語(yǔ)言及指令(主要是用在加載過(guò)程中)

3、系統工程師

系統工程師夾在驅動(dòng)工程師及應用工程師這兩個(gè)層次之間,他要對系統有一個(gè)整體的概念,系統主要是指操作系統,往往理論有余而實(shí)踐不足

(1)進(jìn)程管理與調度(知道進(jìn)程間的切換與調度,多任務(wù))

(2)內存管理(建立MMU頁(yè)表,知道從虛地址到物理地址的映射)

(3)驅動(dòng)管理(管理設備,編寫(xiě)設備驅動(dòng),加載設備驅動(dòng))

(4)文件系統(制作文件系統,文件系統的讀寫(xiě),甚至驅動(dòng)有時(shí)也被當成文件系統來(lái)管理)

(5)網(wǎng)絡(luò )協(xié)議知識(協(xié)議實(shí)現作為上層應用與底層驅動(dòng)之間的銜接)

(6)圖形系統知識(支持多窗口及管理窗口,包括窗口切換,窗口移動(dòng)和覆蓋)

4、嵌入式Linux系統工程師

(1)嵌入式Linux基本概念

(2)交叉編譯

(3)Linux內核開(kāi)發(fā)和調試工具

(4)啟動(dòng)代碼移植(修改Uboot,Vivi等)

(5)內核交叉編譯(Linux不支持芯片時(shí)要芯片級的移植,支持芯片時(shí)要板級的移植)

(6)根文件系統制作

(7)設備驅動(dòng)程序開(kāi)發(fā)

5、下面針對一個(gè)簡(jiǎn)單的"hello world"程序來(lái)區分一下以上所講的工程師之間的區別

#include

int main(void)

{

printf("hello world!\n");

}

(1)初級程序員看到的是:

a、頭文件

b、主函數main

c、子函數printf

d、函數調用

e、入口參數

f、參數返回

(2)高級程序員看到的是:

a、頭文件---預處理過(guò)程

b、主函數main---程序入口

c、子函數printf---標準庫函數

d、函數調用---跳轉指令

e、入口參數---??臻g的參數傳遞

f、函數返回---返回指令

(3)嵌入式程序員看到的是:

a、頭文件---預處理過(guò)程---宏展開(kāi)/條件編譯

b、主函數main---程序入口---啟動(dòng)代碼

c、子函數printf---標準庫函數---鏈接過(guò)程

d、函數調用---跳轉指令---PC寄存器

e、入口參數---??臻g的參數傳遞---尋址方式

f、函數返回---返回指令---LR寄存器

嵌入式程序員還能看到的是:

可執行文件的內部組織結構

代碼段

指令格式和類(lèi)型

地址無(wú)關(guān)代碼

數據段

RWdata讀寫(xiě)數據段

ROdata只讀數據段

BSS未初始化數據段

(4)系統工程師看到的是:

子函數printf---標準庫函數---鏈接過(guò)程

動(dòng)態(tài)鏈接(Dynamic Linking)(需要系統的支持)

靜態(tài)鏈接(Static Linking)(嵌入式系統常采用靜態(tài)鏈接,以適應不同系統)

標準C庫

系統調用(System Call)

軟件中斷(Software Interrupt)

(5)Linux系統工程師看到的是:

可執行文件的加載過(guò)程(不用了解系統調用這一級)

Shell進(jìn)程--fork系統調用---exec系統調用

進(jìn)程狀態(tài)(就緒、運行、阻塞)

進(jìn)程調度和調度算法

進(jìn)程的上下文切換

(6)嵌入式Linux系統工程師看到的是

用戶(hù)空間和系統空間(分別運行用戶(hù)模式和管理模式)

ARM---用戶(hù)模式和管理模式(執行權限不同)

SWI---軟中斷指令(系統調用就是由用戶(hù)空間向系統空間切換)

MMU---虛地址和實(shí)地址(不同進(jìn)程如何實(shí)現自己獨立的地址空間)

BUS---地址總線(xiàn)、數據總線(xiàn)和控制總線(xiàn)(程序如何獲得數據,系統如何取指)

SOC---片上系統(整個(gè)嵌入式系統如何運行)

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

    關(guān)注

    5006

    文章

    18449

    瀏覽量

    292224
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11026

    瀏覽量

    207158
  • GCC
    GCC
    +關(guān)注

    關(guān)注

    0

    文章

    105

    瀏覽量

    24738

原文標題:嵌入式Linux工程師的成長(cháng)經(jīng)歷,一個(gè)簡(jiǎn)單的程序測試工程師之間的區別

文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術(shù)】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式軟件工程師和硬件工程師區別?

    嵌入式軟件工程師和硬件工程師區別? 嵌入式軟件工程師 嵌入
    發(fā)表于 05-16 11:00

    (***)招聘射頻工程師 測試工程師 嵌入式工程師

    經(jīng)驗優(yōu)先嵌入式工程師 1名1、計算機及其相關(guān)專(zhuān)業(yè),本科以上2、至少熟悉ARM開(kāi)發(fā)工具的一種3、熟悉C/c+語(yǔ)言 熟悉導航協(xié)議4、具備導航協(xié)議開(kāi)發(fā)經(jīng)驗優(yōu)先聯(lián)系人:史東升聯(lián)系電話(huà)010-68257657 轉622公司地址:北京市海淀區萬(wàn)壽路翠微中里郵箱:shi1_2345@1
    發(fā)表于 05-29 11:33

    招聘 射頻工程師 嵌入式工程師 測試工程師

    經(jīng)驗優(yōu)先嵌入式工程師 1名1、計算機及其相關(guān)專(zhuān)業(yè),本科以上2、至少熟悉ARM開(kāi)發(fā)工具的一種3、熟悉C/c+語(yǔ)言 熟悉導航協(xié)議4、具備導航協(xié)議開(kāi)發(fā)經(jīng)驗優(yōu)先聯(lián)系人:史東升聯(lián)系電話(huà)010-68257657 轉622公司地址:北京市海淀區萬(wàn)壽路翠微中里郵箱:shi1_2345@1
    發(fā)表于 05-29 11:45

    嵌入式工程師關(guān)于linux學(xué)習總結

    嵌入式工程師關(guān)于linux學(xué)習總結
    發(fā)表于 08-19 23:01

    ARM嵌入式工程師

    本帖最后由 spotaku 于 2017-10-2 10:42 編輯 ARM嵌入式工程師入門(mén)門(mén)檻高,而且很多職位需要你有項目經(jīng)驗。所以,有一部分同學(xué)最終只能轉行:轉而做單片機或APP開(kāi)發(fā)等相對
    發(fā)表于 08-24 01:53

    ARM嵌入式工程師

    本帖最后由 spotaku 于 2017-10-2 10:41 編輯 ARM嵌入式工程師入門(mén)門(mén)檻高,而且很多職位需要你有項目經(jīng)驗。所以,有一部分同學(xué)最終只能轉行:轉而做單片機或APP開(kāi)發(fā)等相對
    發(fā)表于 08-30 19:36

    嵌入式Linux工程師的成長(cháng)經(jīng)歷

    嵌入式研發(fā)行業(yè)十年,認為學(xué)習就是要不斷的吸納知識,在研發(fā)過(guò)程中,經(jīng)常會(huì )遇到一些問(wèn)題,這種發(fā)現問(wèn)題并解決問(wèn)題的過(guò)程就是進(jìn)步。下面是嵌入式Linux開(kāi)發(fā)
    發(fā)表于 08-21 14:35

    嵌入式軟件工程師嵌入式硬件工程師有什么不同,區別在哪里?

    是基于PC 機的。而嵌入式軟件工程師則是指在wince.linux嵌入式操作系統下進(jìn)行用戶(hù)應用軟件開(kāi)發(fā)的人員,硬件平臺則是基于嵌入式產(chǎn)品
    發(fā)表于 07-15 16:01

    嵌入式工程師是如何煉成的

    工程師除了Linux外,嵌入式操作系統還有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系統有著(zhù)不同的使用環(huán)境,你需要學(xué)習掌握系統的各個(gè)模塊,為底層平臺
    發(fā)表于 04-17 09:31

    嵌入式工程師是做什么的?

    可以不斷發(fā)展,從而晉升為產(chǎn)品研發(fā)經(jīng)理或IT項目經(jīng)理。對測試理論和方法有一定了解的嵌入式軟件開(kāi)發(fā)工程師還可以轉作嵌入式系統
    發(fā)表于 08-08 14:59

    嵌入式軟件開(kāi)發(fā)工程師與FPGA開(kāi)發(fā)工程師 精選資料分享

    我是一名初入職場(chǎng)的萌新,工作不久從嵌入式軟件工程師轉到了FPGA工程師,這篇文章簡(jiǎn)單講講兩者的區別。嵌入式軟件
    發(fā)表于 08-18 06:37

    如何才能成為嵌入式Linux開(kāi)發(fā)工程師

    嵌入式操作系統領(lǐng)域內也獲得了飛速發(fā)展和廣泛應用。面對如此火熱的行業(yè),如何才能成為嵌入式Linux開(kāi)發(fā)工程師?成為一名合格的
    發(fā)表于 11-04 08:30

    嵌入式軟件開(kāi)發(fā)工程師與FPGA開(kāi)發(fā)工程師區別是什么?

    嵌入式軟件開(kāi)發(fā)工程師與FPGA開(kāi)發(fā)工程師區別是什么?
    發(fā)表于 11-22 06:11

    什么是嵌入式硬件工程師?什么是嵌入式軟件工程師

    什么是嵌入式硬件工程師?什么是嵌入式軟件工程師?嵌入式軟件工程師
    發(fā)表于 12-24 06:41

    嵌入式工程師發(fā)展前途嗎?

    自如,那么就必須得依靠嵌入式技術(shù)。這就是我所說(shuō)的嵌入式+智能學(xué)科應用,從長(cháng)久來(lái)看,嵌入式只會(huì )越來(lái)越火,智能學(xué)科的崛起必定帶動(dòng)新型的嵌入式技術(shù)發(fā)展
    發(fā)表于 12-29 09:45
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看