[爆卦]bin檔案是什麼?優點缺點精華區懶人包

為什麼這篇bin檔案鄉民發文收入到精華區:因為在bin檔案這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者andywhuang (偉少)看板ASM標題[問題]不同的bin檔案如何互相呼叫其中函式時間Tu...

bin檔案 在 HeLo.羅荷 Instagram 的最讚貼文

2021-05-15 14:38:20

MV《Rabbit Hole》 is online now ! Link in bio! - 嗨,真的好久不見了.. 久違的要和大家說:與Vooid合作的mv動畫《兔子洞》正式上線啦! - 時間要倒轉回2019年一月底,那時我剛好在日本旅遊,結果半途忽然接到有沒有興趣製作這支mv的訊息,我真的一路...


請教高手們
目前我正在撰寫ARM的C code
針對目前的產品有一些需求如下:

因為必須將程式區分成system部分跟library部分

system被包在一個bin中

負責執行整個系統流程

包括透過usb與pc的應用程式互動

然後如果有需要必須去呼叫在另外一個bin檔案內的其他functions

為什麼要分成兩個bin是因為library部分要給其他人寫

且因為不管是system 或是 library出錯只要個別編譯就好

如果包成1個bin 萬一其中出錯則都必須重新編譯

library部分可能會有很多的bin檔案 分別對應到不同的需求

system只要動態載入需要的library到sdram執行即可

我用的是iar EWARM CPU是ATMEL AT91SAM9G45

問題來了 現在我要怎麼樣才能正確呼叫到在另一個bin中的function

我想過用1個辦法 就是用固定位址的方式來作 在library中所有的function

都用@ 定義一個固定的位址 像這樣 void a()@"FUNC"

然後在iar link配置檔中定義func在固定的位址中

接著在system中利用h檔預先定義所有包在另一個bin中的function中的固定位址

利用函式指標直接呼叫 可是我在想這樣做真的可以作嗎?

應該還得考慮到將stack定義到同一段位址中

想很久不知道能不這樣做 請大家指點我一下 謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.22.55
PCIT:我的想法是建一個lookup table在library 03/22 22:04
PCIT:system開始之後dynamic check lookup table,(looping) 03/22 22:05
PCIT:然後把所有的functions都加到function pointer 03/22 22:05
PCIT:system要用時,就直接call function pointer 03/22 22:06
PCIT:另,如果function pointer = NULL,你就知道這個function 03/22 22:06
PCIT:還沒implement 03/22 22:07
andywhuang:感謝1樓的回答 03/23 12:40
fourier49:你寫的方式是可行的 我有用過 但是回去要很小心 05/25 20:59

你可能也想看看

搜尋相關網站