EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——浅谈IAR环境下Flash调试和RAM调试的区别 其实关于Flash调试和RAM调试的概念,我也是从调试Kinetis的时候才开始接触,最初只是随便用用,没有深究,之后用的多了才开始深入研究两者之间的区别,发现里面大有文章可作,翻看了网上的一些资料,大多是授人以鱼的文章,所以觉着有必要在这里谈谈自己的一点看法,做个笔记: ; S0 i4 z3 m9 L5 }* n8 H& w: y
2 ]0 C' o4 S9 M+ r# `1 H2 t 上图为在IAR环境下的Flash调试界面和RAM调试界面
7 d) w( K/ Y6 n6 V6 B3 g 首先说说什么是Flash调试和RAM调试,Flash调试就是通常意义下的普通调试,即将编译链接之后的code下载到单片机的ROM区,数据放到RAM区,然后进行调试;而RAM调试则是将数据放到RAM区的同时再从RAM区中额外开辟出一段空间存放可执行code,这样就是code和数据同时运行在RAM区里面。 g+ W6 o% C5 |! n. O
至于为什么要刻意区分出这两种调试方式,其实在低端mcu领域是没有RAM调试这个概念的,其中很大一部分原因是它没有足够大的RAM空间在存放编译后code代码的同时仍然可以拿出额外的空间作为数据RAM的,而在高端MCU领域中,比如ARM,动辄几十KB的RAM是很常见的,在不运行超大工程的情况下是完全可以拿出一部分空间运行代码的,所以也就出现了RAM调试这种方法了。 & O( h0 a1 S: @ b2 b2 ^' C
" b5 {9 A( `, u$ f% O- C
. k- H& S1 Q" i- Z% [. D
|