Re: [請益] 韌體 8051 dsp arm

看板Soft_Job作者 (KOSS KSC35)時間16年前 (2008/05/17 20:34), 編輯推噓8(800)
留言8則, 7人參與, 最新討論串2/2 (看更多)
※ 引述《joy830 (joy)》之銘言: : 關於 8051 dsp arm : 麻煩指證我的觀點哪錯了 我想不通 : 1.都可以用組合語言寫 沒錯,只要功力夠。 : 2.都可以用c寫 只要有toolchain,有gcc, glibc, binutils等工具能支援 能產出machine code,就可以寫 : 3.組合語言執行速度比c快 不一定,組合語言有可能比C快是因為了解assembly的人可以針對某些情況最佳化, 不懂該processor最佳化的人去寫assembly說不定更慢。 : 4.c寫出來的行數會比組合語言少 所以在有限的ROM 用c寫比較好 這觀念很奇怪,C寫出來的source code會比較小, 是因為C compiler會去幫你做語意分析與射出機器碼, 存在ROM上的可不是source code,而是機器碼。 組合語言也不是機器碼, 那是一種低階的"programming language",不是"machine code", machine code是010101的符碼,代表instruction, data memory address..etc, 根據該instruction格式而定。 實務上code size的大小跟使用哪種語言實作無必然相關, 但不管用哪種方式實作都有方法去降低code size。 基本上用assembly最能夠直接決定code size, 因為assembly 的coding 格式最接近machine code。 用好的C compiler開啟相關optimize功能,也有可能把code size降低, 甚至有可能比直接tune assembly更小,建議你可以用C寫看看。 要直接tune assembly,通常是對該processor有很深的了解才敢去做的, 而且如果功力不夠,有很高的機率會寫的比compiler產出的還差, 不管是code size或效率。 : 那現在我的情況 : 公司有一個產品 不能用8051寫 跑不動 : 目前用dsp寫好了 用組合語言寫 可是ROM滿了 要加新功能加不進去 : 可是也不想用c寫 怕跑太慢 (真的會慢嗎?) : 明天要去買dsp和arm的書來看了 好煩 : 看苗頭不對 可能要閃了 = =" 8051, ARM與DSP是完全不同的三種processor,實務應用上有各自的市場區隔, 所以你應該評估你們的產品有什麼需求, 先去詳細分析各自的優缺點去選擇適合的processor, 然後下手實作,選擇適合的toolchain,再慢慢去tune performance。 而不是有什麼在手邊就拿什麼processor來實做, 而且你好像對於一個source code從compile到run 在processor的流程並不太清楚, 建議你可以去K計算機結構的書, 先把基本觀念弄清楚,應該會比較好上手。 Requirement analysis, resources, design, implementation, test 需求分析、資源取得、設計、實作、測試 各個步驟都要紮實做到,才有可能在最短的時間內作出成果, 否則一定會浪費時間。 小弟才疏學淺,希望能幫上一點忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.31.160

05/17 20:45, , 1F
推一個~~不懂組語寫的code會比c還慢
05/17 20:45, 1F

05/17 21:30, , 2F
推回文大哥是好人 我要拜師XD~~
05/17 21:30, 2F

05/18 00:22, , 3F
我買書了 還沒看 感謝回我那麼久的文章
05/18 00:22, 3F

05/18 02:42, , 4F
回文大大真是熱心的高手~!
05/18 02:42, 4F

05/19 00:32, , 5F
推一個~
05/19 00:32, 5F

05/31 01:01, , 6F
說的好,推~~~~
05/31 01:01, 6F

10/06 21:48, , 7F
好文 不推嗎?
10/06 21:48, 7F

03/15 13:08, , 8F
好文推
03/15 13:08, 8F
文章代碼(AID): #18Bj3XR_ (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #18Bj3XR_ (Soft_Job)