你要知道的是FLASH芯片是有2中的,NOR和NAND,如果是NAND的话就只能通过整个扇区的读取,将其中的数据加载到RAM中去执行,这有些类似PC读取外储存器一样,以扇区为单位来读,而不能直接在外储存器内执行,所以其不存在地址!如果是PC可以调用BIOS中断来实现,也可以通过端口来访问,而NOR就不同了,NOR和RAM一样被分配地址,数据可以按照字节为单位来读取,如果是程序代码,不用加载到RAM中而直接NOR中就可以执行,而我们平常用的U盘通常来讲都是NAND的,只是用来储存数据的,即使你直接在U盘中运行也是象运行硬盘中的数据一样,先读取到RAM中,再去执行的,那为什么我们用NAND而不是NOR呢?因为NAND的写速度要比NOR快很多.
你提到的数据压缩与解压运行:这种代码无论是保存在NOR还是NAND新片中都要进行解压操作才能运行,除非你的处理器可以运行压缩代码.也就是解压到了RAM中再去运行的
明白否?话说的很白了. |