在单片机编程使用中,会涉及到将某些函数定义到指定的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中的函数地址进行更改。

51单片机如何用c语言位定义,嵌入式编程(一):51单片机如何将函数 定义到指定程序地址...相关推荐

  1. 嵌入式编程(一):51单片机如何将函数 定义到指定程序地址

    在单片机编程使用中,会涉及到将某些函数定义到指定的code区.此时需要对工程文件进行配置修改才可完成.本期针对单片机平台做出说明介绍 1.测试目标 将函数testaddr定义到0x6000地址 2.测 ...

  2. 嵌入式编程(二):ARM单片机如何将函数 定义到指定程序地址

    在单片机编程使用中,会涉及到将某些函数定义到指定的code区.此时需要对工程文件进行配置修改才可完成.本期针对ARM平台单片机做出说明介绍 1.测试目标 将函数Communication_Test定义 ...

  3. R语言使用rnorm函数生成正太分布数据、使用curve函数绘制根据指定函数绘制指定范围的曲线图、绘制函数曲线图

    R语言使用rnorm函数生成正太分布数据.使用curve函数绘制根据指定函数绘制指定范围的曲线图.绘制函数曲线图 目录 R语言使用rnorm函数生成正太分布数据.使用curve函数绘制根据指定函数绘制 ...

  4. 单片机 串口 波特率 c语言 9600 11.0592mhz t1,PLC与单片机串口通信的实现

    党强 摘要:本文主要进行探讨单片机与可编程逻辑控制器plc之间的串行通信以及各个系统在通信技术中的应用,本文主要以at89c51单片机和fpi系列的单片机为例进行阐述单片机与plc的串行通信. 关键词 ...

  5. C语言学习——从零开始学编程(第四篇:函数)

    目录 前言--小颖的话 一.函数的概念 二.C语言中函数的分类 1.库函数 1.自定义函数 1)函数名 2)函数返回值 3)函数参数 4)实现几个简单函数 三.函数的形参与实参 1.实际参数 2.形式 ...

  6. python函数定义关键字_Python(2)深入Python函数定义

    在Python中,可以定义包含若干参数的函数,这里有几种可用的形式,也可以混合使用: 1. 默认参数 最常用的一种形式是为一个或多个参数指定默认值. >>> def ask_ok(p ...

  7. c语言开发数控软件编程电源,基于单片机数控电源设计.doc

    基于单片机数控电源设计 1 绪论 在现在的生活中,我们常常会用到各种电源,电源技术服务于各行各业.直流稳压电源是电子技术中常用设备,广泛应用于实验.教学.科研等领域.数控电源一般采用单片机系统来构成. ...

  8. DCS编程用C语言,如何用C语言对DMA控制器编程

    摘要:详细地分析了PC/AT机系统的DMA(直接存储器存取)控制器结构及其传输方式,并给出了C语言编程实例. DMA是英文DiretMemorAccess的缩写,即直接存储器存取,DMA传输是PC机与 ...

  9. 如何用html语言浏览 路径,小白编程系列(二):前端学习路径

    前言 上一篇我们简单的说了一下小白应该如何认识编程这件事,怎么选择编程语言.这一篇我们来说我们选择好了编程语言后,如何学习这门编程语言,它的学习路径应该是怎么样的.这个得分开讲,每一门编程语言的学习路 ...

最新文章

  1. 用Red5搭建支持WEB播放的实时监控视频
  2. [UWP]涨姿势UWP源码——Unit Test
  3. 配置tomcat容器的access.log访问日志
  4. R数据分析实战学习笔记(5)
  5. Transaction处理中的权限控制
  6. 使用idea上传项目到gitHub
  7. 小仙女带队!NLP入门-进阶-斩offer完整攻略来啦!
  8. 设计模式学习笔记(十四:单件模式)
  9. python 直线检测_python hough变换检测直线的实现方法
  10. win10 IE内核浏览器不能上网的问题
  11. 朗文3000词汇表带音标_朗文少儿英语2A-Unit3知识归纳(单词含音标版
  12. c语言程序求200以内的全部素数,求100~200之间的全部素数
  13. 快捷键: Windows下利用微信快速截图
  14. Ubuntu firefox无法加载视频
  15. 小游戏系列——猜数字游戏
  16. 中兴通讯加入LoRa Alliance董事会 推动中国运营级LoRa产业链发展
  17. 用stream流来遍历处理list,筛选出符合条件的list
  18. 字节跳动、腾讯、阿里的社交战,浑水中依然没有赢家
  19. 动态FormBean
  20. html utf 8编码转换器,utf8和gb2312编码在线转换工具

热门文章

  1. 用php web编程作业,用PHP进行Web编程.ppt
  2. oracle pdb还原为no-cdb,oracle 12c中CDB和PDB的备份还原实验
  3. onenote 思维导图_学生党做笔记,我为什么更推荐OneNote?看后你就明白了
  4. java多线程模拟loadrunner进行压测
  5. 如果你需要在 XHTML 中声明 DOCTYPE,必须使用到jsp:text动作元素
  6. cache工作的详细过程
  7. 一个小故事,玩转Python-while循环
  8. java基础的第二轮快速学习!day03
  9. 从零开始学习Docker
  10. slice深拷贝数组