找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3671|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

STC單片機(jī)Keil中C語言函數(shù)定位的方法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:285356 發(fā)表于 2018-2-25 11:36 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
STC單片機(jī)KeilC語言函數(shù)定位的方法
如果您參考了本文檔請?jiān)诔绦蛑泻臀恼轮姓f明使用了宏晶科技的幫助

下面以演示程序進(jìn)行說明
演示程序中有ReadIAP、ProgramIAP和EraseIAP三個(gè)函數(shù)
最終目的是將這三個(gè)函數(shù)都定位到0x8000之后

第一步:新建一個(gè)項(xiàng)目“Demo”,并將源文件“Demo.C”添加到項(xiàng)目中

第二步:直接編譯,并打開編譯后生成的“Demo.M51”文件
從M51文件的“CODE MEMORY”信息中,可以看到3個(gè)函數(shù)的鏈接名稱、鏈接地址和函數(shù)長度
ReadIAP的鏈接名稱為“?PR?_READIAP?DEMO”,鏈接地址為“0003H”,長度為16H字節(jié)
ProgramIAP的鏈接名稱為“?PR?_PROGRAMIAP?DEMO”,鏈接地址為“0019H”,長度為16H字節(jié)
EraseIAP的鏈接名稱為“?PR?_ERASEIAP?DEMO”,鏈接地址為“0044H”,長度為14H字節(jié)

第三步:根據(jù)M51中函數(shù)的長度信息計(jì)算出各個(gè)函數(shù)重定位的地址,
ReadIAP的重定位的地址為0x8000
ProgramIAP的重定位的地址為0x8016
EraseIAP的重定位的地址為0x802C


第四步:打開項(xiàng)目選項(xiàng)中的“BL51 Locate”屬性頁

在上圖的“Code”域中輸入下列語句
“?PR?_READIAP?DEMO(0x8000), ?PR?_PROGRAMIAP?DEMO(0x8016), ?PR?_ERASEIAP?DEMO(0x802C)”

第五步:點(diǎn)擊確定按鈕,并重新編譯即可,此時(shí)可以重新打開“Demo.M51”文件,便可發(fā)現(xiàn)3個(gè)函數(shù)已被重定位到我們所指定的地址了,如下圖

完整的Word格式文檔51黑下載地址:
STC單片機(jī)Keil中C語言函數(shù)定位的方法.doc (244.5 KB, 下載次數(shù): 12)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表