文档章节

K60 Keil 将程序在RAM中运行

yandld
 yandld
发布于 2014/05/29 16:50
字数 376
阅读 72
收藏 0

设置Keil K60工程在RAM中运行

在Keil中设置K60程序在RAM中运行比IAR要稍微复杂一些。

在开始之前

  1. 有一份可以运行在Flash中的 K60 Keil工程
  2. 我的开发环境: MDK4.8x + Jlink V8

正式开工


背景知识:

首先要知道K60的RAM分成两块 0x1FFF0000 - 0x20000000, 0x20000000 - 0x20001000。 这2快RAM虽然地址上连续,但是不能当做一块连续的RAM来用,所以这样正好把这2快RAM一块当做RO data(存代码) 一块当做RW data(RAM)

第一步配置如图所示:

图1

Linker 选项配置如图所示:

图2

注意 Linker中的RO base 和 RW Base 需要取消勾选Use Memory Layout form Target Dialog 后才能改,我们先取消勾选,改好后,再重新勾选上

在Debug 中选择Jlink, 取消勾选Load application at startup 并且加上RAM.ini (名字任意)

图3

RAM.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一样就可以)

在此输入图片描述

有问题环境大家在论坛提问 www.beyondcore.net

© 著作权归作者所有

共有 人打赏支持
yandld
粉丝 1
博文 12
码字总数 3217
作品 1
西城
程序员
keil编译后code,RO-data,RW-data,ZI-data含义及mcu的flash实际存储数据

keil编译后会有一行:Program Size:Code=xxx RO-data=xxx RW-data=xxx ZI-data=xxx Code 代表执行的代码,程序中所有的函数都位于此处。 RO-data 代表只读数据,程序中所定义的全局常量数据和...

cxs512068661
01/11
0
0
超核Kinetis固件库

超核Kinetis固件库是针对飞思卡尔Kinetis K60系列的,包含Freescale K系列及KL系列底层驱动及实例代码。 ---------- ## 如何开始 1. 请参见免费入门视频 按照视频下载工具软件 2. 安装MDK(K...

yandld
2014/06/03
1K
0
FPGA设计——SPI Flash启动之MC8051设计

1. 概述 本设计采用FPGA技术,在FPGA中实现8051单片机的软核,将外部SPI Flash中的代码数据加载到FPGA内部ram,然后复位MC8051,实现外部flash启动MC8051。 2. 系统框图 8051采用Oregano Sys...

shugenyin
2017/01/09
0
0
Kiel 中Code RO-data RW-data ZI Data是什么意思

在使用keil中编译经常会看到这样的一行提示 Code:代表执行的代码段,程序中所有的函数都位于此处。 RO-data: 代表只读数据段,程序中所定义的全局常量数据和字符串都位于此处。 RW-data:代...

su-jivin
2016/03/31
40
0
STM32单片机,禁止系统启动时的变量初始化。

使用这个功能是在IAP在线升级时需要用的。 最初使用在EEPROM或者FLASH存储一个标志位。程序跳转到BootLoader,BootLoader来判断是否需要升级。这样是可以用的,但是这样有个弊端:如果升级中...

lin307897038
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

no such module 'pop'问题

在github上 clone 了一个 swift 项目,编译时提示"no such module 'POP'"错误,查了一下居然是因为podfile中指定的最低版本是iOS 11.0,大于我测试手机的iOS版本10.3.3,将Podfile中的最低版...

yoyoso
今天
1
0
redis 系列一 -- 简介及安装

1.简介 redis -- remote dictionary server 远程字典服务 使用 C 语言编写; 高性能的 key-value数据库; 内存数据库,支持数据持久化。 Redis 是一个开源(BSD许可)的,内存中的数据结构存...

imbiao
今天
3
0
nginx log记录请求响应时间

有时为了方便分析接口性能等,需要记录请求的时长,通过修改nginx的日志格式可以做到,如 添加一个新的log_format log_format timed_combined '$remote_addr - $remote_user [$time_local] "...

swingcoder
今天
4
0
Spring MVC之RequestMappingHandlerMapping匹配

对于RequestMappingHandlerMapping,使用Spring的同学基本都不会陌生,该类的作用有两个: 通过request查找对应的HandlerMethod,即当前request具体是由Controller中的哪个方法进行处理; 查...

爱宝贝丶
今天
5
0
Java Web--增删改查之二界面后台java代码(转载参考)

/** *  *//** * @author Administrator * */package dao; import java.sql.*;public class DBConn {/** * 链接数据库 * @return */  ...

小橙子的曼曼
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部