stm32內(nèi)存結(jié)構(gòu)
這個(gè)是板載的SRAM,屬于外部的SRAM,起始地址是0x68000000,為什么這個(gè)地址我也沒(méi)懂。
這個(gè)是核內(nèi)部的SRAM,分為兩個(gè)部分:普通內(nèi)存,起始地址0x20000000,共128KB,這部分的內(nèi)存任何外設(shè)都可以訪(fǎng)問(wèn),CCM內(nèi)存,起始地址是0x10000000,共64KB,但是只能由CPU訪(fǎng)問(wèn)。
在內(nèi)存管理的實(shí)驗(yàn)中,我們主要是用了malloc和free兩個(gè)函數(shù)來(lái)進(jìn)行內(nèi)存的申請(qǐng)和釋放。在使用了malloc申請(qǐng)內(nèi)存之后,返回的值是在申請(qǐng)之后的首地址。同時(shí),在申請(qǐng)了地址之后,并且將指針指向該地址時(shí),使用過(guò)一次之后就要將該申請(qǐng)free掉,不然會(huì)造成所謂的“內(nèi)存泄露”。時(shí)間長(zhǎng)了會(huì)影響內(nèi)存的使用。
我使用的是原子哥的程序,關(guān)于內(nèi)存的最終定義原子哥使用了3個(gè)數(shù)組,來(lái)分別表示起始地址和大小,看的頭暈,不過(guò)一步一步的往回看還是能看得懂的。