完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STC单片机Keil中C语言函数定位的方法: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个函数已被重定位到我们所指定的地址了。 |
|
|
|
只有小组成员才能发言,加入小组>>
2514 浏览 0 评论
1092浏览 2评论
703浏览 1评论
456浏览 0评论
200浏览 0评论
341浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 02:08 , Processed in 1.491227 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号