Chip123 科技應用創新平台
標題:
想當嵌入式系統工程師!
[打印本頁]
作者:
tim906002
時間:
2008-11-14 07:22 PM
標題:
想當嵌入式系統工程師!
對於發這篇文,如果有不好的地方,請各位大大給予指教!
2 q/ h3 O4 r) ]5 n
1 U! K1 o* g6 {4 `. Q% t. ]
我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
* K K8 a* a* B7 f* {( Z
我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
$ z" R9 Z' e# K4 n) `- S- a; X) E. d
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
0 U: W. B4 A7 K9 @
4 n3 x4 A$ a- r# }
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
) p: H" A k: z
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
$ h+ C2 e6 ~' m
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
作者:
walltsou
時間:
2009-3-11 08:26 AM
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。
' F& w9 @$ k/ _$ |4 r5 G% k- O8 Q
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。
作者:
gogojesse
時間:
2009-4-8 05:51 PM
貼文很久了
' N2 F4 z2 v ~# F' Y
現在回不知道回了作者看不看得到
- a6 f2 y, e0 n+ r
; M$ l4 b) X, f+ [2 M8 `& K& U
假如想走底層一點的工作
& X5 h A& F# q% q' ~+ E" c
對於計算機架構可能要深入了解
% C, \' _) B! K6 z- k
建議先對某個特定平台熟悉 例如ARM+Linux or ARM+WinCE
) e; @4 u7 ?1 t6 v7 f1 I' q
x86也可,不過x86指令和暫存器比較多
; S( D( E& u) ^" q3 \
要多花一些時間閱讀
* k/ r7 t' D* I: |7 b
; h4 e! T' G3 d" f) J
1. 從instruction set開始研讀
2 F! `4 ~$ }% e: K
然後試著找一些assembly code trace看看
) Z( |3 Q. n' Z! S, Z
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
3 j$ {8 T) [6 {" Q
像是interrupt處理 context switch等等都有assembly code
' O" g; C1 P5 I" H% A
看完之後應該對CPU有初步的了解
0 ]6 `9 P" O8 T7 v! k0 r
M g! @* {* J8 g* c! a( p. ^
2. 接著把MMU的觀念加入閱讀
2 g9 f! v" Z) J8 ~) e. r5 k* u
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
2 U( a1 M6 }1 Y) G
3 k1 A! m1 p5 R8 z7 D
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
, x9 v) ^! D. |8 O- Y; T5 Y( W' i3 D$ n
等技巧,有助於建立整個系統的感覺。
" B9 x0 i" e3 b0 @) C
+ X4 I# f' y0 |3 v( }$ R
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
! Q- o- ]0 z$ C6 L0 L {
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
; e' k& y- ~% R* v- z8 U1 e
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
/ e5 L. E- f! v
; O' z! H; ?) c+ }- H/ K+ D+ r- r
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
) B% U: A) U, B" ^+ A
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
" Z& k7 t9 Q* N `/ U
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
0 _. w0 P7 m8 L5 R3 d- ?
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
5 H& x8 Y x2 ?* i; K
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。
作者:
kkbbs
時間:
2009-5-11 02:12 PM
不是打廣告
, o3 X! c7 ~2 p2 }$ z, A
: I7 ], I3 U/ M$ D: f7 @+ }& q
但是這本書是不錯的入門書
# ? |$ S. R+ u3 {8 Y+ J7 v
4 z8 j* ~. \4 R$ I/ ?( l
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
作者:
gogojesse
時間:
2009-7-14 04:49 PM
補一下知道的wince狀況
% F K" j, U. H3 }/ L0 O9 b- f1 r& ^) B
wince 6.0 很難說他是比較容易或比較難
; k- Q( ~$ ?6 y) `4 [/ X! }
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
3 ?' a* \8 u, h' D; F# s+ _
大多就是把他開放給你的 interface 補起來就會動了
8 D- ^7 d ~' z7 [, C& ~8 l
缺點是他的building sequence和dependence 做的不夠好
/ }; P0 U9 s Y' g% `
有實會只改了一個檔
: {; @* z& ?( T w' X
按錯編譯button就變成整包重新編譯 等到海枯石爛才編好
8 \0 R* ~3 F6 q# t+ D0 r) }
不然選擇只編譯某部分 結果發現你改的那個檔案還是沒編譯到
1 v/ M+ |! I, _4 b: V9 a' ~
一開始就要熟悉他編譯的過程 自己打指令的話 應該會省去不少等待編譯的時間
$ t3 X: C, F5 i' Z$ d
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
0 L+ d* E% _; s" v5 t
wince可能適合有同事一起討論或帶領
$ q* |! [0 ~7 x) X4 E+ ]
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
& w/ u" ^7 d: _- r; E, [+ {: M
7 \& D, J$ }8 M+ ^2 c1 N. Z
簡單的對照是
( D# E* C! O# h5 J( H4 ?
wince <----> linux
6 s: q1 ~& Q2 E# e( F
eboot <----> uboot (bootloader)
( R0 P+ D2 `* Z5 z6 R" I
nk.bin <----> uImage (kernel, nk.bin還包含一些file system.)
4 G9 F9 r' h+ Q5 \
; ?4 i, u; ~& Y8 X
基本上linux對技術人員來說
s8 }: R( B9 g, w1 B: X6 D* x+ J
技術上的學習和收穫會比較完整
8 G" j6 J2 i: Z5 o9 ?, z2 }5 J2 T# ?
wince可能比較偏向純粹的產品開發應用
7 v9 ~ n5 Z- } Q( h5 R# S5 s
不太合適當作學習平台
作者:
jiming
時間:
2009-9-23 08:18 AM
銘傳開課考微軟證照 軟體免費
& m* M8 K3 s, r) ?6 v1 z8 R
聯合新聞網
- 1 hour ago
6 N" j% p! A8 W6 V* n2 G
3 R/ ~) X/ P* @' q1 }
他指出,目前國內嵌入式系統軟體
工程師
的職缺,仍有很大缺口,根據人力銀行統計,此類軟體
工程師
職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
作者:
sunny.yu
時間:
2010-3-18 07:48 AM
系統
工程師
在美國被視為最佳職業
% I: j0 p2 H# F' w3 Z: s
ZDNet Taiwan
- 2010年3月14日
% ~3 f, i; R9 U' r6 v
: J: v2 d1 ?- K$ ^7 m
如果你是位系統
工程師
,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統
工程師
是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在
...
作者:
blueimagestar
時間:
2010-5-12 06:13 PM
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
; k# I& @7 Y4 C
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
9 j- q" e! X, n! Q& G
環境熟了之後,自然就事半功倍。
4 X/ o; U( Z6 I( j& g9 `
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
C4 T1 {. Y0 N
所以,必須了解OS的運作原理、Driver的架構..
8 D! k8 I2 G! q: e% L
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
; ^% s/ c! n. z- |
我覺得win ce 應該不太需要driver +os 維護吧
作者:
walltsou
時間:
2010-5-17 06:31 PM
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
1 s/ U `4 W/ T, j
想想嵌入式最常做的動作是什麼?就是除錯。
. k3 A* L/ u7 d1 Y8 ?1 G. V M! K
除錯又分硬體及軟體。
% P( ^# `7 q+ p7 x# J# D/ q! y! @. p% {
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
5 j8 p8 w# I4 |- P! f. o& h9 u0 r
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
8 C w* r8 X6 o3 e" b9 z
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
( m; g- `# W/ k: v
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2