cn_x 发表于 2014-9-3 14:21:34

【分享】K60 Keil 将程序在RAM中运行——转帖

本帖最后由 cn_x 于 2014-9-3 14:23 编辑

设置Keil K60工程在RAM中运行在Keil中设置K60程序在RAM中运行比IAR要稍微复杂一些。在开始之前
[*]有一份可以运行在Flash中的 K60 Keil工程
[*]我的开发环境: MDK4.8x + Jlink V8
正式开工背景知识:首先要知道K60的RAM分成两块 0x1FFF0000 - 0x20000000, 0x20000000 - 0x20001000。 这2快RAM虽然地址上连续,但是不能当做一块连续的RAM来用,所以这样正好把这2快RAM一块当做RO data(存代码) 一块当做RW data(RAM)第一步配置如图所示:http://static.oschina.net/uploads/space/2014/0530/161404_Rr98_1435660.jpgLinker 选项配置如图所示:http://static.oschina.net/uploads/space/2014/0530/161644_k4KM_1435660.jpg注意 Linker中的RO base 和 RW Base 需要取消勾选Use Memory Layout form Target Dialog 后才能改,我们先取消勾选,改好后,再重新勾选上在Debug 中选择Jlink, 取消勾选Load application at startup 并且加上RAM.ini (名字任意)http://static.oschina.net/uploads/space/2014/0530/162005_rV4w_1435660.jpgRAM.ini大家自己创建一下,内容如下:FUNC void Setup (void) {
SP = _RDWORD(0x1FFF0000);          // Setup Stack Pointer
    PC = _RDWORD(0x1FFF0004);          // Setup Program Counter
    _WDWORD(0xE000ED08, 0x1FFF0000);   // Setup Vector Table Offset Register
}


load %L incremental

Setup();                           // Setup for Running

g, main


最后在utilities选项中配置如下(Debug选项没有特别的配置要求,和Flash一样就可以)http://static.oschina.net/uploads/space/2014/0530/162433_9yDC_1435660.jpg

sunnyqd 发表于 2014-9-3 14:23:00

也可以指定单独文件的分散加载位置

zwei99999999 发表于 2014-9-3 14:23:15

楼主辛苦了谢谢{:handshake:}

fengyunyu 发表于 2014-9-3 14:31:20

sunnyqd 发表于 2014-9-3 14:23
也可以指定单独文件的分散加载位置

keil也支持分散加载文件么?

sunnyqd 发表于 2014-9-3 14:31:50

fengyunyu 发表于 2014-9-3 14:31
keil也支持分散加载文件么?

当然支持,功能很强大

湛泸骏驰 发表于 2014-9-3 14:35:45

sunnyqd 发表于 2014-9-3 14:23
也可以指定单独文件的分散加载位置

可否图文教程。。。。

湛泸骏驰 发表于 2014-9-3 14:36:33

晚上试一下
。。再来请教楼主。。。

fengyunyu 发表于 2014-9-3 14:38:25

sunnyqd 发表于 2014-9-3 14:31
当然支持,功能很强大

keil还真没有注意。一般都是option中设置。

浪里白条 发表于 2014-9-3 14:39:56

分散加载哈,露珠自己原创么?

holts2 发表于 2014-9-3 14:43:40

放到内存中断电不是没了,有什么好处?

cn_x 发表于 2014-9-3 14:44:37

浪里白条 发表于 2014-9-3 14:39
分散加载哈,露珠自己原创么?

标记了转帖了············

浪里白条 发表于 2014-9-3 14:47:29

cn_x 发表于 2014-9-3 14:44
标记了转帖了············

原来如此,感谢分享。

cn_x 发表于 2014-9-3 14:55:13

浪里白条 发表于 2014-9-3 14:47
原来如此,感谢分享。

你这个是明天就可以换塔式开发板的节奏啊

浪里白条 发表于 2014-9-3 14:55:52

cn_x 发表于 2014-9-3 14:55
你这个是明天就可以换塔式开发板的节奏啊

争取哈,您这也差不太多了。加油吧

wangpengcheng 发表于 2014-9-3 15:01:52

这个可以有啊,呵呵!

sunnyqd 发表于 2014-9-3 16:00:56

fengyunyu 发表于 2014-9-3 14:38
keil还真没有注意。一般都是option中设置。

晚点我弄一个帖子说明一下

sunnyqd 发表于 2014-9-3 16:02:22

湛泸骏驰 发表于 2014-9-3 14:35
可否图文教程。。。。

OK,晚上我写一下

fengyunyu 发表于 2014-9-3 16:05:36

sunnyqd 发表于 2014-9-3 16:00
晚点我弄一个帖子说明一下

http://blog.sina.com.cn/s/blog_621dafdb0100ufoe.html,这篇文章貌似说得还可以。

sunnyqd 发表于 2014-9-3 16:08:48

fengyunyu 发表于 2014-9-3 16:05
http://blog.sina.com.cn/s/blog_621dafdb0100ufoe.html,这篇文章貌似说得还可以。

是呢,这个是手动配置分散加载文件的位置的

maimaige 发表于 2014-9-3 19:25:50

分散加载的话,可以开发bootloader了,通过bootloader 烧写固件到flash中去,或者在内存中运行,通过串口或者其他媒介传输固件。
类似uboot那个功能

rootxie 发表于 2014-9-3 19:33:32

楼主 到1W2了吗?

浪里白条 发表于 2014-9-3 19:37:41

rootxie 发表于 2014-9-3 19:33
楼主 到1W2了吗?

楼主马上1W2啦,哈哈

rootxie 发表于 2014-9-3 19:53:45

浪里白条 发表于 2014-9-3 19:37
楼主马上1W2啦,哈哈

难道你的目标是ipad?

cn_x 发表于 2014-9-3 19:54:27

rootxie 发表于 2014-9-3 19:33
楼主 到1W2了吗?

还差一点点···········

浪里白条 发表于 2014-9-3 19:55:43

rootxie 发表于 2014-9-3 19:53
难道你的目标是ipad?

Tower!不喜欢iPAD

rootxie 发表于 2014-9-3 19:56:56

浪里白条 发表于 2014-9-3 19:55
Tower!不喜欢iPAD

你很快了,再拉一泡就到了 恭喜恭喜{:victory:}

浪里白条 发表于 2014-9-3 19:58:44

rootxie 发表于 2014-9-3 19:56
你很快了,再拉一泡就到了 恭喜恭喜

恩,争取今晚上能达成目标,你也加油哦!

lzl000 发表于 2014-9-3 20:12:41

马上又要有第二个tower了啊

cn_x 发表于 2014-9-3 20:13:13

lzl000 发表于 2014-9-3 20:12
马上又要有第二个tower了啊

多谢支持啊

wxfje 发表于 2014-9-3 20:48:41

在RAM中调试方便多了,
不知2楼说的是什么方式,怎么设置

jiang887786 发表于 2014-9-4 00:22:22

这个帖子有技术性。学习一下。

bli19 发表于 2014-9-4 03:28:02

本帖最后由 bli19 于 2014-9-4 12:21 编辑

第三行怎么理解呢,不太懂这种语法,对向量表寄存器赋值?

zhaotyue 发表于 2014-9-10 08:37:28

谢谢分享!         

cs128815 发表于 2014-9-10 10:09:00

mark 标记一下

myxiaonia 发表于 2014-9-10 10:20:40

最后在utilities选项中配置如下(Debug选项没有特别的配置要求,和Flash一样就可以)                stm32内存调试的话,这里有个问题,flash配置应该选下面那个,并且什么内容也不填,因为没有flash什么事情,否则会提示闪存编程的问题

dongyanbo 发表于 2014-9-10 10:55:11

昨天晚上用类似的方法设置STM32,程序可以下载,但是就是不运行,折腾到很晚,还是不行,谁遇到过这种情况?

qq11qqviki 发表于 2014-9-17 16:27:02


楼主辛苦了谢谢

weiwei4 发表于 2014-9-17 18:02:23

之前在STM32上用过在RAM中调试,不过感觉这样有点麻烦,因为芯片的烧写次数也不至于在测试时就坏了吧,后来就没弄了

fjl888ful 发表于 2014-9-17 18:53:17

分散加载起什么作用?
页: [1]
查看完整版本: 【分享】K60 Keil 将程序在RAM中运行——转帖