在对需要频繁改动的代码的调试过程中,如果将代码放置到SRAM运行,能够节约很多时间,省去了擦除和写入Flash的时间。如果从功耗的角度考虑,将应用程序放在SRAM运行,每次系统上电通过bootloader程序将应用从Flash复制到SRAM,然后关闭Flash的电源,这样可以使系统的功耗更低。
在SRAM中调试代码,在IDE中添加断点时使用的是软件断点,也就是说断点的数量是不受限制的,而在Flash中调试时添加的断点必须是硬件断点,硬件断点的数量一般只有4~8个,同时添加的断点超过这个数量时就无法再添加了。
虽然Flash的擦写寿命一般都有10000次以上,在调试过程中不太可能因为擦写Flash到这个次数而导致失效,但也确实可以作为在SRAM中调试代码的理由。
当然,虽然在SRAM中调试和运行程序有很多好处,但是这只适合片内的SRAM,如果是外扩的Memory,速度比片内SRAM就要慢得多,而且功耗优势也就不存在了。另一方面,一般片内SRAM的容量比较有限,相比Flash要小很多,这也是不足的一个地方。