51单片机如何将函数 定义到指定程序地址

在单片机编程使用中,会涉及到将某些函数定义到指定的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[i]= in[i]+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. 默认编译链接地址

3.7 回到算法工程,选择Project->Options for Target ...->BL51 Misc,点击Edit按钮调出lin文件,如图2所示

图2. 打开lin文件

3.8 在LKT4106_App.lin文件中,按照下图所示,将testaddr函数指定到程序区的目标地址,本例将其由默认的0x48B0地址更改到0x6000地址,如图3所示。

图3. 更改目标函数存储的地址

3.9 编译算法工程,并重新打开LKT4106_AppDemo.M51文件,查看testaddr函数所在地址,如图4所示,该函数已经更换到0x6000地址上。

图4. 重定义后目标函数所在地址

至此,51单片机将函数定义到指定程序地址的方法已经实现。下一篇将介绍如何将ARM中的函数地址进行更改。

———————————————————————————————
版权声明:本文为CSDN博主「linksafe2014」的原创文章,原文链接:嵌入式编程(一):51单片机如何将函数 定义到指定程序地址_linksafe2014的博客-CSDN博客_单片机函数定义

【单片机高阶编程】51单片机定义函数到指定的程序地址相关推荐

  1. 呼吸灯51单片机c语言编程,51单片机基于定时器实现呼吸灯(C8051F020单片机)

    一.实现思路 原理:利用PWM信号控制LED灯的亮暗程度,实现LED灯由暗到亮又由亮到暗的渐变过程. 方法:通过定时器设置LED所接引脚的高低电平持续时间,模拟出PWM波. 二.关键问题--PWM的频 ...

  2. JS高阶编程之柯理化函数

    柯理化函数编程: 一个大函数执行,返回一个小函数. <!DOCTYPE html> <html lang="en"><head><meta ...

  3. 原生js循环展示dom_web前端教程:JS高阶编程技巧-惰性函数

    框架(framework)是一个框子--指其约束性,也是一个架子--指其支撑性.是一个基本概念上的结构,用于去解决或者处理复杂的问题. Web前端教程 框架这个广泛的定义使用的十分流行,尤其在软件概念 ...

  4. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

  5. 想学单片机怎么入手?51单片机入门自学最佳指南

    曾经我是自学单片机然后跨行成功,今天来分享下自己的经验. 在网上看了很多文章,很多人说现在51单片机已经过时了,建议从STM32开始学习. 或者单片机没有钱途,直接搞ARM+Linux. 我的建议是从 ...

  6. 单片机c语言编程下载,单片机C语言编程.doc

    单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...

  7. Photoshop Scripting 高阶编程(1):取色器的应用

    Photoshop Scripting 高阶编程(1):取色器的应用 有如下示例图片一张,需要把其中各个圆点的颜色取出,并成对匹配上. 要解决这么几个问题: 1)如何取色. 2)取色后的存储与匹配方法 ...

  8. 51单片机五层电梯控制器 基于51单片机的五层电梯控制系统

    51单片机五层电梯控制器 基于51单片机的五层电梯控制系统 包括源代码和proteus仿真 系统硬件由51单片机最小系统.蜂鸣器电路.指示灯电路.内部按键电路.外部按键电路.直流电机.内部显示电路.外 ...

  9. 51单片机自动浇水系统/51单片机自动浇花系统/智能浇水系统

    51单片机自动浇水系统/51单片机自动浇花系统 整个设计由51单片机模块.湿度传感器模块(土壤湿度传感器或者温度传感器或者温湿度传感器,都可以).lcd1602液晶显示模块等组成,实现智能浇花和智能浇 ...

最新文章

  1. 多画面、实时投票,这场上了一晚热搜的超级晚,背后的技术出圈了
  2. Android Monkey(转载)
  3. dataGridView 行头那一块儿空白是否可见的设置
  4. 万能无线键盘对码软件_Ceke M87蓝牙机械键盘拆解评测 - Mac小伴侣
  5. iOS App 目录结构
  6. c语言验证24点,C语言解24点游戏程序
  7. 如何将第三方控件嵌入ToolStrip控件,并提供Design-Time支持
  8. java规范 控制语句
  9. 微信小程序微信支付(统一支付)
  10. 电信猫大亚DB120-WG破解超级密码方法
  11. 最好的 6 个免费天气 API 接口对比测评
  12. Android源码阅读记录
  13. 网易云热歌榜歌名与热评的高频词抓取及词云制作
  14. 理解特性阻抗、VSWR 和反射系数(二)
  15. 波形包络提取与峰值提取_干涉信号中的小波峰峰值提取方法与流程
  16. 分布式图计算系统与算法简单文献综述
  17. Nginx学习(一)
  18. uboot配置早期debug uart
  19. 事务一致性性与原子特性理解
  20. 企业创新系列之:格物致知

热门文章

  1. PLC电气控制柜怎么接线?
  2. error:值不能为 null。\r\n参数名: oldValue
  3. 计算机函数符号是什么符号,在计算机中数学函数的表达含义和符号
  4. 科研日记1——RSOFT层状结构波导背景折射率?
  5. va和tn玩游戏哪个好 va和tn哪个伤眼睛
  6. H264视频GOP组和视频压缩技术之有损压缩(帧间压缩、帧内压缩)、无损压缩(ACBAC压缩)
  7. 三相三线、三相四线、三相五线制区别
  8. 每天记录学习的新知识:圆的运算公式
  9. 20130418 程序员要写日记
  10. 2014迅雷校园招聘试题