Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!+ d. q( j: K5 ]" C8 H7 |1 t4 Q& ]

4 _7 D* j. J8 Z我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
4 Q, B. ?) W( M- y/ N7 @# j+ u我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,  }8 d* j7 N' D% s
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
3 u1 v. V3 e8 Z
, N3 n; |4 E( t因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,
; g5 k: N. m) w2 g9 |8 q; H* [我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,# {: \% x* j# i) m5 e/ w8 T
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。4 M. B5 [' a& W
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
$ A, Q4 |& a& n& f現在回不知道回了作者看不看得到  
! ^; d. z8 f* k: J9 e# P+ ~8 P) M* p4 T9 ~4 y& v- a7 A3 V8 s
假如想走底層一點的工作
* @9 i- ]3 ?# c* X對於計算機架構可能要深入了解, w; p( H) u. ]6 S/ S4 ]
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
; w, B# Y6 n: t1 I# U8 F9 Tx86也可,不過x86指令和暫存器比較多. v! G* B: [4 S+ J, ?
要多花一些時間閱讀* D, F0 s9 T- ?  G$ q% R; ]
/ ?6 @, @3 s9 @2 c& X: K) R
1. 從instruction set開始研讀* i3 ^! B7 H, Q1 |8 j2 N
然後試著找一些assembly code trace看看
( F% F( d) w4 m7 L# v2 }現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
; q6 ~4 @  Y* |$ }0 l1 J像是interrupt處理 context switch等等都有assembly code  v/ E6 v- J; j: S& T' `& u3 S  l
看完之後應該對CPU有初步的了解1 t- T, F$ |3 ^5 S  Q3 v1 C
. l" g* B$ b8 k) U6 h, Z
2. 接著把MMU的觀念加入閱讀
6 ?, {7 k& R9 y, fMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
6 r1 T8 E# F, o2 J1 c# N  l2 a5 P% J  B5 x5 V& [2 Y3 y3 S
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
# M" v  u" o* A9 i8 }等技巧,有助於建立整個系統的感覺。' w: a" ?" }8 U: n) A
( h+ ^2 }1 G6 T/ U8 O
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得; f* F  L4 Q- A) s6 P# L* c1 M
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
/ \4 _) z2 A1 Z2 |: Gb. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
8 B( r. D6 K8 O$ D
4 i. M) c) {/ C, c7 W因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的% S. B' |1 F9 M  {0 X5 K
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
% Y- Q! h2 L( b% p& ]% V3 g一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver) W1 l. d* h" P, Q+ e0 O
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
7 x8 b1 `$ g) t+ d; A$ gperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
$ c/ n( K# K/ ^' Y2 N
6 ~1 z8 p( N& s4 T9 X1 z! d  Y但是這本書是不錯的入門書" i8 |, w$ i3 t8 X1 G0 |" G' C

5 @- j- M* @% N- q# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況
- t" V$ z! ]1 n" o7 twince 6.0 很難說他是比較容易或比較難& ^" P0 f# W3 G8 Q( x) o0 M: O, W
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)/ D- O" q; R* \8 x
大多就是把他開放給你的 interface 補起來就會動了9 j) R( ~) E0 ~( y
缺點是他的building sequence和dependence 做的不夠好
+ c( |: k- k5 d1 {# p5 f8 j" V. j有實會只改了一個檔, J+ Z8 s6 g3 E" Q+ ~1 W9 G" n
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
9 r- E3 J- B$ z% l" n' i3 R* y不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到+ G' r/ v  [5 u1 o  x
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間8 H9 P* j/ |7 b! J/ E- H
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)( A; B0 S8 \+ j) v# N( |8 M4 _
wince可能適合有同事一起討論或帶領7 X1 ~6 l0 u% b$ S, l5 k$ s" }
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~  o3 B0 j- ^8 C3 R+ }

3 Z# m  E4 j! G簡單的對照是9 z3 L( ~& ~- h9 F  I; j
wince   <---->  linux
; b3 Q9 y6 J3 e" u  seboot   <---->  uboot   (bootloader). u, I. t9 D# N" _$ r( `! T7 x
nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)
$ L: @) m8 B7 g) D4 z% N( _, ]# x( z7 y$ a
基本上linux對技術人員來說3 k1 \/ E, L0 v, }
技術上的學習和收穫會比較完整
8 M, u9 V5 ^4 B. [! l8 ^wince可能比較偏向純粹的產品開發應用
, `; f* n% U3 u1 _8 F不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費0 J/ m) K8 x- N+ A$ P
聯合新聞網 - ‎1 hour ago‎
  i5 @$ c# _8 D: n6 o- i
1 z. r' ~1 _' F7 }8 G他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 3 R6 |8 N" C7 C2 T
ZDNet Taiwan - ‎2010年3月14日‎
6 O& b% ?0 C, v. P
, \" t- O8 o1 |2 N  B如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
5 i  L7 Y3 o" e7 n讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
9 a( ?% H, Y! e; i3 w環境熟了之後,自然就事半功倍。
& T( L7 Y9 M/ n' d7 v) C) N一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
" P+ p3 w. w, l- {所以,必須了解OS的運作原理、Driver的架構..
3 {. U* z  T& n8 t) c1 D若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk) 5 a7 ]- j1 g- B, p
我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
) {1 Y; j8 J' T想想嵌入式最常做的動作是什麼?就是除錯。3 G1 l3 T- W1 L* X% C, t
除錯又分硬體及軟體。
" n7 ], }. Q# x, h- b- O: S+ u硬體除錯所需的知識是微處理機架構及對CPU指令的了解。' H6 f1 M- E1 [5 o- L7 u% q
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。! N$ B  Z: u  o6 I2 W* ]' A, G; x2 X
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。( v* H  [' ^8 b: \
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-8 08:36 AM , Processed in 0.134017 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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