

* Il utilise un processeur vectoriel flottant VFPv3-D16 (fr) Il suit la technologie ARM Cortex-A8 dans la 1re génération et précède la 3e génération, ou il sera remplacé par le ARM Cortex-A15 MPCore, l'ARM Cortex-A7 MPCore étant le remplaçant du Cortex-A5, et l'ARM Cortex-A12 MPCore venant se placer en intermédiaire puissance/consommation dans cette génération. L'architecture est prévue pour comporter jusqu'à 4 cœurs simultanés. Il possède un jeu d'instructions ARMv7-A avec un pipeline superscalaire permettant l'exécution out-of-order. Il fait partie, avec l'ARM Cortex-A5 (version très faible consommation), de la 2e génération de ARM Cortex-A. Le Cortex-A9 MPCore est un microprocesseur 32-bit conçu par la société ARM, pour un fonctionnement multicœur et utilisé dans différents SoC basés sur l'architecture ARM.Laŭ vortoj de James Bruce la procesoro devas uzi nur je 10-20% pli multe da energio ol unukerna procesoro, tamen esti multe pli komputopova. La prozesoro estas plurkerna kaj produktata laŭ 45-nanometra teknologio. Cortex-A9 estas procesoro fabrikata de firmao ARM.The ARM Cortex-A9 MPCore is a 32-bit multi-core processor that provides up to 4 cache-coherent cores, each implementing the ARM v7 architecture instruction set.Procesory ARM Cortex-A9 MPCore se vyskytují ve výpočetní technice mnoha značek, například Apple, Freescale Semiconductor, NVIDIA (řada Nvidia Tegra), Samsung, Sony, Texas Instruments, Xilinx. Mezi technologie, které obsahuje, patří (přímé provádění bajtkódu Javy).
#Cache coherence cortex a9 pro#
Taktovací kmitočet má 800 až 2000 MHz, velikost keše L1 je 32 kiB pro instrukce, 32 kiB pro data, velikost keše L2 je 128 kiB až 8MB. Jedná se o vícejádrový procesor, který může mít až čtyři jádra s. ARM Cortex-A9 MPCore je 32bitový procesor architektury ARM implementující instrukční sadu.Not sure what else to try! I need to enable the L1 cache for performance reasons.

It looked like this may be possible in the FreeRTOS int handler, as interrupts are enabled just before the OEI register is written, but swapping the int enable and int clear didn’t solve the problem. I believe this could potentially cause a 1023, if interrupts are re-enabled in the handler before the interrupt source has been cleared, and the PMR hasn’t been updated with the value of the current int priority, so the same interrupt would be triggered again (interrupting itself, thus the 1023). I noticed that the FreeRTOS Cortex A9 int handler doesn’t write the Priority Mask Register (PMR), and so doesn’t support nested interrupts. This led me to suspect a timing issue in the FreeRTOS Cortex A9 interrupt handler (maybe writing the IAR and re-enabling interrupts before the write had time to clear the int) but I can’t find anything suspect in there. Using WriteThrough, NoWriteAllocate (slower) and the problem goes away.
#Cache coherence cortex a9 code#
The problem only occurs when the MMU is flagging the DDR3 RAM area (from which the code is running) as WriteBack, WriteAllocate (the ‘fastest’ setting). Sometimes I get the expected interrupts (timer, ethernet packet rx etc) followed immediately by an int 1023, sometimes I only get an int 1023 (and don’t receive the interrupt I was expecting). Until I enable the L1 cache, at which point I start getting interrupt 1023 being fired (‘spurious interrupt’ according to ARM docs). I am using FreeRTOS 8.2.1 on a TI AM4379 using the Cortex A9 port.Īll is well, I have 6 tasks running, interrupts are working…
