Ich versuche das Speicherzuordnungsschema 1 im freeRTOS zu verstehen.FreeRTOS-Speicherverwaltungsschema 1 - Hilfe zum Verständnis der Speicherausrichtung anfordern
In dieser Funktion wird der folgende Code verwendet.
static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ];
static uint8_t *pucAlignedHeap = NULL;
if(pucAlignedHeap == NULL)
{
/* Ensure the heap starts on a correctly aligned boundary. */
pucAlignedHeap = (uint8_t *) (((portPOINTER_SIZE_TYPE) &ucHeap[ portBYTE_ALIGNMENT ]) & (~((portPOINTER_SIZE_TYPE) portBYTE_ALIGNMENT_MASK)));
}
Ich arbeite am Arm Kortex m3 MCU. Also
portPOINTER_SIZE_TYPE defined as uint32_t
portBYTE_ALIGNMENT defined as 8
portBYTE_ALIGNMENT_MASK defined as 0x0007
Warum können wir nicht nur pucAlignedHeap = & ucHeap; ?
Danke für Ihre Antworten.