Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

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

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

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
( V* z% m9 r1 {  s( Q現在回不知道回了作者看不看得到  , i6 @( _' C, A7 e
1 }' k7 J+ l" O8 n) }: b
假如想走底層一點的工作9 s0 z7 v0 ^' W: Z2 g1 d, r7 P2 G
對於計算機架構可能要深入了解( A& m" n0 a, q' l" ?/ U' C& T( Q. U1 d2 J
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
" U) v" X2 D3 U# N+ E5 Ux86也可,不過x86指令和暫存器比較多+ Z$ q2 }& v; x6 T
要多花一些時間閱讀
  _$ g9 e. m9 j# K. T  G: L/ a2 B' {
1. 從instruction set開始研讀" b6 I  r/ S3 F- c% b" q% k" O. s
然後試著找一些assembly code trace看看7 C: w1 h6 v" T% m9 @. L8 h
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考: f  d0 l, J1 x. l1 p2 `# h7 \
像是interrupt處理 context switch等等都有assembly code
% x$ i& W% S/ Y' R- Q看完之後應該對CPU有初步的了解6 C5 X( [) i2 D' p" t3 a

! C- k$ T; u% @& h5 s2. 接著把MMU的觀念加入閱讀$ {. T# p. C4 x7 f) o' D# l1 t
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
& O4 I' m/ u, D' u. q; G- q- }$ A  z
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
8 X: Z5 t# |4 T1 g! H, f9 ]4 H# e3 i& O% ?等技巧,有助於建立整個系統的感覺。
' \: d& @" P: o. M+ U# l- P( d
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得/ O$ k  {' e* N+ V" v
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)1 M" s1 o* Q  i" z8 @" G  |
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver). a) |1 `4 h; g0 e' I. Q# b
. O! ]+ C. \  Y2 K' I4 }
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的6 p# m1 C) N  K
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
' \* |, R) z% C' A( o0 D  z/ k一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver1 A$ H8 r# m! J! t" D4 o& {9 l
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
/ n6 M- ]5 B9 o: l4 k) s4 eperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告, p6 W3 ^9 q) X  P
2 W& R7 h5 \- L/ a1 ]
但是這本書是不錯的入門書
6 i4 N) i+ l, A5 z
7 K/ k' M7 l. t; M) U# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況
% I/ {' E' K/ O3 c2 Wwince 6.0 很難說他是比較容易或比較難
+ @3 O; }# I7 R% I: N因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
9 D: U2 X% ?' T大多就是把他開放給你的 interface 補起來就會動了
) I0 M- R2 v/ c% G8 ?缺點是他的building sequence和dependence 做的不夠好: d* i7 z/ J- s$ c% j- M0 B* o
有實會只改了一個檔  L# w# P" D+ I( V  e
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好- E9 r4 z6 _- t, N
不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到
+ Y% R/ w7 r/ g* v一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間1 q/ _4 G! F! P! a% [  g1 e
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
& r& M3 U' O$ ^  vwince可能適合有同事一起討論或帶領
. E+ O* F" O" {  N不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~; c8 j6 V6 G, t9 p9 Q& Q/ W

0 ~- K5 K  |$ i( `7 e( @1 p: T- k2 }簡單的對照是
/ d" P" }' W' q1 v0 g6 _( qwince   <---->  linux2 b0 {) q* X) t" c. @# _  h( e
eboot   <---->  uboot   (bootloader)
9 [$ h% p% P6 }' ?9 unk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)$ _; ?% ?9 d* q( a8 a9 p
& F6 L6 h$ K2 Q& r# n/ `% M+ h
基本上linux對技術人員來說
8 y, ?' j7 @: U3 x! N4 e技術上的學習和收穫會比較完整' B4 K$ W: I3 A3 n8 B
wince可能比較偏向純粹的產品開發應用
: Z$ F5 K( @1 S* e" r/ u2 t! e& [0 E不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費$ T$ \* V  e& W7 B2 O: g8 N
聯合新聞網 - ‎1 hour ago‎
; b9 ?7 x3 O( A
* J1 b+ j7 x4 {6 j! o+ K" q他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業
9 S( j! g* Y) P: pZDNet Taiwan - ‎2010年3月14日‎
* p5 e- L* Q3 v7 x! B; u1 L/ w
5 }. N; j2 `$ J+ ^0 M如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,+ W2 ?  }1 z/ O& L4 Q
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,( c4 X3 b- f, v* f5 B8 U
環境熟了之後,自然就事半功倍。
; T1 \4 W8 e, j一般嵌入式系統工程師~應該以Driver+OS 修改為主要,0 M6 k" A; Y2 K9 Z7 w0 E# d' V
所以,必須了解OS的運作原理、Driver的架構..$ T, ?. q& h- X# F
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk) # t7 x9 ^, u, V" ?6 t. H- W- e3 r
我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
6 M6 }) ~, E" Y- _6 L& e& I想想嵌入式最常做的動作是什麼?就是除錯。5 N! E  D# M' |+ ]. d
除錯又分硬體及軟體。
* W  @3 j& g" u" c硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
  ~4 @/ ^, n, ?5 [9 v1 m3 {  F軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。" {+ u: L# s1 u" t, n9 U
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。/ d  c5 R  K8 d& E& \1 Z# C
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-28 09:42 PM , Processed in 0.120007 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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