Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

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

評分

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

查看全部評分

3#
發表於 2009-4-8 17:51:28 | 只看該作者
貼文很久了
' f) y+ l# b2 V' P# j: I4 }現在回不知道回了作者看不看得到  + M- f( s0 F( K9 E% {
5 [' Z7 b5 M) d# J% ~
假如想走底層一點的工作
0 @0 m6 @7 {' j+ p, r% o對於計算機架構可能要深入了解3 j7 Z5 S, q! m$ a/ c# [) t
建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
' c  v, P! x, m2 v" Y4 _, F& wx86也可,不過x86指令和暫存器比較多3 c8 d1 o5 |/ _+ K3 F
要多花一些時間閱讀( n" Q7 @& T/ y' V
1 y6 d1 k: y7 j1 o* n, V2 L
1. 從instruction set開始研讀
% @% y- [: O  o$ ?然後試著找一些assembly code trace看看# E1 ~, \: R5 m% a
現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考! U' H' h5 I. G6 S- N# q) ~( q7 L9 V
像是interrupt處理 context switch等等都有assembly code% ~# Y/ m  m( N  L" n6 O
看完之後應該對CPU有初步的了解
4 Y9 [3 z9 y8 s  ^) j
( h; a# A$ `0 Z: U' D2. 接著把MMU的觀念加入閱讀
5 ^9 M" x1 b3 F$ ^3 D5 m. UMMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。
3 i5 O" F8 R7 i
3 s- Z+ t8 i4 C: s3. 找一些device driver study,目的在於熟悉irq handler, DMA control等; w) ]9 R6 E! t5 _7 s
等技巧,有助於建立整個系統的感覺。9 O* z4 g& S/ Y  F% d# l# B

; G: E7 p# K+ ]; K& J# V* z/ R以上會了之後,混口飯應該不難。要變成超級工程師的話,就得
! v. z( d! F8 T; ^* ba. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分). _" Y+ ~4 F" Q, y: [$ x" g
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)
1 s7 X* d, W; p9 g, K+ c1 o+ w6 J+ j% q0 E# _- ^1 f
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
8 M1 {2 O( M' L& C7 O, N1 h9 b2 ^機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在0 U. }; ~* Q1 w+ D* {. [8 I
一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver, B5 A0 ^# W0 u1 S% X
效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,
7 E8 G/ q' H: l4 A7 }* [performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

4#
發表於 2009-5-11 14:12:56 | 只看該作者
不是打廣告% g5 @( S& w4 t) X$ z" N
, F+ s# I& J6 p5 |$ a
但是這本書是不錯的入門書1 M! K) r0 ]) @/ }1 f1 ^# x3 e
, \& }, M( k2 }" t
# 現代嵌入式系統開發專案實務 -- 菜鳥成長日誌與專案經理的私房菜
5#
發表於 2009-7-14 16:49:24 | 只看該作者
補一下知道的wince狀況' v2 L7 R2 C2 D9 C! I" K3 u
wince 6.0 很難說他是比較容易或比較難
% [" n% G$ z7 U( u因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
! v' \( v" C5 Y/ Q/ f$ ^大多就是把他開放給你的 interface 補起來就會動了
) w! E4 R. q6 x, `缺點是他的building sequence和dependence 做的不夠好; n1 V: n7 X4 D. e% e6 K% E
有實會只改了一個檔3 K' F/ d+ e* h& b$ F
按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
7 M5 ^0 }7 l: D/ n3 k不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到
, ~# Z$ R4 A) L一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間3 W: b9 R0 E% ]0 a; i& m) _  A& W
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
% Z" w. k. b' x+ l" \$ z- lwince可能適合有同事一起討論或帶領
6 t  r+ [/ q( R不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~
, ]* ]. ^9 @- Z3 F- B+ H+ y
! H5 z' o3 k) z+ U1 C簡單的對照是; y) |! [& z* o( b" }6 g
wince   <---->  linux
0 P/ y- p8 e7 meboot   <---->  uboot   (bootloader)
. G0 l: ~0 _6 T: b' _! l4 X0 cnk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)
2 K8 D' `* c! J) u8 F. R1 x1 U1 J1 _, O/ z- A
基本上linux對技術人員來說% l- X- ^) O- z) s. c. V. }) Y
技術上的學習和收穫會比較完整
. L& k* E; f+ H1 t( A; fwince可能比較偏向純粹的產品開發應用0 J' m- E( [1 r# v: Z, _" K4 C
不太合適當作學習平台
6#
發表於 2009-9-23 08:18:55 | 只看該作者
銘傳開課考微軟證照 軟體免費8 [  P7 K' ]2 [1 b& [: R+ I0 J+ [# H
聯合新聞網 - ‎1 hour ago‎5 i$ T" @9 b9 }( b
. P: [9 u5 o* c! L) @
他指出,目前國內嵌入式系統軟體工程師的職缺,仍有很大缺口,根據人力銀行統計,此類軟體工程師職缺約3000多筆,但求職者只近500人,「薪資更高達3萬5至6萬5元」,考取證照不但獲得就業保障,也提早與職場接軌。
7#
發表於 2010-3-18 07:48:16 | 只看該作者
系統工程師在美國被視為最佳職業 & @& r( w$ @; X+ ]3 B# Q# E. N0 |
ZDNet Taiwan - ‎2010年3月14日‎, {* e, a7 |! [" u% E* O
$ W! t7 a0 Y0 y( h: t. _
如果你是位系統工程師,老是懷疑自己是否選擇了對的職業,那現在有個好消息。根據一項調查顯示,系統工程師是美國最好的工作。 Focus.com可能是在世界各地都能聽到類似的牢騷抱怨的刺激下,做出了這個最重要的調查任務。 該網站一開始審視超過七千個工作,然後將焦點放在 ...
8#
發表於 2010-5-12 18:13:04 | 只看該作者
我也是一個想當嵌入式系統工程師的人,覺得必須先把pc 的os 改為成 linux ,0 z* J* f* M5 j6 H
讓自己熟悉linux 環境的基本功能,特別是文字模式下指令及工具,; j1 g. H( s1 P0 {
環境熟了之後,自然就事半功倍。. r) S( n* ~- v0 t: K/ h9 Z
一般嵌入式系統工程師~應該以Driver+OS 修改為主要,
9 C2 y+ E  f& I3 ]6 u8 x所以,必須了解OS的運作原理、Driver的架構..+ I, V) B5 Y9 w( l. z
若是從應用程式設計的事,可能是先把C語言搞懂,了解視窗軟體開發環境(Qt、Gtk)
5 e) ^1 i9 Y/ d3 P, h我覺得win ce 應該不太需要driver +os 維護吧
9#
發表於 2010-5-17 18:31:27 | 只看該作者
將PC O.S.改為Linux?只是稍為靠近,並沒有命中核心。  J0 e+ F2 N0 M$ }0 L- Y7 @0 M
想想嵌入式最常做的動作是什麼?就是除錯。6 V2 j( ~- L# |* }& Q4 w5 R$ R" x
除錯又分硬體及軟體。
% d; o1 R' t: N% O+ x硬體除錯所需的知識是微處理機架構及對CPU指令的了解。
. ~2 E: s7 _1 z9 Y軟體方面,我認為是系統程式。包括每天摸的Compiler,Linker,Loader。比較好的系統才會有O.S.或是debuger。系統程式熟了,根本不會去依賴作業環境。
4 T; _6 [% F# A$ H& F+ l不過Windows有許多動作都偷藏,Linux則比較開放,這點是沒有錯。
: ^! l5 W) j( h2 ]$ |% n5 }  z, ^可是作業系統是公司選的,它用Windows你又不能用Linux幫它編譯。還是不要太強迫自己換。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-21 04:13 PM , Processed in 0.112015 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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