Chip123 科技應用創新平台
標題:
想當嵌入式系統工程師!
[打印本頁]
作者:
tim906002
時間:
2008-11-14 07:22 PM
標題:
想當嵌入式系統工程師!
對於發這篇文,如果有不好的地方,請各位大大給予指教!
9 t% a8 g3 A$ l& ~: C! H
3 b" E: A0 F6 }2 g* _. i& L
我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
n, d' W G' |1 g0 X4 b
我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
" B) A5 ~8 ~. Z
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
' k# n9 V/ N1 A6 G: S8 V
& r8 r! r( Z A% g
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
+ u# g8 P+ v0 @% s( u0 Q8 s
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
( \9 a( M) C) w5 j2 D
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
作者:
walltsou
時間:
2009-3-11 08:26 AM
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。
7 {+ f# h$ E6 o6 `3 c
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。
作者:
gogojesse
時間:
2009-4-8 05:51 PM
貼文很久了
9 ^+ i' k% l1 t3 f! D; x: ]1 s
現在回不知道回了作者看不看得到
3 G+ W5 \# j" @# L
# P' {7 L9 r' I6 n; `% U, ?
假如想走底層一點的工作
" k# O/ c! o/ [ h. h. q! G. |5 Q
對於計算機架構可能要深入了解
/ g2 D( H0 v' J4 H1 y
建議先對某個特定平台熟悉 例如ARM+Linux or ARM+WinCE
3 V% [0 A4 X; |0 b/ o9 x; U
x86也可,不過x86指令和暫存器比較多
0 r2 I, K! M6 G {1 p
要多花一些時間閱讀
! e4 i1 B' n% Q% c
4 B0 D1 g& R( |) p; R
1. 從instruction set開始研讀
* O0 d* v% K$ k# |4 p* B
然後試著找一些assembly code trace看看
+ Q% H9 ~! C. O( n: \
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
. z" _) _% T( f: R+ A$ V
像是interrupt處理 context switch等等都有assembly code
5 K! |" p. f& }% |
看完之後應該對CPU有初步的了解
. Q7 t! r8 f" H/ h: S2 Y; J7 g- l& l
% M# r! G6 N h* e1 h
2. 接著把MMU的觀念加入閱讀
4 v' _; a3 D, I4 E% f; M% n* U
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
# D- p/ P. }5 m( w/ J. o6 z
, p* o7 _) d% U) t s) Y1 [- B% O
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
! f+ }( W5 o2 [- R2 _
等技巧,有助於建立整個系統的感覺。
$ |& }. p0 J" M [& q4 U7 {
' Z3 {9 T+ |& t$ w
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
8 y5 q# w6 C$ j6 g1 z, Y
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
6 H9 S( S* X1 X7 C
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
0 C. T \: H5 A1 t
% N. U. w* H4 r+ x' Y. W4 N
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
% b' j) x" M: R, p) y
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
H/ v# Y6 I5 [0 t6 O i7 _% n& g
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
! m6 V- Y+ {7 c2 Y# D
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
/ e3 @/ ?- j3 ~% Q) x3 L/ H! e% W& q6 ^
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。
作者:
kkbbs
時間:
2009-5-11 02:12 PM
不是打廣告
1 s% ~/ B. C& C5 j
9 V* E8 X" d; E* S: S7 ~0 ?
但是這本書是不錯的入門書
6 z, b# \5 _7 P& x6 M
! N1 f, o0 n- ?
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
作者:
gogojesse
時間:
2009-7-14 04:49 PM
補一下知道的wince狀況
- v/ X1 u' t0 i( [
wince 6.0 很難說他是比較容易或比較難
; _$ }& s+ r9 }1 x3 _- N( P' p+ S1 V
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
) P4 Z h O2 Y
大多就是把他開放給你的 interface 補起來就會動了
: \% d4 X& d1 ~. S" a# b
缺點是他的building sequence和dependence 做的不夠好
6 |) H( \. J3 b# Q5 f; M
有實會只改了一個檔
- s5 ` ?: I& ]7 m+ F/ x
按錯編譯button就變成整包重新編譯 等到海枯石爛才編好
* x2 t1 ]# [: R6 ?" C
不然選擇只編譯某部分 結果發現你改的那個檔案還是沒編譯到
% D! o: V: o( r$ | X
一開始就要熟悉他編譯的過程 自己打指令的話 應該會省去不少等待編譯的時間
# F' G' m, F; C" I; s
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
) v' c! n$ q4 I7 ~# x
wince可能適合有同事一起討論或帶領
5 \6 n: y/ ^7 L( V" W: H7 }
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
' [" G4 A5 t0 u+ s5 R0 F$ [1 b
# Z2 f0 X" u5 p
簡單的對照是
$ L4 {/ t, _/ E& H5 ^
wince <----> linux
# c9 F+ M$ ?1 A9 t/ l# r5 n
eboot <----> uboot (bootloader)
$ I; g; \4 K7 v
nk.bin <----> uImage (kernel, nk.bin還包含一些file system.)
. _. R. l2 I& ?; H! o) d& l# X
- B/ u- V: a; H" @0 T E* L
基本上linux對技術人員來說
( w% E% R, L! M/ X4 w& r p
技術上的學習和收穫會比較完整
) V7 T: c J5 o9 j8 Z3 n
wince可能比較偏向純粹的產品開發應用
, _; ?# a* d( }9 Y8 a* P, U" |& l
不太合適當作學習平台
作者:
jiming
時間:
2009-9-23 08:18 AM
銘傳開課考微軟證照 軟體免費
+ }8 g7 a5 p/ Z8 _
聯合新聞網
- 1 hour ago
' ~: x0 _0 m& l1 s6 T+ {: S
1 ]$ {1 H4 }2 }8 `" K6 E+ j4 C
他指出,目前國內嵌入式系統軟體
工程師
的職缺,仍有很大缺口,根據人力銀行統計,此類軟體
工程師
職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
作者:
sunny.yu
時間:
2010-3-18 07:48 AM
系統
工程師
在美國被視為最佳職業
% @5 B7 Y* e) X
ZDNet Taiwan
- 2010年3月14日
2 R; D& R g% l2 W0 o$ I
, l7 F; T \% I: P4 P% C% N" G
如果你是位系統
工程師
,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統
工程師
是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在
...
作者:
blueimagestar
時間:
2010-5-12 06:13 PM
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
- L- z) W1 @' }' X/ ^% M& ^/ |
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
9 W4 T7 o3 S! {# q
環境熟了之後,自然就事半功倍。
( t6 W; F- O" _' y* T8 C3 c. w% n
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
( C* ?6 x5 e- m) A& y
所以,必須了解OS的運作原理、Driver的架構..
G* N$ H& O; G) P
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
; F' u( i* r4 c; @, y; j }0 w5 S
我覺得win ce 應該不太需要driver +os 維護吧
作者:
walltsou
時間:
2010-5-17 06:31 PM
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
7 t, R' p8 n- n
想想嵌入式最常做的動作是什麼?就是除錯。
! j4 m, I5 p/ N; y; R1 K
除錯又分硬體及軟體。
4 V2 D( m. o' A/ y
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
* V& u- m1 X9 U
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
1 C7 @+ w+ B" y9 v9 H5 `: _& I
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
3 f' r. k- V* Q9 L, k$ p) B/ y& d
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2