Re: [問題] 請問8051是塊板子吧?
※ 引述《shuiyuan (C遇瓶頸)》之銘言:
: → eva19452002:可以直接拿8051的C拿去ARM執行嗎? 應該不行不是嗎? 11/13 08:53
: → eva19452002:結論是不同平台的C還是要做相當程度的修改才行 11/13 08:53
一般嵌入式系統上的開發,會把程式碼分成幾部份。
1.Kernel core ---> 硬體初始化...
2.Board Description Package ---> 硬體腳位、週邊控制介面...定義
3.Hardware API ---> 存取週邊時需要用到的程式介面
4.User Application ---> 跟硬體無關的程式。
不同的平台,能直接去用的只有(4)的程式可以,其他的都要作porting的工作。
比如arm上面有放網路介面,而8051沒有,了不起存取網路介面的部份不會動。
或是call api時告訴你無此裝置。基本上是可以100%移植。
建立(1)~(3)的部份的好處時,在同一平台開發時,幾乎不用重新key in,直
接連結進來,改一改Boaed Descript。現在的IDE都是以專案方式管理,這樣
可以加快開發速度。
我自己玩單晶片超過10年了,幾乎就是(1)~(3)的部份連結進來,然後在header
file改一下mcu參數就直接寫user code了。不同晶片,就是(1)~(3)的部份第
一次把他建好就可以了,頂多就是不足的部份逐次修訂。
推
11/14 15:26, , 1F
11/14 15:26, 1F
這種問題算是老問題了,基本上這類的定義可以放在(1)~(3)來面處理。
重新定義資料型態寬度,確保正確的寬度被使用。
比如int可以用int16定義,char用int8定義,有些uC是32位元的,那可以
透過marco去重定義int為int32這類。
像pic和pic32的int就不一樣。我的user application在兩者間移植就是這樣作。
推
11/14 18:42, , 2F
11/14 18:42, 2F
※ 編輯: MasterChang 來自: 59.104.147.111 (11/14 21:58)
→
11/15 09:25, , 3F
11/15 09:25, 3F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
4
12
ASM 近期熱門文章
PTT數位生活區 即時熱門文章