1.既然单片机上电后把rom程序加载到ram中,假设这时把rom拔了,程序是否还能正常运行?
2.程序运行时,代码段,数据段,bss段分别是在ROM中还是RAM中。
1,不能,不是完全加载,只是把数据段放到ram里了。程序段还在rom里。
2,程序段在rom里,数据段在ram里,数据段包括bss段,
常规上ROM是用来存储固化程序的,RAM是用来存放数据的。由于FLASH ROM比普通的ROM读写速度快,擦写方便,一般用来存储用户程序和需要永久保存的数据。譬如说,现在家用的电子式电度表,它的内核是一款单片机,该单片机的程序就是存放在ROM里的。电度表在工作过程中,是要运算数据的,要采集电压和电流,并根据电压和电流计算出电度来。电压和电流时一个适时的数据,用户不关心,它只是用来计算电度用,计算完后该次采集的数据就用完了,然后再采集下一次,因此这些值就没必要永久存储,就把它放在RAM里边。然而计算完的电度,是需要永久保存的,单片机会定时或者在停电的瞬间将电度数存入到FLASH里。