Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!/ h$ |: d- E5 g1 q4 R5 Y

9 V1 q& T0 n4 q) `& B, K( O7 X2 Z我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
1 X2 f5 J+ P& K2 q+ M$ {我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
3 Q, N+ L/ ]# G/ y把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。
+ [% i3 I/ q9 f% u4 X$ P3 x! P- C5 |" C+ K# W3 H
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,1 b$ O: x$ s. D" R! P6 W) P
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
3 L4 o! d! g6 t1 q6 q+ p+ b; p2 n只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。
- _& l) V) e1 S不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
2 |& g7 d3 @  \  d' i現在回不知道回了作者看不看得到  ' |( A. i8 h+ m1 }; e
- t$ H$ S+ q) x2 _" G! ^
假如想走底層一點的工作( i2 y* t8 u% W, z. ^" g
對於計算機架構可能要深入了解) n& E, D2 b# A% e" A
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE; @. e  g7 A7 j/ K6 i
x86也可,不過x86指令和暫存器比較多5 N6 ?' Z+ A* a5 |
要多花一些時間閱讀
, [& c* @& p5 j5 N9 Z
& ~1 x+ B3 o' M3 @8 R1. 從instruction set開始研讀' \2 u3 n; d7 [5 A& S+ I2 B
然後試著找一些assembly code trace看看. o1 R3 ?* o2 N& s# d/ Q
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
# @+ U9 E7 C% G; i% t像是interrupt處理 context switch等等都有assembly code0 ]8 `  F2 J# `& B
看完之後應該對CPU有初步的了解- \: M! R% v7 C; G) x1 R8 m
! \& I9 n, l3 c, c4 p4 X% N( Z
2. 接著把MMU的觀念加入閱讀! e! g3 E/ n0 X" H+ I
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。( u9 u) |4 v) k# ^, A. O

0 v# ?2 s2 x$ R! P0 @3. 找一些device driver study,目的在於熟悉irq handler, DMA control等; W( A( Q* x8 p& w1 g' E1 G3 l
等技巧,有助於建立整個系統的感覺。
' n9 `) A5 N* k, j% q' |# v) b: x' O- N# l' a( g* d
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得+ L- ~3 e$ P9 J2 a7 Q' M4 a
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)3 J% N! D5 Q; v1 a
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
1 D9 A8 H6 E6 b3 K. J% S! q% A* E9 w) @3 `$ N$ p/ R
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的( \0 ~$ O0 z' \' B  O6 \% X, r* e/ W
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在# F5 R+ O3 F3 Y( K* b" r
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
8 y1 G! e$ Q3 H7 p* E效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
) W3 U4 i9 x! H( k% V$ C5 vperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
, q) v, w/ ^/ H8 ~/ R9 |* V8 J* p9 U- y* j
但是這本書是不錯的入門書
7 j2 G; t9 g% h4 p( S4 B& A! \9 {8 j" ?  U3 Y/ v& [! Y+ h* w
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況+ |* ]6 f+ k& g- W& z. t8 i- O
wince 6.0 很難說他是比較容易或比較難2 \+ D0 C/ T1 J! W& c
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
. h7 b* i. J, p7 A' W  @% Y大多就是把他開放給你的 interface 補起來就會動了) W' j! {6 X: d  |9 h$ P$ b
缺點是他的building sequence和dependence 做的不夠好. D( j( j7 T, s6 G
有實會只改了一個檔' D) p  v+ C. }( Q2 C
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
$ r: `' d8 E# D3 D不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到* E: J# T4 O' M" b6 N+ l8 z/ z
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間( s( _. F5 Z7 I
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)- ?; l6 u7 W* n8 C/ D+ _
wince可能適合有同事一起討論或帶領" }. c: d1 Q3 e/ S' O: _/ u
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
- B( H/ [" o% y. V4 N' D, B8 j. q7 G0 o: |3 E+ q
簡單的對照是
. {, E' W. R% c( _+ i; k6 }wince   <---->  linux6 U- N$ c- Q3 e0 C3 f! L8 V
eboot   <---->  uboot   (bootloader)0 E# R* t6 C6 X7 d+ {: J1 a" ^  ?
nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.), M  C0 Z& V. G- c

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

本版積分規則

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

GMT+8, 2024-4-29 03:06 PM , Processed in 0.115006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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