Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

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

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了# A" S; v0 P* x" ^
現在回不知道回了作者看不看得到  2 _* f2 s# d' N: E0 v% P
) T" W# d) e* F4 t: c# o# `
假如想走底層一點的工作' `; e3 z8 ?( Y7 ]
對於計算機架構可能要深入了解& y' f4 f* l. [/ S8 R/ M+ o( V
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
! V% i7 S" \, Y& U0 |x86也可,不過x86指令和暫存器比較多% c9 e7 g$ q8 L9 N
要多花一些時間閱讀! x$ M) a1 v, A" f+ D" B% W

5 @. B; I7 h9 L0 y0 C( ?1 g) ^1. 從instruction set開始研讀
( W' w; V4 \7 e* B' ]# u然後試著找一些assembly code trace看看. p9 v2 r  x4 ^9 p; v: H4 i- Z
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
5 [. V2 e% ^- c像是interrupt處理 context switch等等都有assembly code
4 t2 @& y! G% }( a2 M8 t看完之後應該對CPU有初步的了解' C8 Y- P( F2 f' U- G
9 y$ }. F9 Y$ e
2. 接著把MMU的觀念加入閱讀
( ?0 O& `' n) D4 jMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
, H, l0 g- c. p8 F: \9 I' P1 E/ c; C* F. i
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
# x8 q  t; Y. {& b: }- I/ Y$ n& t1 w等技巧,有助於建立整個系統的感覺。
" U( A9 C0 v& E0 x/ M3 c8 A
3 ]* d' r; X) k. @7 L' t" ?6 h$ D7 A以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
. S) E, a8 i7 {5 t7 S7 y4 w8 Z- N/ Za. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)3 T' b1 p. l0 P: v& M2 G$ f
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
7 `& T/ J8 w, H2 d8 c) p) i' o; ~, ]" d
4 {2 E& P3 @0 y' e) U因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
3 t! T" e4 j+ p5 U# f* I6 v0 R* c機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在8 I: H2 ?' |+ ~' Y4 d+ n- W
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
! d$ G% [4 g, D  B' p效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
( @) D. i% |% Y) x+ N3 t/ Aperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告% y' H6 {, U, E+ D7 u4 _& |
2 m' J) R1 @" h; y# d& v/ v. m
但是這本書是不錯的入門書
- V" [8 m/ |4 K0 l7 J- g8 z+ N3 \. D$ y: f& t" Y
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況+ G! W5 ]$ g1 r6 G- _
wince 6.0 很難說他是比較容易或比較難9 |' |  V! z; [
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)/ b/ M6 g1 f+ u$ o6 i5 s. T  i& e# j
大多就是把他開放給你的 interface 補起來就會動了, G: i2 b/ b' F. x9 O- a2 x4 p
缺點是他的building sequence和dependence 做的不夠好% D) U. F: b6 P
有實會只改了一個檔9 C( z) O/ N! j8 _
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好) z, H2 p' d$ a: h/ }
不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到
" n  P# ]* t9 q' l0 B! }1 ]一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間
' M$ ?5 D, B. o+ W3 C* E4 y相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
. r, E0 Q& e' f2 |. x% \2 bwince可能適合有同事一起討論或帶領; [* E" o9 V( h6 w
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
* h  V# F9 y! q, y* a: O
3 o5 }! h4 i8 H' o+ J, I簡單的對照是7 F. X7 u, ]5 [. V2 l- ~
wince   <---->  linux& `# D- X  s" e- I; h
eboot   <---->  uboot   (bootloader)
: c( _7 t! b* [, z) E- C0 nnk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)
& h( f, o' M4 Z% |0 J
  g% Q$ A, D8 p3 Z基本上linux對技術人員來說& j# n2 r0 C/ n5 O; V
技術上的學習和收穫會比較完整
6 c5 B% i3 |7 N  e0 Ywince可能比較偏向純粹的產品開發應用
/ u( Q$ x: E6 a不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費
; Y6 G3 C7 M6 X( \0 |1 \/ N4 z聯合新聞網 - ‎1 hour ago‎
$ K8 F( t/ o2 `! F6 R4 c. b  o1 z2 T  s7 v: u& a$ k0 g
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 3 @6 K2 L2 x7 i. L. i; [1 D
ZDNet Taiwan - ‎2010年3月14日‎
- \# U  z9 Z. l& w' y% y3 W8 J% M: N4 f/ |: S& z
如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,' F$ \5 T7 J# x0 O. h' I+ Z* i
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,1 @9 ]) j/ G) q/ q: \, ]
環境熟了之後,自然就事半功倍。+ f! N2 _4 _$ N7 T" o! V
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
$ w% ~4 x# p! f! u# @8 ~9 J* H所以,必須了解OS的運作原理、Driver的架構..8 ]0 _$ q2 k# E4 M, b5 O0 I  n
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
8 s. U$ k* b; S7 m! B9 z我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
8 J5 R# E1 \3 Z9 D0 J$ W( M3 U) i想想嵌入式最常做的動作是什麼?就是除錯。8 i7 g" ~+ M, o- n# d" I! f: z  E
除錯又分硬體及軟體。& @& v1 d2 u& e2 N. h$ i. b- ?$ z0 u
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。: D% s1 d: P! S: g/ H, w: M5 c
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。9 p& N5 l/ W. o, R
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
4 ~/ d! Z4 h1 B9 D; i可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-17 07:02 PM , Processed in 0.132516 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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