S12的物理RAM和ROM是否可以互换?即某固定内存地址段,是...

2020-02-11 09:03发布

自己认为,是可以的,因为自己这样做过,自己曾做过如下修改:
        修改前:
        /* non-paged RAM */
              RAM           = READ_WRITE  DATA_NEAR            0x2000 TO   0x3FFF;
        /* non-banked FLASH */
              ROM_4000      = READ_ONLY   DATA_NEAR IBCC_NEAR  0x4000 TO   0x7FFF;
        修改后:
        /* non-paged RAM */
              RAM           = READ_WRITE  DATA_NEAR            0x2000 TO   0x4FFF; //default 8k ,add 4k,now is 12k
        /* non-banked FLASH */
              ROM_4000      = READ_ONLY   DATA_NEAR IBCC_NEAR  0x5000 TO   0x7FFF; //default 16k ,delete 4k ,now is 12k
修改的原因是因为RAM不够用了,因此将RAM由8K提高到12K,将ROM_4000由16K减小到12K,
这样修改后,程序也照样运行,没有任何异常,不知道这样长时间有没有问题?
按自己的理解,单片机的ROM可以当做RAM来用,但是RAM不能当做ROM来用,单片机的RAM地址段掉电后,数据是否丢失,也不一定,

由此引起一个问题,就是RAM,EEPROM,FLASH,三者有什么区别?某固定内存地址段是否可以指定为三者中的任意一类型?个人觉得应该可以。
电脑的硬盘(包括机械硬盘和固态硬盘)和内存条之间的区别?
个人理解,其区别是内存相比机械硬盘或固态硬盘,读写速度更快,如果固态硬盘的读写速度和内存条相同,那么后续是否就不用内存条了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。