Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 12220|回復: 9
打印 上一主題 下一主題

[問題求助] 想當嵌入式系統工程師!

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!
) u4 F' [6 J1 V6 q+ [) d* i) h" \# x+ n9 ]# j) O$ v/ k* V( U
我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?4 \2 m4 ^+ u5 T
我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
2 ~) X- u' \" Q5 O2 z; B. d: l把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
, E! L4 y$ Y/ d' ], g" U# }' D3 C4 W+ ^' ~8 j& O9 J  S
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
% v8 u* l6 [2 S4 C- _我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
; F/ `6 B7 @. x& j( D9 V; L& c只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。* `9 s# g( K/ N& Q3 n
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

參與人數 1Chipcoin +5 收起 理由
chip123 + 5 遇到什麼就精進什麼!

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了9 b7 x  b, i) `) |$ ]# {
現在回不知道回了作者看不看得到  
' s4 Z, B4 T- b* I) F, [# i4 n- \
* C& f& D( I8 S" B' y$ L3 z: k4 H假如想走底層一點的工作7 D/ q) @+ E6 \9 D4 |4 t8 C) ?
對於計算機架構可能要深入了解! y& ?, l* L  H5 B) a# `, }
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
) R( U- P. h3 d/ J  b+ H0 px86也可,不過x86指令和暫存器比較多4 H2 @& L, F1 N) U# V' r# f
要多花一些時間閱讀
5 q0 A" }1 Y) i. f* g4 _- D# D4 n& M% i: k
1. 從instruction set開始研讀3 S( p5 r( T: A  Q  C" P4 d1 O/ j0 `
然後試著找一些assembly code trace看看9 v8 d8 Z& W# y+ R+ P# [* q
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考6 Q8 `, x: \0 n
像是interrupt處理 context switch等等都有assembly code3 e) P) B: W# f& C+ v" h2 A  Y
看完之後應該對CPU有初步的了解/ z7 [( M7 @7 n( ^% H: l$ Y0 _7 Y

* b% O$ ^4 V+ p$ V9 M. d- ~: r2. 接著把MMU的觀念加入閱讀8 A( `4 V1 c6 f1 w+ J
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。  k4 G+ ]6 I: ]; l8 h
( z) `8 Q# ^) G' T( @
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等, U( u! z; B: i  k" n/ j9 h
等技巧,有助於建立整個系統的感覺。5 w, y* O; ], o. j" k, d

  b7 J) k* a% j" U以上會了之後,混口飯應該不難。要變成超級工程師的話,就得+ z& W) E7 i; l% l
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
+ v) W% r+ z- G; ~b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)- {: v2 L* M0 F
% e+ F( w! F9 X$ M) q
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
" n8 O4 V. e" L. W4 [機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
1 m  y' I3 A, x  a6 ~& r一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
! Y0 O2 `; ?# C. X3 X: l# P效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,+ d( }9 W  D9 k+ ~
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

參與人數 1Chipcoin +5 收起 理由
masonchung + 5 言之有物!

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
6 c1 j* s/ c1 x7 x( |( v1 Y/ C" K; u' r; ^+ x7 |
但是這本書是不錯的入門書
8 [7 @% {3 M) y5 ^4 N5 |/ U
$ m/ `  X- A' v2 X7 y8 k$ p# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況# n& t) K. U5 ?. A, h) c# g
wince 6.0 很難說他是比較容易或比較難/ E1 p5 ?( K2 L4 }
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
3 T$ ?0 ]. ]! H' h5 N2 F大多就是把他開放給你的 interface 補起來就會動了% ~# |6 _/ t8 B2 E: r2 w" \8 y
缺點是他的building sequence和dependence 做的不夠好
; v/ K% b5 c$ c4 F& w, y( H有實會只改了一個檔4 x( d7 c* P/ R: ?# r( Z& F
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
1 h2 j" |" L( F1 Q* H不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到, B$ x9 ~+ G0 ~+ E  j% f+ }4 ]
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間1 }/ ?! H# }0 u
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
: J% V) K0 G, u" u* P+ Hwince可能適合有同事一起討論或帶領+ Q( v+ S' a  Q* w
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~3 j8 j  f9 J/ n. o  B/ S5 H
. f) }8 Q  @& S0 d, s" i: \
簡單的對照是6 N. j& ]9 l, x. \. y/ {0 B- ?
wince   <---->  linux7 a: ^" i, B. v: N5 M( R$ Z- Y
eboot   <---->  uboot   (bootloader): w! \4 n) C1 x; f3 U
nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)% Q" F% o. T0 K1 X

9 Q$ n2 F! Y9 `/ }1 u, }4 ^5 @基本上linux對技術人員來說
, r0 k& ^* b: y- Q! R技術上的學習和收穫會比較完整
3 P* I6 b, e1 ?: ]wince可能比較偏向純粹的產品開發應用
  l( ]) U& y3 u不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費
7 ?4 S3 ~6 T6 f聯合新聞網 - ‎1 hour ago‎* {  M( Y1 E# o7 {* Z" b; q' E
% H5 H* V0 C6 T9 N
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 7 ]- J5 d- }  I. N
ZDNet Taiwan - ‎2010年3月14日‎
$ t  B2 X& l3 c8 W# m
; E0 P, ~8 r5 v, Z8 M/ M; @4 l8 o& \如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,+ q8 ]: }( Y3 G8 g& \9 d
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
3 f( ~$ y7 E  y/ c0 i0 a& ~環境熟了之後,自然就事半功倍。; z: q: c8 u7 }5 N1 M- D
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,8 s+ V, W1 A0 K& [% a+ [3 t3 O
所以,必須了解OS的運作原理、Driver的架構..0 K0 o2 ~7 J% R' M: D0 m9 \. y* v
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk) 1 B6 Z% Y) i$ G
我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。4 E$ G0 {+ p1 p( M& H* R8 t
想想嵌入式最常做的動作是什麼?就是除錯。
! E5 F) ]$ [8 o# b/ }- x) c除錯又分硬體及軟體。
: r. V  J6 K" H2 [' q: f% \硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
" y7 ^3 c  b) b, Q3 L0 m1 n軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。0 ?  I: E& ]6 B; _/ m
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。- k/ C+ P8 f& p- ^# Q7 h1 Y
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-8 03:01 PM , Processed in 0.105006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表