應(yīng)用場(chǎng)景:在項(xiàng)目開(kāi)發(fā)過(guò)程中,可能需要對(duì)于內(nèi)存進(jìn)行指定。可能需要存放只讀的數(shù)據(jù)或者可執(zhí)行的數(shù)據(jù)。但是無(wú)法判斷這部分的內(nèi)存空間是否具有對(duì)應(yīng)的權(quán)限。這個(gè)情況下面可以在Debug模式下,通過(guò)Memory Map查看內(nèi)存映射的權(quán)限勤快。
1、Memory Map通過(guò)Debug->Memory Map打開(kāi)
2、在Memory Map窗口中,包含了以下幾個(gè)部分。
(1) Current Mapped:顯示當(dāng)前映射的內(nèi)存范圍。這些地址對(duì)應(yīng)于μVision IDE將邏輯段映 射到物理段的方式。
例如,0x00xxxx表示DATA、IDATA或EDATA空間中的地址;0x01xxxx表示XDATA空間中的地址,0xFFxxxx表示CODE空間中的地址。
(2) Kill Selected Range:從列表中移除所選的映射范圍
(3) Map Range:填寫需要設(shè)置的內(nèi)存范圍。
內(nèi)存范圍可以包括起始地址和結(jié)束地址,在這種情況下,范圍內(nèi)的每個(gè)字節(jié)都按照Read、Write、Execute復(fù)選框中指定的方式映射。該方框可以只包括一個(gè)字節(jié)地址,在這種情況下,字節(jié)映射為復(fù)選框所指定的。
(4) ReadWriteExecute: 可以讀取寫入執(zhí)行的內(nèi)存范圍。
(5) Map Range:將指定的內(nèi)存范圍添加到列表中。