|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
大的匯編程序和C程序的合并 |
| 作者:happystar 欄目:單片機(jī) |
大家好!我們部門只有我和一個(gè)老工程師做單片機(jī)編程,我們倆人目前一起做一個(gè)項(xiàng)目,按照任務(wù)我們有了不同的分工。到現(xiàn)在為止,各自的程序都調(diào)試完成了。老板讓我把程序合起來。但是問題出現(xiàn)了,由于老工程師是早年大學(xué)畢業(yè)的,不太會(huì)用C。他那個(gè)1,2千行的程序全部是用匯編寫的,而我的程序用C完成的,編譯后也是7,8K。 簡單的C調(diào)用匯編我會(huì)(比如調(diào)匯編的一個(gè)延時(shí)程序什么的),但是他這么大的匯編我現(xiàn)在覺得束手無策拉。請問大家:難道真的需要我把他的那個(gè)匯編程序變成C程序才能合起來么?還有什么好的方法沒有? 關(guān)鍵在于他的那部分程序用了挺多外圍芯片做的,我也看不懂,只能逐條翻譯了。還有,人家那個(gè)人又再進(jìn)行別的工作拉,不好意思麻煩人家給自己解釋啊。謝謝大家拉 |
| 2樓: | >>參與討論 |
| 作者: 平常人 于 2006/10/21 20:45:00 發(fā)布:
看起來匯編部分應(yīng)該主要是硬件的驅(qū)動(dòng)部分,你可以先畫個(gè)框圖 你可以先畫個(gè)框圖把各部分的調(diào)用關(guān)系搞清楚,這樣匯編部分應(yīng)該可以分解成多個(gè)小段程序,然后在C程序部分分別調(diào)用;畫個(gè)框圖還可以更明確參數(shù)的傳遞路徑和關(guān)系。 |
|
| 3樓: | >>參與討論 |
| 作者: guet 于 2006/10/21 20:54:00 發(fā)布:
還真是沒做過 我也只是會(huì)插入點(diǎn)匯編,調(diào)用匯編子程序(KEIL) |
|
| 4樓: | >>參與討論 |
| 作者: computer00 于 2006/10/21 21:22:00 發(fā)布:
叫他做成函數(shù),然后給你調(diào)用。 并且按照寄存器傳遞規(guī)則來做。 |
|
| 5樓: | >>參與討論 |
| 作者: 農(nóng)民講習(xí)所 于 2006/10/21 22:49:00 發(fā)布:
估計(jì)老工程師寫的匯編不是標(biāo)準(zhǔn)的 先把匯編的變量全部采用data定義,一定不能使用EQU。 再自己做個(gè)C和匯編調(diào)用接口:一邊接收標(biāo)準(zhǔn)C傳遞規(guī)則,另一邊將所有R寄存器、A、DPTR、B都入棧,類似中斷的現(xiàn)場保護(hù),將全部資源向匯編開放。再將C的參數(shù)按實(shí)際接口傳遞。反過來也如此處理。 最后在KEILC中都加入。也可將匯編生存的OBJ生成LIB,這樣方便C調(diào)試。 |
|
| 6樓: | >>參與討論 |
| 作者: djx 于 2006/10/22 12:08:00 發(fā)布:
我的辦法: 先在C里面寫一個(gè)空函數(shù),功能對(duì)應(yīng)匯編的,輸入?yún)?shù),返回參數(shù),中間用到的變量全定義好.單獨(dú)存一個(gè)文件即一個(gè)模塊,把這個(gè)文件編成SRC格式.用寫好的匯編代替SRC文件即可. |
|
| 7樓: | >>參與討論 |
| 作者: NE5532 于 2006/10/22 21:57:00 發(fā)布:
嵌入式匯編代碼,知道匯編界面就簡單了。 最重要的是參數(shù)的傳遞。 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |