一.程序烧写进RAM中调试
1.好处:避免上万次的擦写flash会造成损害(重点在上万次),速度比flash会快一点.
2.占用RAM存储空间,本来应该存储到flash中的程序代码放到了RAM中.RAM的地址需要重新分配.修改仿真器下载位置和中断向量地址
/* Configure the NVIC Preemption Priority Bits */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
#ifdef VECT_TAB_RAM
NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else
NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x20000);
#endif
3.在RAM调试的时候,有些硬件寄存器是不好用的.
4.跟在flash中调试程序还是有差别的.在RAM调试成功不代表在flash中能用,反过来一样.
二.硬件SPI通信中,mcu作为主机时,使用硬件NSS引脚,并不会在发送时自动打开,发送完毕时自动关闭.需要手动配置寄存器-使能或禁使能.