程序為什么加載到內存中


程序為什么加載到內存中

1.把代碼從存儲器拷貝到RAM中,變成了bootloader的工作之一。

2.一般的,嵌入式系統的存儲器以Flash應用最廣,Flash分為兩種:norFlash和nandFlash,打個不恰當的比方,norFlash相當於ROM,程序可以直接在其上運行,nandFlash相當於硬盤,只負責存儲程序。

3.一般的bootloader代碼都存儲在norFlash中,上電后芯片可直接讀取其上的代碼來運行。

4.硬盤、光驅、軟盤等外存設備,由於接口的不同,CPU是不能直接訪問的,而CPU 能訪問的只有和它共享地址、數據總線的內存因此,程序無法在硬盤、光驅、軟盤等外存設備上直接運行,必須讀入內存運行,這就是程序加載的原因。也是BOOTLOAD 存在的原因。 BIOS等都是norFlash,程序可以直接在上面運行。

5.內存與外存的區別 ROM 、 norflash 、nandflash 的區別主要是接口、存儲器單元組織的不同: 程序ROM、norflash 是 總線型可以隨機按字節讀取,容量小;nandflash 是特殊接口,只能頁讀,容量大 程序ROM 是字節讀寫單位;norflash 、nandflash 是FLASH 有頁、塊的概念特別是擦除,必須塊擦除。

6.硬盤更是有扇區、簇的概念,便於文件管理,但是也必須有專門的控制器管理 這就是為什么程序都是由 硬盤、光盤等外存讀入內存再執行的原因。

知識點

1.馮諾依曼結構:代碼和數據存放在一起
哈弗結構:代碼和數據分開存放。代碼存儲在flash中,數據存儲在RAM中
2.單片機使用的是靜態內存,大部分單片機中常量存放在flash中(代碼段),變量存放在DRAM中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM