我可以: 邀请好友来看>>
ZOL论坛 > 硬件论坛 > 其他硬件论坛 > 嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址
返回列表
签到
手机签到经验翻倍!
快来扫一扫!

嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

45浏览 / 22回复

linksafe2017

linksafe2017

0
精华
45
帖子

等  级:Lv.2
经  验:520
  • Z金豆: 90

    千万礼品等你来兑哦~快点击这里兑换吧~

  • 城  市:北京
  • 注  册:2017-09-27
  • 登  录:2019-04-17
发表于 2019-04-09 14:31:06
电梯直达 确定
楼主

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

1、测试目标

将函数Communication_Test定义到Code区的指定地址0x1000位置

2、测试环境

LKT4304加密芯片算法工程、KEIL-ARM编译软件

3、实现步骤

3.1 使用KEIL软件导入LKT4304算法工程(KEIL软件基本操作不再敷述,如不清楚请自行百度

 

3.2 App_Main.c文件中声明测试函数Communication_Test

extern void Communication_Test(u8 *in,u8 *out,u8 len);

 

3.3 App_fun.c文件中实现测试函数Communication_Test

void Communication_Test(u8 *in,u8 *out,u8 len);{

  u8 i;

    

  for(i=0;i < len;i++)

   out= in+1;

}

 

3.4 App_Main.c文件中调用测试函数Communication_Test,此处省略

 

3.5 编译算法工程后,在LKT4304_AppDemoOutLst路径下找到 LKT4304_AppDemo.map,打开该文件。

 

3.6 寻找到Communication_Test编译后存储的地址。本例中,编译后的默认地址如 1所示。


嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

1. 默认编译链接地址

 

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


嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

 

2. 打开sc文件

 

3.8 ARM_App.sc文件中,Code区起始地址是0x30000,如下图所示:


嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

3.sc文件中定义的Code

 

  将函数Communication_Test定义到Code区的指定地址0x1000位置,需要在 App_fun.c文件中增加 void Communication_Test(u8  *in,u8 *out,u8 len) __attribute__((section(".ARM.__at_0x00031000"))); 这样一句代码。如下图所示:


嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

3.9 编译算法工程,并重新打开LKT4304_AppDemoOutLst下的map文件,查看 Communication_Test函数所在地址,如图4所示,该函数已经更换到0x31000地址上, 表明Communication_Test函数已经定义到Code区的0x1000地址。


嵌入式编程第二篇:ARM单片机如何将函数定义到指定程序地址

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

 

至此,ARM单片机将函数定义到指定程序地址的方法已经实现。

qq_008431795...

qq_00843179546v


精华

帖子

等  级:Lv.1
经  验:61
发表于 2019-04-11 13:58:39 1楼
LKT4304 Code区空间是多大的?

1de5hw

1de5hw


精华

帖子

等  级:Lv.1
经  验:30
发表于 2019-04-11 14:11:52 2楼
专业性太强了,看不懂!当技术储备吧!学习了………

MrWangJP

MrWangJP


精华

帖子

等  级:Lv.1
经  验:106
发表于 2019-04-11 16:37:53 3楼

同感,受教了,谢谢楼主分享!


k4a4xn

k4a4xn


精华

帖子

等  级:Lv.1
经  验:41
发表于 2019-04-11 19:15:31 4楼

请问4304都支持什么接口?


linksafe2017

linksafe2017


精华

帖子

等  级:Lv.2
经  验:520
发表于 2019-04-11 19:35:55 5楼

k4a4xn 发表于 2019-04-11 19:15:31

请问4304都支持什么接口?

SPI/IIC 都支持的,但同时只能使用一个

h2rssp

h2rssp


精华

帖子

等  级:Lv.1
经  验:42
发表于 2019-04-12 09:15:19 6楼

我对这个技术很感兴趣,我会一直关注的


weixin_7ht0q...

weixin_7ht0q408


精华

帖子

等  级:Lv.1
经  验:25
发表于 2019-04-12 09:41:50 7楼
1 LKT4304是做什么用的?用于什么行业?
2 LKT4304是新产品吗?什么时候推出的,安全性如何?
3 看起来有些复杂,开发会不会太难啊,有谁用过说一下

大卫先生

大卫先生


精华

帖子

等  级:Lv.1
经  验:34
发表于 2019-04-12 11:24:57 8楼
保护重要程序和,数据都行,好多行业都能用到

3l87i3

3l87i3


精华

帖子

等  级:Lv.1
经  验:30
发表于 2019-04-12 16:01:37 9楼

大卫先生 发表于 2019-04-12 11:24:57

保护重要程序和,数据都行,好多行业都能用到

LKT4304好像是他们去年新推出的32位的加密芯片,可以进行程序移植,安全等级很高

3l87i3

3l87i3


精华

帖子

等  级:Lv.1
经  验:30
发表于 2019-04-12 16:03:23 10楼

LKT4304好像是他们去年新推出的32位的加密芯片,可以进行程序移植,安全等级很高


weixin_7ht0q...

weixin_7ht0q408


精华

帖子

等  级:Lv.1
经  验:25
发表于 2019-04-12 16:52:10 11楼
正好在做一款产品的加密,看到楼主的的文章,又有了新的思路,感谢楼主的分享,这样的好文章楼主要多发表一点。真是雪中送炭啊!

h2rssp

h2rssp


精华

帖子

等  级:Lv.1
经  验:42
发表于 2019-04-12 17:02:28 12楼

这文章对加密芯片的算法讲得挺细,说明他们公司的技术人员很专业,技术能力很强,产品的安全度肯定很高


k4a4xn

k4a4xn


精华

帖子

等  级:Lv.1
经  验:41
发表于 2019-04-12 19:22:34 13楼

最近浏览过楼主的多篇文章,请问文中说到的LKT4304加密芯片和嵌入式编程第一篇中提到的LKT4106加密芯片其功能有啥区别?

大卫先生

大卫先生


精华

帖子

等  级:Lv.1
经  验:34
发表于 2019-04-12 20:11:09 14楼
具体得看资料,打个电话问问厂商,好像都是IIC接口的,其它啥区别我就不清楚了

3l87i3

3l87i3


精华

帖子

等  级:Lv.1
经  验:30
发表于 2019-04-13 10:18:19 15楼

文中提到的测试环境是LKT4304加密芯片算法工程,那是不是说这种编程方法只能用于LKT系列的加密芯片中?

MrWangJP

MrWangJP


精华

帖子

等  级:Lv.1
经  验:106
发表于 2019-04-13 19:29:18 16楼

我认为算法工程跟芯片的型号应该是一一对应才可以。不然对于不同的芯片配置不同,肯定无法正常编译。


linksafe2017

linksafe2017


精华

帖子

等  级:Lv.2
经  验:520
发表于 2019-04-13 21:04:13 17楼

MrWangJP 发表于 2019-04-13 19:29:18

我认为算法工程跟芯片的型号应该是一一对应才可以。不然对于不同的芯片配置不同,肯定无法正常编译。

对嵌入式编程和ARM单片机感兴趣的大神可以过来看看了哦⊙

d8mzgavd

d8mzgavd


精华

帖子

等  级:Lv.1
经  验:8
发表于 2019-04-14 20:49:28 18楼
“ (section(".ARM.__at_0x00031000" ” 是arm指令集的指令吗?

MrWangJP

MrWangJP


精华

帖子

等  级:Lv.1
经  验:106
发表于 2019-04-15 06:12:19 19楼

这不都写着ARM 呢吗,难道是51的不成,兄弟


d8mzgavd

d8mzgavd


精华

帖子

等  级:Lv.1
经  验:8
发表于 2019-04-15 09:22:06 20楼
这种方法是不错,不过不是特殊需求或是专业人士还是慎用的比较好。强制转换地址如果错误编译器不会报错的容易出问题。
点击查看更多精彩回复>>
去第 确定
支持键盘翻页 ( 左右 ) 
高级模式
论坛精选大家都在看24小时热帖7天热帖大家都在问最新回答

针对ZOL论坛您有任何使用问题和建议 您可以 联系论坛管理员查看帮助  或  给我提意见

快捷回复 APP下载 返回列表