Re: [請益] 把C++ code轉換為Arm code的軟體

看板ASM (組合語言)作者 (開心過暑假)時間14年前 (2010/09/16 17:45), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 編輯: shawen 來自: 111.71.68.202 (09/06 15:43)

09/06 17:51,
為什麼我覺得你說的是C++ Compiler for ARM ?
09/06 17:51

09/06 18:39,
同感~
09/06 18:39

09/06 20:20,
那個...g++行嗎...
09/06 20:20

09/06 22:20,
google "arm gcc" 第一個
09/06 22:20

09/07 12:02,
看完說明文章之後 我也發現了原來如此.... 囧
09/07 12:02

09/07 12:02,
各位人都太好 可以原諒我的搞笑 不好意思獻醜了 囧rz
09/07 12:02

09/07 18:16,
我怎麼覺得好像就是編譯器 arm gcc嗎
09/07 18:16

09/07 18:39,
差不多吧,他本來的code是在其他的MCU上跑,現在換ARM而已
09/07 18:39
謝謝各位的建議 自己回覆一下自己的文章以及遇到的問題 目前我使用的compiler是MDK armcc armasm armlink等指令試過了 簡單的程式轉換有見到理想的結果 不過我遇到另外的問題 不曉得其他前輩有沒有遇到過? 想要像大家請教一下 我在轉換目前需要的文件的時候 突然出現了一堆error 追蹤的結果是最初的define有問題 ====================================================== typedef signed __int8 s8; typedef signed __int16 s16; typedef signed __int32 s32; typedef signed __int64 s64; typedef unsigned __int8 u8; typedef unsigned __int16 u16; typedef unsigned __int32 u32; typedef unsigned __int64 u64; #define EXPORT extern "C" __declspec(dllexport) #define EXPORT_CALL __stdcall #define FASTCALL __fastcall ====================================================== 如文中所見 我打開了header file之後看到他的定意是這樣的格式 但__int8 __int16等似乎都不是標準的CPP支援的格式 我把__int8換成char __int16換成short __int32換成int __int64換成long long 之後就沒有了error的問題 (當然 如同書上所說的 要是全部的宣告都可以變成int才是最好的結果) 但我接下來遇到的問題是像 #define EXPORT_CALL __stdcall #define FASTCALL __fastcall 這些東西不知道該怎麼更換? 不知道各位前輩有沒有解決的辦法? 或者更直觀的想法 如果當初這位使用者 (這是open source的code 他說要用Visual studio 2010才能跑) 能夠定意這些的東西並且正常執行的話 一定有一個相對應的lib file或者header file 如果在這樣的情況下 是不是我缺少了哪個header file或者要去哪邊尋找/添加才可以? 我已經用過source insight查過這個project裡似乎沒有__int8 __fastcall之類的定義 找起來還不是很順手 想請問一下大家遇到這樣的define應該要如何是好? 因位是在許多的header file裡面會用到的 全部改掉的話好像有點擔心會出現問題 先謝謝各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.82.172.215

09/22 20:05, , 1F
__stdcall, __fastcall 只是指定函式呼叫時參數傳遞/推入
09/22 20:05, 1F

09/22 20:05, , 2F
堆疊的順序, 如果這在你的code中不重要, 應該可以砍掉?
09/22 20:05, 2F
文章代碼(AID): #1CaUTFmK (ASM)
討論串 (同標題文章)
文章代碼(AID): #1CaUTFmK (ASM)