在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4051|回复: 26

[原创] 嵌入式编程(一):51单片机如何将函数

[复制链接]
发表于 2019-3-22 17:42:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
单片机编程使用中,会涉及到将某些函数定义到指定的code区。此时需要对工程文件进行配置修改才可完成。本期针对单片机平台做出说明介绍
1、测试目标
将函数testaddr定义到0x6000地址
2、测试环境
LKT4106加密芯片算法工程、KEIL-C51编译软件、
3、实现步骤
3.1 使用KEIL软件导入LKT4106算法工程(KEIL软件基本操作不再敷述,如不清楚请自行百度)
3.2 App_Main.c文件中声明测试函数testaddr
extern void testaddr(u8 xdata *in,u8 xdata *out,u8 len);
3.3 App_fun.c文件中实现测试函数testaddr
void testaddr(u8 xdata *in,u8 xdata *out,u8 len){
  u8 i;
   
  for(i=0;i < len;i++)
   out= in+1;
}
3.4 App_Main.c文件中调用测试函数testaddr,此处省略
3.5 编译算法工程后,在\LKT4106_AppDemo\Out\Bin\路径下找到                                LKT4106_AppDemo.M51,打开该文件。
3.6 找到* * C O D E   M E M O R Y * * 部分,寻找到testaddr编译后存储的地址,注意:根据编译规则,testaddr函数会转换为大写格式,并加上函数所在文件的名称。本例中,编译后的默认地址如图1所示。
图片1.png
1. 默认编译链接地址
3.7 回到算法工程,选择Project->Options for Target ...->BL51 Misc,点击Edit按钮调出lin文件,如图2所示
2.jpg
2. 打开lin文件
3.8 LKT4106_App.lin文件中,按照下图所示,将testaddr函数指定到程序区的目标地址,本例将其由默认的0x48B0地址更改到0x6000地址,如图3所示。
                                        3.jpg

3. 更改目标函数存储的地址
3.9 编译算法工程,并重新打开LKT4106_AppDemo.M51文件,查看testaddr函数所在地址,如图4所示,该函数已经更换到0x6000地址上。
4.jpg
4. 重定义后目标函数所在地址
至此,51单片机将函数定义到指定程序地址的方法已经实现。下一篇将介绍如何将arm中的函数地址进行更改。

头像被屏蔽
发表于 2019-3-25 14:02:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
头像被屏蔽
发表于 2019-3-25 17:17:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2019-3-25 17:33:44 | 显示全部楼层
专业性太强了,看不懂,还是请大神来讲解一下吧
发表于 2019-3-26 10:33:20 | 显示全部楼层
图文并茂,讲得很详细;让我对单片机编程中的函数运用有了更深的了解,谢谢分享,会继续拜读楼主的文章
发表于 2019-3-26 11:02:10 | 显示全部楼层
mark!~mark!~mark
发表于 2019-3-26 11:42:21 | 显示全部楼层
楼主,我问下,测试环境中的加密芯片算法工程在哪儿可以下载,我想继续深入研究一下!
 楼主| 发表于 2019-3-26 16:23:07 | 显示全部楼层


Lity2016 发表于 2019-3-26 11:42
楼主,我问下,测试环境中的加密芯片算法工程在哪儿可以下载,我想继续深入研究一下!
...


可以申请样片哦
发表于 2019-3-26 16:37:01 | 显示全部楼层
好的,谢谢哈!
发表于 2019-3-26 16:53:03 | 显示全部楼层
这种资料网上肯定没有,得找原厂要的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-27 03:19 , Processed in 0.033059 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表