Chip123 科技應用創新平台
標題:
想當嵌入式系統工程師!
[打印本頁]
作者:
tim906002
時間:
2008-11-14 07:22 PM
標題:
想當嵌入式系統工程師!
對於發這篇文,如果有不好的地方,請各位大大給予指教!
( G+ m0 W. v8 M
) n% {7 V0 z3 y: Z+ g! _2 n
我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
. e; f. i3 W2 E- s4 y
我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
, W; ]$ }% j" T+ L( |
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
{8 ], I, O L1 N
1 d" R' m2 k1 W' I. Z3 y
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
! b5 V# {; _' P
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
- J2 w, |# |; p* M/ g! h" z
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
作者:
walltsou
時間:
2009-3-11 08:26 AM
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。
/ Q$ q1 r/ H4 r W1 R9 C4 H
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。
作者:
gogojesse
時間:
2009-4-8 05:51 PM
貼文很久了
5 {% Q3 v8 y* U
現在回不知道回了作者看不看得到
9 J( z% d% k, S- ^) A0 y4 \
z. C/ P' b; s. e4 o) M) j% ?
假如想走底層一點的工作
+ ^# d' C6 [" V. I5 F( v. b* y$ ]
對於計算機架構可能要深入了解
7 @, V5 {( H6 B' x$ s% E1 f
建議先對某個特定平台熟悉 例如ARM+Linux or ARM+WinCE
; t* ~6 D0 L+ J. |& X) n4 N" @
x86也可,不過x86指令和暫存器比較多
4 y0 }, r. U: u* h: ^
要多花一些時間閱讀
/ o: P& ?9 o( q' Q4 I
/ J% z4 q- r1 n1 ]
1. 從instruction set開始研讀
3 o# p+ R0 K: b8 q' U; E
然後試著找一些assembly code trace看看
1 W5 d0 W2 s8 W) j/ _- w- u
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
7 K9 f9 e* V9 K, H2 ^- n
像是interrupt處理 context switch等等都有assembly code
( ^; q. @1 f* j4 R0 V/ v4 S% A# }. {. N
看完之後應該對CPU有初步的了解
/ B' O1 i; h+ J% ?/ k
6 W2 m5 s+ w' U5 q) [; m! B
2. 接著把MMU的觀念加入閱讀
# `6 x$ t' s' @# w
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
3 t f" S( M( l- j7 _# G" d$ e
7 g8 f. @+ v+ ?, `" B, Q0 X
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
" ~ {# Y/ G# x5 \, N+ h: Y" s
等技巧,有助於建立整個系統的感覺。
- |; d$ U- V5 T- h" I4 n: T2 h1 Y- x
8 q/ R# z a# r0 p5 n: r. v: v+ j
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
( H- {3 L. U6 D
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
% c$ ^) O4 Y2 ~# s
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
& T( q$ c; U* {3 k
7 D" d% x0 R, D. D
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
' E% X& u: ~! e9 ]
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
" X& D4 @5 V! k0 \ |+ c9 w5 {2 X
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
- _% }% N+ ~( J( [! D/ O
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
. K- i$ [4 O$ P8 Q+ M; ^
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。
作者:
kkbbs
時間:
2009-5-11 02:12 PM
不是打廣告
" {$ V1 ~1 S. r0 ?. i
N+ d) j! Y0 E8 J0 C
但是這本書是不錯的入門書
+ c& c4 V1 `6 B, e* e
E( t# W; T4 T9 W S
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
作者:
gogojesse
時間:
2009-7-14 04:49 PM
補一下知道的wince狀況
' y; N4 j6 X( Q5 f* O
wince 6.0 很難說他是比較容易或比較難
& F q" d( u4 J2 }) Y: n: l
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
6 I5 h! w5 ~! N/ G
大多就是把他開放給你的 interface 補起來就會動了
& `8 n# ]! c* c6 T& b
缺點是他的building sequence和dependence 做的不夠好
3 ?/ L% x" f. }# F
有實會只改了一個檔
7 v v2 B* O* o2 Z# T5 a
按錯編譯button就變成整包重新編譯 等到海枯石爛才編好
4 d0 H# m- ` j* ~- a4 _: D
不然選擇只編譯某部分 結果發現你改的那個檔案還是沒編譯到
4 [) v' g+ W {! Z1 l8 p: A
一開始就要熟悉他編譯的過程 自己打指令的話 應該會省去不少等待編譯的時間
* [9 y5 w | E
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
4 U. [5 T1 S. T4 }- c
wince可能適合有同事一起討論或帶領
' W2 Z( e' t4 f q+ }+ y
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
$ y! A' r! S! i+ q/ H
( m) f2 P9 b1 n
簡單的對照是
/ v1 V. m" ?5 h% U9 r$ F& V! t, @
wince <----> linux
2 l. M8 O; q+ Y+ k
eboot <----> uboot (bootloader)
# q$ n1 x3 i8 B
nk.bin <----> uImage (kernel, nk.bin還包含一些file system.)
6 U4 f7 R4 s3 \* P4 R
. B9 U- R% y) K {( h1 N
基本上linux對技術人員來說
: T( b7 _) b& T% ?3 `& c& d3 k
技術上的學習和收穫會比較完整
) D8 b4 s i' F$ A* J
wince可能比較偏向純粹的產品開發應用
" o% v7 v0 b/ l! f# M- t, h+ E
不太合適當作學習平台
作者:
jiming
時間:
2009-9-23 08:18 AM
銘傳開課考微軟證照 軟體免費
5 h: K4 L/ o4 T0 x9 h( v9 U* {
聯合新聞網
- 1 hour ago
8 D- R9 ~; r: C# B$ i
4 L/ h5 S. g0 U$ I
他指出,目前國內嵌入式系統軟體
工程師
的職缺,仍有很大缺口,根據人力銀行統計,此類軟體
工程師
職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
作者:
sunny.yu
時間:
2010-3-18 07:48 AM
系統
工程師
在美國被視為最佳職業
) B- t+ J' L3 w4 H+ @2 M6 H' g* f
ZDNet Taiwan
- 2010年3月14日
6 q1 v. T7 s, s; P' M
( |& _! j, p+ S* P6 l
如果你是位系統
工程師
,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統
工程師
是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在
...
作者:
blueimagestar
時間:
2010-5-12 06:13 PM
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
+ S7 S6 g. W5 `
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
' b! W$ F. s4 w( P& I* p7 R# l
環境熟了之後,自然就事半功倍。
+ |+ C$ D/ \8 F" m+ E: f
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
& U5 H( ? ] \3 b2 h7 t- `9 ?" L/ s
所以,必須了解OS的運作原理、Driver的架構..
3 @ j4 _: E! j* k
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
5 [; Y( {. I3 t/ {$ u
我覺得win ce 應該不太需要driver +os 維護吧
作者:
walltsou
時間:
2010-5-17 06:31 PM
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
9 B" e9 F/ a- g" z5 _
想想嵌入式最常做的動作是什麼?就是除錯。
: j# B4 q/ J+ s6 G8 ]
除錯又分硬體及軟體。
' x9 W$ } c6 [5 d# t( }9 ]; a" h
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
, ^' e5 g( R! K0 b
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
. F5 t! p& Y& d4 v( h( s
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
( f+ l0 ]0 r' ]( n# ]
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2