Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!, D  z% w1 n9 J# }2 [: |

. b6 l5 f/ c+ v, k我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
3 |, Y* w6 R. P2 k/ }1 C# d3 I我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
/ ]! `1 k( `/ D3 O& n7 S把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。' ^0 M1 ~( y  C# A) r

. G& e- @6 I/ O7 ]( i因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,1 J4 h$ M; X/ x3 l4 U5 L
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,
2 b+ y4 R* H0 n' ?/ T# G3 r只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。( u, y4 C; M: s8 u) b4 w
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了  @# m% P  X. C) L/ ~% b8 G1 X
現在回不知道回了作者看不看得到  7 o+ ~* e& ]" m( Z# m

( d. n) I  b4 R1 m/ g假如想走底層一點的工作. K6 Y" a8 r' I0 [- x
對於計算機架構可能要深入了解7 p3 o4 ^/ O" n% H0 h
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
6 q% ?7 q. O- l8 s0 L) w0 c4 lx86也可,不過x86指令和暫存器比較多9 ]3 M7 V1 ]' ]8 h9 K. T/ y
要多花一些時間閱讀# S) i$ T" c  X

. @. Q" }7 @% b0 p4 H1. 從instruction set開始研讀( P9 c: Y' K" b. |+ ^. O
然後試著找一些assembly code trace看看* Q( I% d1 M% u/ i8 w7 ?4 E
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考- S# K/ s/ a8 `/ q
像是interrupt處理 context switch等等都有assembly code8 ?& P7 u; M$ y0 u* j
看完之後應該對CPU有初步的了解) e8 ?# e! l% {% V6 X9 v# j

% }1 {# G1 T. r9 m) C8 B* T8 B2. 接著把MMU的觀念加入閱讀
& u$ Z) X& R' }2 z' F: tMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
+ C, O& Q4 B! ?  p% p3 n( j7 J0 v+ J+ v4 l) y. j9 o" H
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
* A2 L, |5 |' z; Z' d7 C" R4 E等技巧,有助於建立整個系統的感覺。2 H9 |9 B7 h! q; P1 [

2 N, ], ]' J8 |以上會了之後,混口飯應該不難。要變成超級工程師的話,就得6 W$ w/ M8 ?+ ~
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
2 I9 X+ D9 |- L" {8 Hb. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)1 e+ R) r! o+ [$ Y" X

# r; ]/ a) B- ?& ?9 t因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
2 W+ M  N4 l7 R機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在; T! ^5 ?2 w$ D/ L' I
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
1 s) L, T* ?8 E5 x. q效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
9 v5 ?1 H: Q- a9 C2 z' lperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告' F/ e4 i: ]" w- ~( r+ {: F

7 S1 L& }/ N6 B8 r6 h& @8 r* p但是這本書是不錯的入門書
( c, s+ P1 B  s# t4 u) i$ j8 v4 M/ T  T# {; T! f0 v) j1 Q8 b6 g: \
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況
8 m% h) W- u/ Swince 6.0 很難說他是比較容易或比較難8 x  h: W' d; P/ m( l  [9 b6 T
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)' N: s/ Y; r" d5 C+ o+ t
大多就是把他開放給你的 interface 補起來就會動了% j% A& T" ~4 j8 i
缺點是他的building sequence和dependence 做的不夠好
, R) U" J9 y1 R, S, L有實會只改了一個檔
# k. ^, b& O8 F$ H/ w; ]按錯編譯button就變成整包重新編譯  等到海枯石爛才編好1 D% I8 _  D$ m  `# M; n
不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到' [6 J/ j3 I8 j8 b
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間
- x, l% z8 B3 V# V" F相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
7 i; p9 t% N' |& W" p- |wince可能適合有同事一起討論或帶領. J4 [# j4 s  O/ c4 r
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
! K! t3 M, m* l8 g9 O' Y# g1 f+ a8 T  ~+ l+ F1 f. A7 L5 H
簡單的對照是
2 L3 x- Q8 z9 p8 o. D2 K9 r9 J, o- twince   <---->  linux3 ^3 }8 f* z  T
eboot   <---->  uboot   (bootloader)% [& J' C# h, c( o- v* g  f7 M
nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.); n3 a/ Q) b9 w( ?. j+ p5 w2 T

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

本版積分規則

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

GMT+8, 2024-4-30 12:23 AM , Processed in 0.110007 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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