2、Project ->Options ->Linker, 修改链接文件为RAM方式,比如修改为 $PROJ_DIR$\stm32f2xx_sram.icf;陵伍
3、Project ->Options ->Debugger ->download 选项卡,把use falsh loader前面的勾去掉;
4、把板子上的BOOT0和BOOT1跳线到RAM启动方式(全高),网上有人说这个不影响调试,根据在GCC下的经验,这个貌似影响会SP指针,有的启动文件开始没有对SP指针初始化,而是自动从0地址读取,为了保险起见还是跳线到RAM方尺哗或式。
所以把代码从存储器拷贝到RAM中,变告运成了bootloader的工作之一。一般的,嵌入式系统的存储器以Flash应用最广敬友差,Flash分为两种:norFlash和nandFlash,打个不恰当的比方,norFlash相当于ROM,程序可以直接在其上运行,nandFlash相亮皮当于硬盘Flash调试就是通常意义下的普通调试,即将编译链接之后的code下载到单片机的ROM区,数据放到RAM区,然后进行调试;而RAM调试则是将数据放到RAM区的同时再从RAM区中额外开辟出一段空间存放可执行code,这样就是code和数据同时运行在RAM区里面。
相比于Flash调试,RAM调试则与生俱来的带来两个最大的先天优森橡势,一个是RAM的可擦写的次数理论上是无限的,在调试代码的期间往往是需要不断下载更新的,而Flash的擦写次数是有限的,因此在调试期间可以选择RAM调试;
另一个方面,盯扰在RAM区的代码执行速率和效率远高凯春旦于需要不断地读写Flash区代码的,这点毋庸置疑,所以在当今智能手机比拼硬件的时代,选择一款强大的CPU是应该的,但是要想让系统运行的更流畅,足够大的机载RAM是必须的。
当然RAM调试的缺点是掉电丢失,在RAM区运行的代码在掉电的情况下是不会被保存的,下次上电单片机仍然会执行Flash区内部的老的代码,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)