Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

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

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了  M+ w" H7 e. x1 c
現在回不知道回了作者看不看得到  ' d8 _1 {3 I0 f/ X

$ o) v8 S) U/ \假如想走底層一點的工作
4 x- Q; q' l$ n6 G; ~8 S. [3 |對於計算機架構可能要深入了解
3 N5 H! m' [8 W  N" `# P建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
- A# v7 H. e& D; b0 Z* ~" p- |x86也可,不過x86指令和暫存器比較多& M, [3 y: u; Q9 j9 }0 m) K
要多花一些時間閱讀& V3 c1 k& I; r0 A) S' l

' m* _1 r7 `" m0 S& `5 n5 }1. 從instruction set開始研讀
0 L9 y# x, i# e4 ?$ M! g- a然後試著找一些assembly code trace看看! t* x7 m  h2 \0 N
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考$ \$ H' B& ?) k2 J3 X! X- F
像是interrupt處理 context switch等等都有assembly code* u9 N8 r( k4 i- v' }6 e7 f9 m' ~
看完之後應該對CPU有初步的了解+ R. L. {4 ~* @4 P% U
+ y" j+ i- }' Y; t
2. 接著把MMU的觀念加入閱讀
$ V! s$ M- K7 O% h; l9 Y3 V4 qMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。! X" u. A9 c$ j3 X' k4 k  @
% M6 C) `/ j2 |: K8 z2 x; |
3. 找一些device driver study,目的在於熟悉irq handler, DMA control等
! K" [4 |8 o* P8 x( i等技巧,有助於建立整個系統的感覺。
6 _# S" R( A: h' q4 f  i2 q8 O3 N' r: J+ p( H- q% W
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得. C+ }; }: J1 |: Y' {' Q
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)
" x2 X3 J9 p/ U2 G% Yb. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
: _) R8 J' Z9 a1 f. e. O8 Y7 a& r7 M- v8 ~. _& j' }; W. H+ U* D7 s
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
2 x" d1 w$ w9 C% S3 h機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在% u2 i9 d0 b; r1 D7 L) z4 k) x
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver6 J% p$ o! l  d3 |& @' n! C
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
. C! V9 N1 \4 @performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
+ k& D/ e0 O" C) Z, b5 Z) c
& T! T/ w9 C8 j4 H$ q& b* V3 ~但是這本書是不錯的入門書# H$ b1 a- a* k6 z2 `& w  A6 e

$ L& `# A2 C& C$ r5 F' R' q# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況
5 b* r- b+ P; G2 B' rwince 6.0 很難說他是比較容易或比較難
) Y' I+ @* I1 |* j3 P) \$ a1 E因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)! P' w4 G4 c1 I2 b+ I# V
大多就是把他開放給你的 interface 補起來就會動了
& E% P# T, |/ \9 M缺點是他的building sequence和dependence 做的不夠好1 E. o& R/ ]$ V5 [
有實會只改了一個檔# g$ H. l" a6 S7 L: W* J9 a5 \7 f5 d- R
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
6 s7 r0 l* N  x" R不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到0 m% N2 W; r. N) u( A6 V
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間
( D8 E7 q, s( |. N8 ?2 f) y相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)6 y5 z# j. \: |: f1 r
wince可能適合有同事一起討論或帶領1 b4 i! o$ p7 w6 O+ \  T
不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~, j% {5 p! g. |, q' a) Q! q

% V$ _: {/ a0 Y' ]) p$ v% o/ U簡單的對照是
- f1 W+ N; Q! |8 j+ T; u! hwince   <---->  linux& ^& a2 J( y% T1 F/ v6 I9 X
eboot   <---->  uboot   (bootloader)
9 b+ r: [/ b6 {$ e& xnk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)7 J$ b7 A! N$ ^/ r! v% c$ A

+ Q" _* ], y2 k' |% D) B& |$ `基本上linux對技術人員來說5 ?% q5 r" O3 @2 T( Y/ R- q; Z; f
技術上的學習和收穫會比較完整2 `1 Y7 z, `( x& f( ~; B& K
wince可能比較偏向純粹的產品開發應用5 r& l0 {% t& C1 g6 z6 `4 q6 O
不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費: s% f& B9 q4 j: M8 F
聯合新聞網 - ‎1 hour ago‎3 Q. U% W$ N/ E. Y& y; s6 N
& j0 R( @; ], d0 N  E
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 5 [- E6 o: B8 [. l. N7 T) y5 j
ZDNet Taiwan - ‎2010年3月14日‎) _; k4 G8 ~, y3 h  m

3 V% j9 ~" k# @: _5 J# j$ D* d如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,
! a! W# X/ R7 {讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,- J$ Z; R, Z: b) }& P8 u- d7 k1 ~
環境熟了之後,自然就事半功倍。; Z. z6 y( e5 f( v* y
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,( |0 C! Y' D+ r6 i. g: |" k* Y
所以,必須了解OS的運作原理、Driver的架構..* S% o& g4 }1 N
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
9 H% M) Y$ h( D7 @- t我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。
/ e: K: M2 ~3 j9 r. d+ T想想嵌入式最常做的動作是什麼?就是除錯。& p# b! [% A1 O
除錯又分硬體及軟體。  q2 {: @9 o2 }  t0 [# Q
硬體除錯所需的知識是微處理機架構及對CPU指令的了解。; z$ q* M+ t5 _
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。* N, M$ k. k! ]0 F
不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。; \# F+ E3 k8 O
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-4 08:27 AM , Processed in 0.106006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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