作者acelp (未來,一直來一直來)
看板Tech_Job
標題Re: [問題] 想學韌體技術~~
時間Wed Aug 24 18:22:03 2005
每種CPU的運作方式不一樣 CPU也有分高低階
CPU大致又有分MCU跟DSP跟general 系統架構雖大同小異用起來就是不同
舉凡我們寫C希望模組化有物件概念等一堆觀念
但是到低階CPU就不同了 你把所有的功能全模組化可能影響到速度
因為各個cpu call function大致都要多花一些cycle
當你把一個簡單的程式硬寫成物件可能變得很麻煩
又如同data/program memory可能很小 很多變數得共用
程式追求的是體積小效率高 而非物件導向模組化
常call的小程式模組化會拖速度 但是可以省memory
不常call的大程式就一定要模組化 絕對可以省memory
但是又到了高階CPU(如tri-media) 由於高階了大多data/program memory比較充裕
又加上cpu本身有pipeline multi-function的功能
也不太可能從組語開始架構整個系統 多半靠CPU本身附的tool去作最佳化
做完最佳化後 找出performance的bottleneck直接用組語改
總之殺雞千萬不要拿牛刀 殺老虎時千萬不要握小刀
其他skill用嘴巴說了也沒用 還是得自己做一次才有可能體會得到
※ 引述《Seals (海豹特遣隊)》之銘言:
: 原文恕刪
: 這方面可能有些困難,因為要學好單晶片除了需要有良好的程式編寫能力,
: 但事更加需要對於計算機硬體方面的特殊長才,
: 因為單晶片的RAM很小,你可能會為了幾個位元與程式碼苦苦搏鬥。
: 我無意冒犯,但是資管系應該在高階語言上甚為重視模組化導向才是
: 模組化導向對於單晶片來說是一種浪費...會影響執行速度的
: 我也不是來撥冷水的,如果你真的有心往這方面發展,
: 我建議最少去買一本滿滿是嵌入式系統程式碼的書,基本來說建議是選用組語的。
: 越低階的寫法能獲得最好的執行效率,但是仍看工程施功力而言。
: 如果沒時間鑽研組合語言,那就直接買C語言的程式範例本
: 然後要逐行逐行的研究,如果以前的教授有經驗那更好,回去找她們吧。
: 寫嵌入程式以效率為最大目標,所以以前冠冕堂皇的程式寫作方式可能會受到挑戰。
: 其實我建議去學FPGA就好了...學8051有很好啦
: 最後祝你心想事成,你的成功將會是我的快樂。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.69.97.52
→ Seals:推吧~我死大學生收下經驗值啦 218.169.49.88 08/24
推 deathblue:推~140.135.100.187 08/27