STM32F10x 系列单片机 在RAM中 运行程序

STM32F10x 系列单片机 在RAM中 运行程序

STM32F10x系列单片机可以在ram中运行程序,这可以方便调试。下面我们主要学习该如何让该单片机在RAM中运行程序。

1.拷贝一个例程

2.keil软件的具体设置步骤

2.2进入keil option for tatget窗口
2-1
2.2在keil option for tatget 窗口中device选项卡中选择对应的芯片型号
2-2
2.3 根据具体芯片的RAM的大小在target选项卡中分配程序空间和变量空间的大小。本例子中我们按照对半分,实际可以项目情况而定。
2-3修改前
2-3修改后
2.4 去掉 1 处复选框,根据之前分配好的空间在2处修改程序连接地址。
在这里插入图片描述

2.5 在2处修改完连接地址后,勾选1处的复选框。
在这里插入图片描述
2.6 在keil以下目录找到RAM.ini文件 安装路径\ARM\Flash_Template\Test下RAM.ini

/******************************************************************************/
/* RAM.INI: RAM Initialization File                                           */
/******************************************************************************/
/* This file is part of the uVision/ARM development tools.                    */
/* Copyright (c) 2010 Keil - An ARM Company. All rights reserved.             */
/* This software may only be used under the terms of a valid, current,        */
/* end user licence from KEIL for a compatible version of KEIL software       */
/* development tools. Nothing else gives you the right to use this software.  */
/******************************************************************************/

FUNC void Setup (void) {
  SP = _RDWORD(0x20000000);          // Setup Stack Pointer
  PC = _RDWORD(0x20000004);          // Setup Program Counter
  _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table Offset Register
}

LOAD %L INCREMENTAL                  // Download

Setup();                             // Setup for Running

g, main

2.6.1将RAM.ini中LOAD %L INCREMENTAL 的% L替换成路径+工程名.axf,并保存,RAM.ini存放的位置不同其中的路径也不同,在本例中修改为LOAD .\Obj\LED.axf INCREMENTAL,其中.表示当前路径。

2.7进入Debug选项卡,将刚刚修改好的的RAM.ini添加到初始化文件列表中,并取消1处复选框
在这里插入图片描述
2.8 补充说明RAM.ini 以下三句中是可以注释掉的。
2.8.1第一句 _WDWORD(0xE000ED08, 0x20000000);这一句是设置中断向量表的偏移,在STM32中可以用以下两种方法替代,第一种方法是在C/C++选项卡中的define 中定义VECT_TAB_SRAM宏,另外一种方法是在应用程序的main函数前添加以下语句NVIC_SetVectorTable(NVIC_VECTTABLE_RAM, 0);其中NVIC_VECTTABLE_RAM=0x20000000。
第二句为LOAD %L INCREMENTAL 。第三句为g, main。
在这里插入图片描述

2.9点击setting进入下载设置
在这里插入图片描述
2.10 在1处 选择Do not erase RAM,RAM编程不需要先擦除,在2处设置分配后的RAM存储地址,点击3处,在4处设置程序的开始地址和大小。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值