在学习STM32的时候,由于烧FLASH的所造成的时间会比较慢,而在SRAM中调试的时间会比FLASH快很多,再加上FLASH的时候会经常擦除芯片,会对芯片的寿命造成一定的影响,

其实我本人觉得在学习STM32的路途中,没有必要也大可不必使用烧FLASH的路径来对芯片进行实验性的学习,但是在SRAM中调试所造成的影响就是断电的时候数据会丢失。

个人以STM32ZET6为例子,因为我的板子的芯片是ZET6的,不过设置除了地址空间不一样之外、其他都基本雷同。

首先,STM32的启动模式有三种,

在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。

从这张表格可以看出来,当启动模式为SRAM时,BOOT[1:0]=1:1;

请注意:从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。请记住这个0x2000 0000,因为待会我们要用到。

以上不失为一种方法,接下来我要从另外一个角度来设置SRAM:

打开keil4,点击图标,大家可以看到Target里的界面,请大家注意红色区域,这里是从0x2000 0000开始的,看到这大家明白我为什么要让大家记住0x2000 0000吧,由于我的ZET6是64K,也就是0x100000,在这里我把它分区了,也就是从0x2000 0000到0xB000   0x2000 B000到0x5000;(大家注意:B和5的数值可以任意,但是其和不能超过F,这决定了你所分区的大小);

点击C/C++  添加VECT_TAB_RAM 如图

接下来,添加脚本文件,此脚本文件的作用是什么,目前我还不清楚,但是我觉得应该是改变其中断向量什么的吧,点击Debug,请看红色区域部分,点击Edit添加,

其代码如下:

 /******************************************************************************/
/* RAM.INI: RAM Initialization File */
/******************************************************************************/
// <<< Use Configuration Wizard in Context Menu >>> //
/******************************************************************************/
/* This file is part of the uVision/ARM development tools. */
/* Copyright (c) 2005-2007 Keil Software. 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
} //LOAD ARM\Blinky.axf INCREMENTAL // Download Setup(); // Setup for Running
g, main

此代码也可以在百度上查找,其路径在你指定的main.c里的同个文件夹,以我的为例(正点原子的历程模版)

点击Setting 如图 红色区域要打钩

好了,接下来点击Utilities,可以看到红色区域内的是要打钩的

点击Setting可以看到Flash Download请看图:有三处红色区域要进行更改

这里的空间地址跟最初设置的一样,不要搞错了,否则会有预想不到的错误,就像小怪兽一样破坏你前进的道路,不过有奥特曼,你别怕哈,、、

好了,到这里,大家就可以享受什么是快了、、、

小弟不才、、也是菜鸟人物,若有讲错的地方,请赐教、、要向抓腐败那样对我提出建议和改进的地方、、在此表示衷心的感谢,希望能帮到、、

STM32之SRAM调试的更多相关文章

  1. Segger RTT : Real Time Terminal SRAM 调试解决方法

    http://segger.com/jlink-real-time-terminal.html Real Time Terminal SEGGER's Real Time Terminal (RTT) ...

  2. Stm32 SWD 下载 调试配置

    找到一篇比较好的 关于stm32  SWD模式 下载 调试 配置文章 整理如下:       我们比较常用的是Jlink下载器 ,这种下载器有一个缺点就是使用的Jtag 20PIN接口,太多的PIN会 ...

  3. STM32的SWD调试进不了main函数

    玩了那么久STM32,还没有用SWD调试过程序(一直都是用printf调试程序),觉得有些落后了,于是开始搞起了SWD调试. 很快通过查阅资料,知道了keil里面的配置和ST-Link与STM32的连 ...

  4. STM32开发/烧录/调试环境搭建 基于:Win10+STM32Cube+openocd+cmsis-dap(dap-link)

    dap-link是个不错的STM32下载/调试工具,然而STM32Cube并没有直接支持它,只能通过openocd的方式间接支持. 网络上虽然已经有了其他人的教程,不过基本都是基于linux或者msy ...

  5. STM32 使用st-link调试遇到写保护 Flash Timeout 问题的解决思路

    本文介绍了如何解决STM32芯片Flash写保护导致无法下载程序,无法在线调试的问题:如果您遇到相同的问题,希望本文可以带来一些帮助: 如果本文帮到了您,请帮忙点个赞

  6. 把 STM32 bluepill 变成调试器(daplink)

    在调一块 ARM M0 内核的板子,使用官方的 DEMO 板子来调,板子上集成了 daplink 调试器. 为了方便使用,我把目标板跟 daplink 剪开了,然后用杜邦线把 daplink 跟目标板 ...

  7. STM32 Keil仿真调试

    引用:http://blog.sina.com.cn/s/blog_3c63d2bd0102vt9a.html 问题描述:使用MDK进行软件设计时没有使用ST官方的模板而是手动建立的工程,使用ST官方 ...

  8. 第49章 在SRAM中调试代码—零死角玩转STM32-F429系列

    第49章     在SRAM中调试代码 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fir ...

  9. 在SRAM、FLASH中调试代码的配置方法(附详细步骤)

    因为STM32的FLASH擦写次数有限(大概为1万次),所以为了延长FLASH的使用时间,我们平时调试时可以选择在SRAM中进行硬件调试.除此之外,SRAM 存储器的写入速度比在内部 FLASH 中要 ...

随机推荐

  1. [CentOs7]搭建ftp服务器

    摘要 vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点.vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux. ...

  2. 【转】 解读EOF

    解读EOF 标签: fplinuxc语言filestream 2012-01-31 22:05 439人阅读 评论(0) 收藏 举报  分类: C.C++_程序设计(20)  我学习C语言的时候,遇到 ...

  3. js中join和split的用法

  4. NOSDK--SDK一键打包及统一接入的实现(前言)

    前言 一,一键打包的实现 1.1 shell脚本执行流程介绍 1.2 自动刷新mk文件的脚本介绍 1.3 编译及拷贝资源的脚本介绍 1.4 打包及签名的脚本介绍 1.5 mac下的脚本环境配置及脚本的 ...

  5. Navigation Bar options for Android (based on photosomething project)

    1, Tab控件即标签页,可以在一页中切换显示n页内容,要使用此效果,需要用到TabHost和Tabwidget类.(过时了?) Tab控件具有两种实现过程,一是在同一个Activity中切换显示不同 ...

  6. phpcms专题路径修改

    两个文件改三处就可以了,既可以后台点击专题列表链接问题,也可以解决生成专题多一个“/”的问题. 1.\phpcms\modules\special\classes\html.class.php大概第1 ...

  7. C和指针 第八章 习题

    8.5矩阵运算,A是一个x行,y列矩阵,B是y行z列矩阵,把A和B相乘,结果是另外一个x行z列矩阵,每个位置的值由下公式决定,编写函数: #include <stdio.h> void m ...

  8. error 502 in ngin php5-fpm

    unix:/var/run/php5-fpm.sock failed (11: Resource temporarily unavailable) http://stackoverflow.com/q ...

  9. 清理系统 cmd

    echo 正在清除系统垃圾文件,请稍等......del /f /s /q %systemdrive%*.tmpdel /f /s /q %systemdrive%*._mpdel /f /s /q ...

  10. Java四种线程池的使用

    Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...