Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-14 19:22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
對於發這篇文,如果有不好的地方,請各位大大給予指教!
  I4 D% ?& ]: _1 B5 ^
4 V& ], n' c' J' @( K# `' f我今年剛畢業,想進入嵌入式系統這個領域,是不是到外面去上電腦相關的課程是最快的學習途徑?
9 q* f7 f9 d- s6 H我再學校時,有玩過DMA2440開發平台,核心是ARM9的,當時是把廠商提供的source code拿來compile,並修改程式碼、除錯,
' A$ y: \' C5 C7 r, C+ W' r把許多的實驗範例整合實現在touch panel上,並以點選的方式來執行各個程式,我也有去上過windows ce 6.0 device driver的課,讓自己熟悉visual studio 2005的介面。8 ]; k! y; C+ o0 v

2 k' w! M) r* U+ R0 o% E  J  T因為看到外面應徵嵌入式工程師的條件都是要會C、ASSEMBLY、有Embedded system開發經驗,3 S. Q9 r! f* l, g& Z; V
我知道自己缺乏的東西很多,但是卻不知道從何下手,而且面對即將要當兵,想利用瑣碎的時間來充實自己,卻不知道如何做,, |- t, |* ]8 J. y6 D: j
只是在看很多文章,所以才會想要上來發文,希望大大能夠給我ㄧ些意見,在此感激不盡.
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2009-3-11 08:26:23 | 只看該作者
先從你最常用的工具先熟練做起。像是每天都用C,那C語言就要精。有使用到O.S.,那作業系統的知識就要會。有幫硬體除錯,那計算機組織就要會。/ y2 P# _/ p1 J+ r
不可能一下子全部會,遇到什麼就精進什麼。但其他相關的知識有了解就好,以避免新工作一時遇到會過度吃力。

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
" y7 ?6 f2 S2 s) `7 {$ V. e$ a" {現在回不知道回了作者看不看得到  
+ L5 c& x9 r; P. i+ v4 p2 v
' n2 U: }8 T( W. I2 \假如想走底層一點的工作
! S: k) q* y3 C對於計算機架構可能要深入了解6 D" H- X% V' k2 |. {8 P/ m! m$ Q
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
9 Z1 C" A, G% z2 I: K# C- k- E; [( k) Qx86也可,不過x86指令和暫存器比較多( u8 v0 i; Q( E# |( |
要多花一些時間閱讀5 R* ]+ p  P! y  y( `7 K! X; G# x

1 L0 ^. E1 ~0 U. L; k( g+ D6 K1. 從instruction set開始研讀
0 A: t4 W1 }* R. U# b$ M+ _8 Y然後試著找一些assembly code trace看看) {* o7 t7 Z5 x4 m& U
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考4 S5 j; O5 w' b2 F6 U
像是interrupt處理 context switch等等都有assembly code
# J% m5 e; r5 |4 }6 b, l看完之後應該對CPU有初步的了解
5 W+ z2 ~' ?0 [: G6 P
4 x+ c- q) }0 n0 }& I2. 接著把MMU的觀念加入閱讀1 ~& e1 }  h6 a3 h
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。! ?+ }; U/ R0 z) L

- h! _+ d2 I/ w3. 找一些device driver study,目的在於熟悉irq handler, DMA control等; C% e( Y: u$ Y: G/ P: o- t
等技巧,有助於建立整個系統的感覺。
4 h1 b1 E5 i# Q" @- b1 ]0 y4 i, |4 ^  M( g7 Z
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得- U! b2 R/ `# [6 @
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)! ?: ?9 U( g# Y  B$ I
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)7 b5 b) D  R& R! e$ @  m

% O; g  x0 N$ g$ a因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的# |- j! W) Z! n# b
機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
1 F, @2 T# @0 N一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
) N; h# x& X3 l效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
% B0 E  [0 p4 h, K- w; d+ Zperformance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告
$ ?# O. p5 D  [; L% o$ Z/ e: |& D3 O5 ~
但是這本書是不錯的入門書
, j" ?5 Y& l9 q0 ^
3 A6 p; o* D% \7 ?8 Q) p9 P& U# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況6 ^8 N: u" j" u/ {. b  c
wince 6.0 很難說他是比較容易或比較難: W2 z% q+ R' p  S. k7 H
因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)- K% Z. W: D$ Z. ]* Z
大多就是把他開放給你的 interface 補起來就會動了
$ g( ~0 h' x; w' [4 o4 u缺點是他的building sequence和dependence 做的不夠好
' D) W( t! x, n& {4 c5 e: W% m有實會只改了一個檔& T& P1 O, x3 s+ [4 U$ }4 T+ Y
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
4 X) D8 C: [, q: y# t4 ?9 g不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到: o" |: H  Y5 [
一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間
1 a9 Y0 r8 [# v' a8 l8 ^- r2 ]+ c+ \相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)+ K3 V( |$ `4 T& S4 i
wince可能適合有同事一起討論或帶領
$ w1 @/ l, w% J) d6 D) e$ H+ d5 Q不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~/ b- Z% i" Q, |( z# F2 @
1 U5 U7 h/ E4 o( u7 A8 l4 I* P- A1 H2 D
簡單的對照是
: ]/ Y9 n2 M6 w/ F- k% hwince   <---->  linux5 N/ w' S; e! ]: L* K1 q
eboot   <---->  uboot   (bootloader)3 K+ F# f0 s. @, y1 K  j
nk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)
, ?# @- z) a! ?' _' B
+ t, w3 h, J5 i0 s6 b4 O2 x5 l基本上linux對技術人員來說4 S+ g! j0 q6 ?
技術上的學習和收穫會比較完整* H4 V  M0 Z! n3 j! ]. J
wince可能比較偏向純粹的產品開發應用1 u, V' I3 B3 L8 s! K0 K
不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費
7 y7 x! _3 y2 C" s- M聯合新聞網 - ‎1 hour ago‎
" ]5 h! o5 F0 `& j4 a0 a9 u$ v2 W2 I! H4 y
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 8 z0 P4 W) r8 P; _: s7 M
ZDNet Taiwan - ‎2010年3月14日‎: M! a! Q& C) |' z
6 i, A  J, y" @% q+ G/ X) ]
如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,1 P6 E8 N. W9 V; D4 \- O+ t1 ]
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,
9 Q0 r  J2 X* C* x% I環境熟了之後,自然就事半功倍。. R- m( C$ O; Y7 E" P9 U' {
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
9 C- a7 y8 A! w6 U( Y: t3 ^所以,必須了解OS的運作原理、Driver的架構..
4 ^1 ~4 A% d* _* P& F若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
( j, S  b9 ~( f& f. }9 l我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。" E8 ~4 U% j( }. Y9 D/ i
想想嵌入式最常做的動作是什麼?就是除錯。
. U( {9 e$ V/ c; K4 i8 ^除錯又分硬體及軟體。
' U) V$ a* p  K, |- X7 ^硬體除錯所需的知識是微處理機架構及對CPU指令的了解。9 o0 s9 f: |1 M
軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
* H: W: m) `/ {; E( r( C9 `不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。  B& |% e% X8 c2 O+ f* I
可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-14 11:52 AM , Processed in 0.115006 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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