找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3365|回复: 1
打印 上一主题 下一主题
收起左侧

STC单片机Keil中C语言函数定位的方法

[复制链接]
跳转到指定楼层
楼主
ID:285356 发表于 2018-2-25 11:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STC单片机KeilC语言函数定位的方法
如果您参考了本文档请在程序中和文章中说明使用了宏晶科技的帮助

下面以演示程序进行说明
演示程序中有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)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表