Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

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

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
/ l. o( X/ {/ E7 Z% N5 B現在回不知道回了作者看不看得到  $ G" f2 z& p0 T8 i- \/ W; r5 a2 \% e

& q. C5 m, R* n: F& p; ~0 v4 @0 i8 s8 ?假如想走底層一點的工作, O* e. w5 D! S# l, `! G- c
對於計算機架構可能要深入了解
# n& Y2 |, ~6 K6 m0 K1 w建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
1 Y3 V2 y% X: {1 Ix86也可,不過x86指令和暫存器比較多3 J: ~: ?' J$ C+ D+ [  e  X
要多花一些時間閱讀
1 G& X1 [6 h2 c2 S( X
' M+ v* h( F! k: X/ L( R1. 從instruction set開始研讀
  e/ z2 f! {8 b然後試著找一些assembly code trace看看+ ^6 M. {+ a0 |& H. q# J6 y- P
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
' O. R% |* d+ K* {2 f) J9 J- _像是interrupt處理 context switch等等都有assembly code
% [6 n, ]2 M8 d  m) M* u* [看完之後應該對CPU有初步的了解: C) X) E7 b$ t  L7 Y4 ]
: p; X  v) M6 n0 y
2. 接著把MMU的觀念加入閱讀
3 X9 Y  q' T1 a; |" {, a! w5 JMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。& T. f0 {# N2 m3 x
1 ^% a( h# f3 o
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等; |4 h- m5 P* M, S2 E9 T. w+ [
等技巧,有助於建立整個系統的感覺。
1 w! x. N* G( d) a* N9 `5 ]' @) L6 J+ Z# S  d1 H1 C
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
- h8 k; K2 m9 u2 F* K: f7 ?a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
: E3 f6 z# i  ?  S7 U7 xb. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
) y: ^/ b1 W" W, o) g
0 q  f* B) M! F因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的/ x7 t" c" g  x" B
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
- a: A( j  q6 d% {3 d: u一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
$ C3 Z8 K2 f& Z, Y4 x效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
( d  m$ s+ k6 ~- r7 t0 s" E8 U  s. lperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
. M, Y. m4 u7 Q  d6 R7 s1 O* R
( d: u: u$ R, a  I3 u0 z: P+ L但是這本書是不錯的入門書3 s0 X0 q& O) o# u0 N1 n7 K( h& v
1 |; L, s8 C. _$ S
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況
- D; M  Y; D: Mwince 6.0 很難說他是比較容易或比較難1 a# B7 a4 R7 R- T! y
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
1 I$ r6 h! N% s. D3 ]& S( H, u大多就是把他開放給你的 interface 補起來就會動了
+ G: V  p. V3 H  d+ x! J缺點是他的building sequence和dependence 做的不夠好
+ `+ G' k/ t- |& ]9 Q; v有實會只改了一個檔2 U9 l0 ]6 S' z. F
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好% `3 T& s7 ?; Y2 K1 q9 @0 J
不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到2 J; W( b/ r1 N* r# i
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間1 K( G2 [) ?. g" {- _% t
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
5 F) p/ |# z8 @8 vwince可能適合有同事一起討論或帶領, r3 {! B4 j$ _* _. ]$ \: ^8 e
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
6 ^. W% l' V3 a- A  N$ |
$ Z* k, v" F9 |6 Q簡單的對照是8 }$ U9 p% r6 L
wince   <---->  linux* O0 u0 E1 j3 _" W' U9 ]8 v. d
eboot   <---->  uboot   (bootloader)
* S9 {% h5 R! F1 T- }+ @nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)6 x7 d0 h/ Z$ p" d) {8 V

' W. N& ~7 m" T! E基本上linux對技術人員來說5 k; B. m$ F2 t. s5 l
技術上的學習和收穫會比較完整6 Y/ i9 j- ]' S2 {. Q
wince可能比較偏向純粹的產品開發應用9 K3 H; G+ c0 u/ N
不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費* h) O$ D' b2 q# z
聯合新聞網 - ‎1 hour ago‎2 G/ x. c1 T4 ~
5 X4 o2 G5 ?+ H, ]9 C) g% U
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業
& e+ K+ p! y! |" lZDNet Taiwan - ‎2010年3月14日‎% X+ S9 ]* `$ q8 V9 G) V

) c" n8 f/ ?+ N% d7 Z如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,& }) ]3 Q% O5 ~+ y) K& }
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
1 Q% _4 {5 [4 z* u0 O: N% [0 p& H+ y環境熟了之後,自然就事半功倍。
4 U8 Z0 x1 Q) \7 i一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
& Q+ S& D0 j* |1 h) m. e所以,必須了解OS的運作原理、Driver的架構..9 y3 q0 O+ B. I; o& V
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk) 0 N+ ^( z3 s# ^: h* o
我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。. E7 ~' L4 P! ?6 E. n/ `) C( B) X
想想嵌入式最常做的動作是什麼?就是除錯。- _4 B" P5 ~. y; ?( E$ b# q
除錯又分硬體及軟體。; {' V3 W" \5 s/ [4 U; G
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。/ U3 }2 u6 s/ j; l
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
" x% d$ e0 u: P8 E4 q- N不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。6 _9 Z8 y2 G4 n+ r( g
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-1 07:00 AM , Processed in 0.175010 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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