Chip123 科技應用創新平台
標題:
想當嵌入式系統工程師!
[打印本頁]
作者:
tim906002
時間:
2008-11-14 07:22 PM
標題:
想當嵌入式系統工程師!
對於發這篇文,如果有不好的地方,請各位大大給予指教!
+ s9 ]# `& c- y% e; j, e; I2 B
0 ~5 ^+ J$ W$ M% ?
我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
) \3 q8 r* b7 y: G' q8 {! a
我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
: C2 X" m/ w6 }3 _
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
5 `$ p7 l2 z+ a m! H+ V4 b4 Q
* ]4 m% M1 H$ n
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
' y. m' N; ^- q/ Y
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
9 L5 b7 s! }4 N3 b9 m6 j
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
作者:
walltsou
時間:
2009-3-11 08:26 AM
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。
+ F5 n; b4 F0 u+ e, \
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。
作者:
gogojesse
時間:
2009-4-8 05:51 PM
貼文很久了
" q; V) O& i- z: U
現在回不知道回了作者看不看得到
' C7 \* x4 P. C
0 D0 m9 P2 `! Q& Y) Y/ I k
假如想走底層一點的工作
3 J8 y; \( T2 [8 z7 O; E
對於計算機架構可能要深入了解
& J1 L" Q5 ^3 K- e' V8 J
建議先對某個特定平台熟悉 例如ARM+Linux or ARM+WinCE
6 j' Y5 M7 ^! l4 M
x86也可,不過x86指令和暫存器比較多
2 W3 D! b n% t5 o( _! c1 D
要多花一些時間閱讀
- m0 c9 W( g6 J$ m( }
9 q0 q6 K/ }" e) E+ d
1. 從instruction set開始研讀
0 R3 H# ?6 z4 e$ o; n, N' Y9 d# L
然後試著找一些assembly code trace看看
: c) h& g0 G& `5 F$ M
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
; q3 b, d% G. N; y) x- M; ^1 Q
像是interrupt處理 context switch等等都有assembly code
: |# D8 k) L! n1 \
看完之後應該對CPU有初步的了解
6 Q* B7 b7 r/ a' v, Z
0 w9 P# \- I3 g' P4 F+ z6 K j3 h
2. 接著把MMU的觀念加入閱讀
8 I/ A% R% O" r$ i! f7 c+ u. ^: q
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
7 j N/ d0 x3 o6 W* I9 a8 _
1 h5 D* i" q! F' N9 Q/ L; b
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
% J' w. r- W- \7 ^
等技巧,有助於建立整個系統的感覺。
~. g; s, S- z, I$ ?3 D
, B; A) z1 |8 X9 g
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
; L9 c- q- I' Y5 R3 E1 U$ j1 {
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
a% F1 x# w, Z. X4 m; J/ x& t Q% B
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
3 j% u0 f: ]3 O0 m
; X$ O" m4 G* M4 D
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
$ u6 Y6 D0 `" b; D, i; C( N
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
- l0 t; n0 P; z
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
/ ]( X! l: a- ~, L* Y
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
K4 Q) h$ w$ g& A9 x3 U/ N' [
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。
作者:
kkbbs
時間:
2009-5-11 02:12 PM
不是打廣告
8 S# s9 X1 {- R: y8 B) ]
8 Z$ |2 B/ B F9 v' Y. X( k. Q. b
但是這本書是不錯的入門書
' o6 M! M. `% z) n% K
4 |2 w3 d( M4 p& y& X4 `
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
作者:
gogojesse
時間:
2009-7-14 04:49 PM
補一下知道的wince狀況
* D2 T |0 G# e8 P& w. v
wince 6.0 很難說他是比較容易或比較難
' B) \3 O# b! e+ c& j/ M! P! o
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
% j# d; Y. s4 g2 a
大多就是把他開放給你的 interface 補起來就會動了
; N" V; @. M+ y4 v- n
缺點是他的building sequence和dependence 做的不夠好
. |, i$ X& P% [( T4 T
有實會只改了一個檔
: D/ D1 K- G1 t3 o1 h+ A
按錯編譯button就變成整包重新編譯 等到海枯石爛才編好
( f7 B4 A/ ~: k2 N6 Z, P2 g0 y
不然選擇只編譯某部分 結果發現你改的那個檔案還是沒編譯到
8 {' r3 a6 q/ Y0 I* C/ x, x! k
一開始就要熟悉他編譯的過程 自己打指令的話 應該會省去不少等待編譯的時間
8 R! i$ j9 i1 j/ P
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
7 I/ ?- u1 ?" i j g- ~
wince可能適合有同事一起討論或帶領
" K: g: Y* u! k' Y/ N# b
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
! {$ J& a4 ]+ I
" }; [- }' _( ?: Z' e1 F) R
簡單的對照是
" g3 w/ S. S: _4 P9 Z/ {
wince <----> linux
% \7 ]1 L; o8 o. X7 x& {. o& }
eboot <----> uboot (bootloader)
1 B) @4 x' U! P% L6 [+ w
nk.bin <----> uImage (kernel, nk.bin還包含一些file system.)
. y5 ^5 e8 l" |9 Z1 [
' n7 l S$ `9 {
基本上linux對技術人員來說
9 \6 Z2 ]3 T6 \/ z; e" C3 A
技術上的學習和收穫會比較完整
+ S0 L7 y4 b O2 v0 `" e5 g
wince可能比較偏向純粹的產品開發應用
( F( \+ [$ E7 K( o, n
不太合適當作學習平台
作者:
jiming
時間:
2009-9-23 08:18 AM
銘傳開課考微軟證照 軟體免費
9 j0 O4 W6 h& x" M: d
聯合新聞網
- 1 hour ago
' w4 _3 C7 w+ \& |* m
7 G: Z8 Y! O" w, f7 n, `8 \: Y p
他指出,目前國內嵌入式系統軟體
工程師
的職缺,仍有很大缺口,根據人力銀行統計,此類軟體
工程師
職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
作者:
sunny.yu
時間:
2010-3-18 07:48 AM
系統
工程師
在美國被視為最佳職業
" x4 r: s# [+ R3 @
ZDNet Taiwan
- 2010年3月14日
8 M: c3 V( z2 K9 l& Q
# ]. K3 _* S. Y/ @
如果你是位系統
工程師
,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統
工程師
是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在
...
作者:
blueimagestar
時間:
2010-5-12 06:13 PM
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
1 |8 i: t( D( h9 M8 Y2 m
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
& g' l/ n3 G+ M
環境熟了之後,自然就事半功倍。
/ K5 W ~4 c: ^, r0 D/ P: s
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
+ m1 m9 L/ t' O- k
所以,必須了解OS的運作原理、Driver的架構..
+ m' ]/ r3 v8 I2 v
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
! V9 D8 M; g& r) t4 t
我覺得win ce 應該不太需要driver +os 維護吧
作者:
walltsou
時間:
2010-5-17 06:31 PM
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
) A" L2 T+ ]0 P" p9 O( P, Q
想想嵌入式最常做的動作是什麼?就是除錯。
6 [4 n8 C9 J+ y5 f3 @$ j
除錯又分硬體及軟體。
/ k V* N2 Y a6 x2 j
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
3 z1 q7 E9 f7 M) c* r6 i
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
9 B& N& p( m& b6 ^4 n' C5 x
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
2 l I) Q9 t: |+ ?3 N* ? A
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2