你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32之SRAM调试

[复制链接]
STMCU小助手 发布时间:2022-1-27 23:30
在学习STM32的时候,由于烧FLASH的所造成的时间会比较慢,而在SRAM中调试的时间会比FLASH快很多,再加上FLASH的时候会经常擦除芯片,会对芯片的寿命造成一定的影响,
其实我本人觉得在学习STM32的路途中,没有必要也大可不必使用烧FLASH的路径来对芯片进行实验性的学习,但是在SRAM中调试所造成的影响就是断电的时候数据会丢失。
   个人以STM32ZET6为例子,因为我的板子的芯片是ZET6的,不过设置除了地址空间不一样之外、其他都基本雷同。
   首先,STM32的启动模式有三种,
  在STM32F10xxx里,可以通过BOOT[1:0]引脚选择三种不同启动模式。
3 |6 [+ D; o6 H/ K( `2 L  \
131310051841502.png
1 l' w+ F3 [6 M6 B
从这张表格可以看出来,当启动模式为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,这决定了你所分区的大小);
# c9 `9 M+ l$ ?* i) O# H" p" f3 B# r
131322272787721.png
. x& q3 D7 a: ?6 y3 U
点击C/C++  添加VECT_TAB_RAM 如图

# P/ Q- }3 j7 z" I) `4 S$ n" c
181515452446033.png
" b4 f0 h- _  T
接下来,添加脚本文件,此脚本文件的作用是什么,目前我还不清楚,但是我觉得应该是改变其中断向量什么的吧,点击Debug,请看红色区域部分,点击Edit添加,
172300478537181.png

! o3 ]1 d7 |- e. k
其代码如下:
  1. /******************************************************************************/
    8 p1 u/ @7 }! c4 J
  2. /* RAM.INI: RAM Initialization File                                           */
    6 t* b: Z; A1 p
  3. /******************************************************************************/
    . u: V( W5 B$ |, p8 Z* @; b# Y1 D
  4. // <<< Use Configuration Wizard in Context Menu >>>                           //; c+ H: `8 ^7 N" x5 \5 d% f
  5. /******************************************************************************/
    : H" w( h7 G' {% M+ Z
  6. /* This file is part of the uVision/ARM development tools.                    */
    1 f, @/ z8 d9 ~& z
  7. /* Copyright (c) 2005-2007 Keil Software. All rights reserved.                */
    2 j% D1 X" y. B( l
  8. /* This software may only be used under the terms of a valid, current,        */
    2 O& f; s7 \$ L2 w4 n; T
  9. /* end user licence from KEIL for a compatible version of KEIL software       */$ h5 v" O# }5 ^2 p$ j% m" Q: f
  10. /* development tools. Nothing else gives you the right to use this software.  */
    - }6 L+ t9 p0 N* C' S
  11. /******************************************************************************/% r* ~6 F- \/ F$ A1 k0 @
  12. 6 N! O, x- V* M# C1 f% H  a
  13. FUNC void Setup (void) {
    ! C6 T" X; F8 \' X
  14.   SP = _RDWORD(0x20000000);          // Setup Stack Pointer# L: {2 u% C/ I6 V% Q
  15.   PC = _RDWORD(0x20000004);          // Setup Program Counter
    , F; Y; u8 a  {: _) S" A
  16. _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table
    ) X7 m4 X: Q1 _  Q9 I% \. O
  17. }
    2 K8 v/ j; t% F
  18. * y+ k, P( r0 @3 r% N( R5 j! ~
  19. //LOAD ARM\Blinky.axf INCREMENTAL      // Download
    " r/ K- c% g( @2 ^0 h$ Y* N2 h9 G
  20. 5 e" d% R8 _( G  `5 r2 P8 b/ R
  21. Setup();                             // Setup for Running* ^" s2 w& Q1 E) a1 a( p% N
  22. g, main
复制代码
& Y- u7 t( l3 s- R# b8 v/ T
此代码也可以在百度上查找,其路径在你指定的main.c里的同个文件夹,以我的为例(正点原子的历程模版)
131333486221901.png

0 c4 o. R. D0 j3 L* \$ q" p
点击Setting 如图 红色区域要打钩
172306500884785.png

3 }. d. a2 K0 g" L3 B% P' d8 b
好了,接下来点击Utilities,可以看到红色区域内的是要打钩的

4 F( L6 \( K9 S! ~" p- M
172302233073455.png
, G  ?1 Y# N$ T/ ~- b8 d6 \
点击Setting可以看到Flash Download请看图:有三处红色区域要进行更改
) I/ w0 {4 J* p3 z  |
131341470751531.png
! _* y, `9 @+ g5 i
这里的空间地址跟最初设置的一样,不要搞错了,否则会有预想不到的错误,就像小怪兽一样破坏你前进的道路,不过有奥特曼,你别怕哈,、、
好了,到这里,大家就可以享受什么是快了、、、
小弟不才、、也是菜鸟人物,若有讲错的地方,请赐教、、要向抓腐败那样对我提出建议和改进的地方、、在此表示衷心的感谢,希望能帮到、、
2 q8 U2 y8 Y+ k
赞 收藏 评论0 发布时间:2022-1-27 23:30

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版