stm32代码如何下载到ram,在ram中跑

如题所述

1、配置RAM地址,注意RAM的起始地址是0x20000000八位,要分为多大,一半一半也行
2、打开output选项,选择output的输出目录为之前建立的RAMout文件夹
3、点开Linker选项窗口配置基地址:先将Use Memory Layout from Target Dialog的勾号打掉即可设置R/O Base和R/W Base 的地址了!分别填写地址为0x20000000和0x2000C000。
4、配置JTAG仿真,选择RAM.ini,网上下载。
5、一切配置完成后,在编译完成代码后,就可直接点击 DEBUG进行仿真
参考资料:http://wenku.baidu.com/link?url=PgSd9PsD46Xs1v4Po1kA-4K5AqEZ1P4MllO3CzQ45ZZMWX7SyC0CUhOtUaYwDTxk6ScH830zOcZUx7npZrjQTlUqHbNtIwdCM7kekxo1yT7
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-01-07
用MDK,Jlink下载,flash load 下载软件是不行的。
1、先把BOOT0,和BOOT1跳线,跳到高位(置1)
2、在Options for Target中设置。如ROM40K,RAM8K,可如下设置ROM:0x20000000(start),0xa000(size)。在RAM中设置:0x2000a000(start),0x2000(size)
3、在Debug中的Initialization File中添加一个RAM.ini文件。
SP = _RDWORD(0x20000000); // Setup Stack Pointer
PC = _RDWORD(0x20000004); // Setup Program Counter
_WDWORD(0xE000ED08, 0x20000000); // Setup Vector Table Offset Register
4、在Utilities页面选择jlink,点击setting,在Flash Download中Do not Erase.同时设置ROM地址0x20000000(start),0xa000(size)。在RAM中设置:0x2000a000(start),0x2000(size)
5、重新编译,下载即可

但愿对你有帮助本回答被提问者采纳
第2个回答  2011-10-24
跳线设置,或者IAR编译软件中选ram编译追问

用flash load 下载软件好像不能下载到其他地址里吧,能得话应该怎样设置
歇歇

stm32代码如何下载到ram,在ram中跑
1、配置RAM地址,注意RAM的起始地址是0x20000000八位,要分为多大,一半一半也行 2、打开output选项,选择output的输出目录为之前建立的RAMout文件夹 3、点开Linker选项窗口配置基地址:先将Use Memory Layout from Target Dialog的勾号打掉即可设置R\/O Base和R\/W Base 的地址了!分别填写地址为0x200000...

stm32 怎么实现外部ram加载 内部ram堆栈
你是怎么给任务分配栈空间的?干脆不要定义内部RAM空间,这样所有的变量就保存到外部RAM了。这一部分你得先确保外部RAM的硬件地址和你工程设置的一致,并保证FSMC初始化在RW和ZI数据的初始化之前。然后写个内部RAM的分配函数,给os动态分配栈空间。 数据范围就是就是系统栈的末尾至内部RAM的末尾,或许还...

stm32中的程序是在RAM里还是flash里执行
代码是你通过串口 或者jtag,下载到flash(当然代码可以通过jtag直接下到ARM,进行在线调试),,代码的执行最终都是要拷贝到ARM中执行……

stm32如何将数组放到外部ram中
按照ST的实例,把开FSMC总线功能。此时,SRAM就和RAM是一样。只是地址不同而己。0X68000000开始就是外部地址。用一个指针变量来处理就OK了。*(unsigned int*)xxxxxxx,这些xxxxxxx表示地址。我就是这样操作的。很简单。

STM32怎么把程序存储在外部存储器执行
之前我也想过,要在外部执行都是需要初始化外部存储器的,以模拟ARM9,A8,A9的启动过程,首先从STM32内部flash启动,里面写个Uboot,出初始化STM32的FMC或者FSMC接口上的norflash或者SRAM或者SDRAM,如果程序存在nandflash上,还要初始化nand,然后把nand拷贝到SDRAM或者norflash或者SRAM;然后uboot跳到...

STM32能实现将FLASH里的程序搬到 RAM中运行吗
当然可以,只是编译器需要设置,中断向量表也需要设置。以MDK为例子,请看下面文档55章的串口IAP,选择里面有用的部分即可。

stm32怎么在ram中跑程序呢 型号是stm32f103zet6,闪存听说只能擦除1000次...
我觉得Flash不是问题了。ram中跑程序必须有jlink或者ulink才行,isp只能在Flash中运行。

stm32 怎么样把部分中断处理函数放入ram中 keil
有个比较笨的办法,先确定函数在flash中的位置和size ,然后在ram空间中定义一片相同size的区域,记下起始地址,然后在启动的时候写一段程序吧flash中的数据写入到ram中,然后在程序中用函数指针调用ram中函数的地址(还要记得+1,thumb态),这样就应该能实现函数在ram中运行了。

关于stm32 程序下载下载与运行的问题
ISP 是一种在线下载程序的方式,下载的目的地是FLASH中,但是用ISP是从用户区开始的内存地址下载的比如说 0X80000--0X800020是用来存放用户的ISP引导程序的,当你复位并且启动ISP以后程序代码(一般是Bin)文件将会按照指定的地址下载到0x800020以后的区域。用FLASH启动程或者是从RAM区启动程序是相对的,...

stm32中的程序是在RAM里还是flash里执行
SRAM Embedded SRAM is selected as boot space 它有两个引脚来控制启动方式 一般都用第一种 选择flash启动 我们一般都是下载到flash 中的 用JLINK在线仿真时 是下载到SRAM中的 但是也不需要改启动方式 SRAM中掉电程序就会消失 而flash是属于ROM类型的存储器 掉电不会丢失 ...

相似回答