OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11500|回复: 6

如何在keil中设置 函数在ram中运行呢?

[复制链接]

14

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-7-23
在线时间
5 小时
发表于 2015-12-20 23:25:08 | 显示全部楼层 |阅读模式
5金钱
在IAR中有  __RAMFUNC  这个关键词 可以把一个函数放在 ram 中 运行  (不知道我的理解整不正确),
但是KEIlL中却没有这个关键字,移植遇到了问题,请问在keil中如何实现 这个关键字的作用呢??
(这个关键字是不是把一个函数放在 ram 中运行呢? 但是程序不都是在ram中运行的吗???)
求大神指点。。。。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-7-23
在线时间
5 小时
 楼主| 发表于 2015-12-20 23:25:33 | 显示全部楼层
求大神指点,原子哥。。。。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-12-20 23:25:52 | 显示全部楼层
这个估计有点麻烦,帮顶。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

14

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
147
金钱
147
注册时间
2014-7-23
在线时间
5 小时
 楼主| 发表于 2015-12-20 23:45:43 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
那原子哥觉得这个关键字的作用是什么呢?有没有用过呢?
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1767
金钱
1767
注册时间
2015-6-11
在线时间
312 小时
发表于 2015-12-21 09:09:25 | 显示全部楼层
http://blog.csdn.net/lan120576664/article/details/14451103
看下这篇文章, _ramfunc目前看除了提高效率没有其它作用
如果你移植的话,你在头文件里添加一句
#define _ramfunc

回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-12-21 11:31:19 | 显示全部楼层
有个比较笨的办法,先确定函数在flash中的位置和size ,然后在ram空间中定义一片相同size的区域,记下起始地址,然后在启动的时候写一段程序吧flash中的数据写入到ram中,然后在程序中用函数指针调用ram中函数的地址(还要记得+1,thumb态),这样就应该能实现函数在ram中运行了。

iar中的关键字,其实也是完成了上面的操作
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6679
金钱
6679
注册时间
2015-8-25
在线时间
1036 小时
发表于 2018-6-5 11:12:35 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-30 21:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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