文档章节

K60 Keil 将程序在RAM中运行

yandld
 yandld
发布于 2014/05/29 16:50
字数 376
阅读 105
收藏 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

© 著作权归作者所有

下一篇: Lwip 学习
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
2018/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
89
0
STM32单片机,禁止系统启动时的变量初始化。

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

lin307897038
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

正则表达式匹配

请实现一个函数用来匹配包括 '.' 和 '*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含 0 次)。 在本题中,匹配是指字符串的所有字符匹配...

Garphy
今天
7
0
Laravel 5.1的多路由文件的配置

默认的路由配置文件只有一个, \app\Http\routes.php。 在同一个文件中写路由容易起冲突,文件会越来越大,就需要定义多个路由文件。 找到加载\app\Http\routes.php的文件, 打开\app\Provid...

mdoo
今天
5
0
Hibernate 5 开始使用指南前言

同时在面向对象软件和关系型数据库进行工作,可能会非常复杂和费时。数据在对象和数据库之间可能会不一致,然后导致开发成本会非常高。 Hibernate 是一个针对 Java 环境的对象关系映射(Obj...

honeymoose
今天
6
0
聊聊nacos ServiceManager的UpdatedServiceProcessor

序 本文主要研究一下nacos ServiceManager的UpdatedServiceProcessor ServiceManager.init nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/core/ServiceManager.java @Compone......

go4it
今天
7
0
正则表达式的使用(QQ格式的判断与空格的切割)

//正则表达式的使用 public static void main(String[] args) throws IOException, ClassNotFoundException { //test1("123456"); test2("-1 99 kk"); } /** * ......

zhengzhixiang
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部