Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!" `: n# b. Z) |, d3 P4 p7 }

7 H5 U6 H. i- z) j6 i3 z" g) C7 W我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
6 `! F& Q" R2 n4 a4 t我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,' P7 c' M& T" I  G- E# [) S% g9 h
把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。7 J5 X) O* u5 K$ h$ }, m
: E! D* K/ J) h8 \& C! O
因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,9 g' i( k) M6 L1 V: w$ q
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,2 w+ F1 ~7 Y3 q- |6 I6 v
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。* B8 _4 j2 U' `5 ~" B2 g+ ]- @7 W
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了/ ~# Q! w8 j6 a- C# S+ ]
現在回不知道回了作者看不看得到  ; k  G5 X% ?  {+ I$ z" ~
8 ]7 e+ C4 m' I' g! h7 p7 Q$ X" L
假如想走底層一點的工作  Y1 d' w# O9 t( e4 n4 ~, o
對於計算機架構可能要深入了解$ j9 E% C! j7 V! z5 S0 S
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE6 D# _; P) m5 O" `0 d$ w
x86也可,不過x86指令和暫存器比較多
8 I2 J; A6 s2 U: M8 e: `8 h要多花一些時間閱讀
& V) [2 q4 H4 u3 Z' o7 L/ l: B7 D) P/ n- f& V; y3 r
1. 從instruction set開始研讀
) D# ~5 }  e+ J* B* h. ?然後試著找一些assembly code trace看看
4 K/ T% c. U8 d( j! _+ a: ?% [0 k0 ~現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考: V! t! d: _6 }, D3 }; i
像是interrupt處理 context switch等等都有assembly code
/ s. x. m9 x$ L3 E看完之後應該對CPU有初步的了解
9 ~- M  `' B3 _4 |8 r' i
$ t: d; v' J6 G2. 接著把MMU的觀念加入閱讀+ [( \9 d( P& Z  ?, y
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
; O8 c; D% ]1 U$ x- A& q
/ U3 z  F7 A" b; Q* u8 F3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
% f. f( O  L, [% m) R# X3 c3 s等技巧,有助於建立整個系統的感覺。9 B% Y) R( b  W' W. A

8 k& I, w. a$ ]以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
+ y1 M+ |6 u& r& Ja. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
8 {, k. L+ }) F3 c  {0 Z: `b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
5 K4 L! m' }7 L, y# T: E2 C# H# ?5 d2 V+ h' \
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
$ R7 y9 D  C: Q: G, F' O機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
4 f& {9 X7 Z3 h+ G一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver0 K% X% ~! Q8 ]; @( o
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
  @: f8 F( D1 k' u" v$ Dperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告7 a& P$ a0 k, e
1 o( e" B2 p, h
但是這本書是不錯的入門書
+ `8 W! x) p0 n2 L4 R4 Z- K0 F: F: F. |& }8 ~$ G
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況. Q$ b' _/ Y: ]6 e8 _& _
wince 6.0 很難說他是比較容易或比較難
$ |+ V/ V; j+ P8 H9 a因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)1 J' C( d9 R  _: e! v: }
大多就是把他開放給你的 interface 補起來就會動了5 a% L5 X' {+ t% T- A
缺點是他的building sequence和dependence 做的不夠好5 j% B' ?% b$ r2 `! b
有實會只改了一個檔( N5 J' m3 K1 m/ O& g; b
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好* E( p! ~# \5 t; N
不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到
: ]" Z! _& B7 X' l' [4 L: ~1 u一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間
8 r  y: D5 x. k6 @" u/ H* l相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)' J# ~5 [: Q3 g9 A( P- R
wince可能適合有同事一起討論或帶領/ _& |/ V4 a7 [; D5 o8 I
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
7 ~5 W2 `, k+ e
9 r) ]1 \# V5 w簡單的對照是; E  `5 o. \2 e: x6 E0 Q
wince   <---->  linux& b, \, {3 q, M' W1 c& j* y
eboot   <---->  uboot   (bootloader)
- U# |( a* Y8 Y% Snk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)# z! v# `' s* q) a
9 W( \/ B# c1 ]% Y
基本上linux對技術人員來說. ]$ `7 x% o7 y) Q; [+ L
技術上的學習和收穫會比較完整
9 V% t1 V. X3 O7 cwince可能比較偏向純粹的產品開發應用  g$ l# h2 [  b9 H# _" a8 S7 L7 p
不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費
5 @- h1 \/ v% l' f聯合新聞網 - ‎1 hour ago‎$ I# I( E6 I/ v7 c+ I' e
2 H+ d: ?0 |6 s4 \2 \1 i3 H+ P, e
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 6 ]0 a% R( S. s
ZDNet Taiwan - ‎2010年3月14日‎$ n. q6 e3 z- z5 w5 q! M
! x* Q5 X$ c6 n5 @9 {" h: |
如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
3 x5 N+ R/ C3 {1 |. z2 A讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
3 a. R, C8 A. y9 h0 j1 v& W環境熟了之後,自然就事半功倍。5 ^/ f: t& V4 {9 {9 |4 [; y1 z
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
+ U! f2 }, L* k所以,必須了解OS的運作原理、Driver的架構..
" `7 X* E$ t/ Z( l, Z若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk) 9 j7 U9 r0 H0 ~: A% G  l5 j4 Q
我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。" k! m9 b6 l4 ^  M, \/ b) @
想想嵌入式最常做的動作是什麼?就是除錯。
" M5 H( d. f& f" k除錯又分硬體及軟體。
& y: c* Q4 C- m( l硬體除錯所需的知識是微處理機架構及對CPU指令的了解。/ ?/ B$ w: U, M! Z5 g* G0 c
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。3 @, N3 F3 e. g) L7 D
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。- [* M  r$ P  E, ?8 V
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-16 03:04 AM , Processed in 0.129517 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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