STC單片機Keil中C語言函數定位的方法 如果您參考了本文檔請在程序中和文章中說明使用了宏晶科技的幫助
下面以演示程序進行說明 演示程序中有ReadIAP、ProgramIAP和EraseIAP三個函數 最終目的是將這三個函數都定位到0x8000之后
第一步:新建一個項目“Demo”,并將源文件“Demo.C”添加到項目中
第二步:直接編譯,并打開編譯后生成的“Demo.M51”文件
從M51文件的“CODE MEMORY”信息中,可以看到3個函數的鏈接名稱、鏈接地址和函數長度 ReadIAP的鏈接名稱為“?PR?_READIAP?DEMO”,鏈接地址為“0003H”,長度為16H字節 ProgramIAP的鏈接名稱為“?PR?_PROGRAMIAP?DEMO”,鏈接地址為“0019H”,長度為16H字節 EraseIAP的鏈接名稱為“?PR?_ERASEIAP?DEMO”,鏈接地址為“0044H”,長度為14H字節
第三步:根據M51中函數的長度信息計算出各個函數重定位的地址,
ReadIAP的重定位的地址為0x8000 ProgramIAP的重定位的地址為0x8016 EraseIAP的重定位的地址為0x802C
第四步:打開項目選項中的“BL51 Locate”屬性頁
在上圖的“Code”域中輸入下列語句 “?PR?_READIAP?DEMO(0x8000), ?PR?_PROGRAMIAP?DEMO(0x8016), ?PR?_ERASEIAP?DEMO(0x802C)”
第五步:點擊確定按鈕,并重新編譯即可,此時可以重新打開“Demo.M51”文件,便可發現3個函數已被重定位到我們所指定的地址了,如下圖
完整的Word格式文檔51黑下載地址:
STC單片機Keil中C語言函數定位的方法.doc
(244.5 KB, 下載次數: 12)
2018-2-25 11:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|