Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
1#
發表於 2009-4-8 17:51:28 | 顯示全部樓層
貼文很久了$ h! n2 @$ C( S1 q4 {; |
現在回不知道回了作者看不看得到  6 f) a6 C  q' V# u1 a
: Q8 G) i3 y% C3 k3 ?- W, Z
假如想走底層一點的工作
' y6 E3 n' H, Q8 M( g3 ?  r對於計算機架構可能要深入了解
( S; w2 g- K4 V- M建議先對某個特定平台熟悉  例如ARM+Linux or ARM+WinCE
* n9 e! S% y# N% g5 n( [. y1 H5 {- sx86也可,不過x86指令和暫存器比較多
, Y$ S  {# q! i9 ~" A$ D要多花一些時間閱讀- F  p/ C. @0 ^3 i# Z

# H0 R7 }4 U# _/ E6 s, @1. 從instruction set開始研讀
: a9 v6 M. o: D' m( @; i然後試著找一些assembly code trace看看
" \. k. w1 d( H! {6 d; c) ^現在有蠻多書對於控制ARM的各種模式都有程式碼可以參考
+ V1 z! W" f$ d7 ]4 o5 ?像是interrupt處理 context switch等等都有assembly code. W* ^5 w& i5 T# o% Q% d
看完之後應該對CPU有初步的了解
+ O" T/ K! B" f. k/ \
! V2 F, T3 }+ M5 G2. 接著把MMU的觀念加入閱讀) \) B! _4 U' Q: s* m7 ^& X
MMU是個很重要的元件,理解之後對於深入系統操作有蠻大的幫助。2 F# W* E# f; j7 R

% Q6 B" J& N: @& L, e, H, q# Z3. 找一些device driver study,目的在於熟悉irq handler, DMA control等( J* l$ B0 P5 E
等技巧,有助於建立整個系統的感覺。% o/ _; ~. G5 _% l
" h/ S1 W) e  L4 P, i
以上會了之後,混口飯應該不難。要變成超級工程師的話,就得" Y, r$ c% R* X6 v6 z
a. 熟悉CPU進階功能 (通常是慢慢演進,port OS需要懂這部分)7 Y; n$ H+ [+ U2 [( u- Y
b. 熟悉硬體介面和特性 (規畫系統非常需要具備,也可以因應不同架構修改自己的driver)6 R2 W  M# e' ?1 x1 ~# p' u. F' _
1 b& Q6 }0 g9 Z, A+ q$ v* Z$ E% H
因為CPU現在趨於複雜化,通常都帶有一些特殊功能,像是cache, write buffer的
& W9 T9 n0 t2 ]4 _5 q, C9 h/ q機制等等。而熟悉硬體介面和特性的好處是,有時候因為硬體平台整體規劃不良,存在
$ R( o! |5 @9 q一些bottleneck,最常見就是某段memory bandwidth不夠,這些對device driver
/ k) Q& ^# U8 h( q效能有很大的影響,如果只是單純懂寫driver的技巧,有時候雖然寫出很精簡的driver,6 t& U. n& S" c, U
performance卻出不來,要適時地修改driver架構或使用其他讀寫方式才能讓系統表現更好。

評分

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

查看全部評分

2#
發表於 2009-7-14 16:49:24 | 顯示全部樓層
補一下知道的wince狀況
; @" S+ l) f; E) [, iwince 6.0 很難說他是比較容易或比較難
) n; k+ a# W5 X# t' y) S% Y3 X5 b因為他還是沒完整的source code (據說逐步開放,不知道現在如何?)
4 h# S: i' \, `0 O+ m( @* V9 D大多就是把他開放給你的 interface 補起來就會動了4 q4 ^/ W+ G* h& J- J$ t! a
缺點是他的building sequence和dependence 做的不夠好+ }  l$ j: a, X" c% ~8 a) X4 ^& `
有實會只改了一個檔
3 f1 ]6 T7 c& ]  S5 d8 t( |1 Z按錯編譯button就變成整包重新編譯  等到海枯石爛才編好
) X: _" E( y: H9 M7 _不然選擇只編譯某部分  結果發現你改的那個檔案還是沒編譯到
4 u; C2 C! p" k: @. e* V& H一開始就要熟悉他編譯的過程  自己打指令的話  應該會省去不少等待編譯的時間- U) f+ `$ R2 N$ g4 A/ l! [
相較之下,我覺得Linux可能有比較清楚一點點 (至少還有code可以看)
. a. _1 W- E' `, lwince可能適合有同事一起討論或帶領
. Y, l. K* y7 H4 k9 U不然就是要先熟讀相關的文件比較不會不知道自己在幹嘛~& }# n' s5 V& l2 L; V
! k7 F5 _2 k6 M4 T; }7 q, d# o" s
簡單的對照是( D2 h9 O: \* X( w. C, n, N
wince   <---->  linux1 ~, A% F. F+ i/ v  K* Y+ `' l
eboot   <---->  uboot   (bootloader)
! M* c% A% M2 \9 ~$ wnk.bin   <---->  uImage (kernel, nk.bin還包含一些file system.)
: ]' c; |3 v  j" B& {  @3 R+ {! p! u! f4 i( A
基本上linux對技術人員來說4 o0 C1 |; I" x# p
技術上的學習和收穫會比較完整
4 t* {; @9 M  e( a8 M( Mwince可能比較偏向純粹的產品開發應用  R" a; g1 P4 l) K) d1 a4 T
不太合適當作學習平台
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-15 09:22 PM , Processed in 0.098512 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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