Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


Memory remapping question on ARM7TDMI

Posted by Nobody/Anonymous on October 27, 2006

I am working on a FreeRTOS port on an old Cirrus Logic EP7212-based board I had lying around. The issue I am having is that the flash is mapped to 0x00000000 and that's where the vectors lie. There is a bootloader in flash that allows one to load program in RAM starting at 0xc0000000. The problem is that when i enable a timer tick, the cpu is presumably vectoring to the vectors in flash rather than the ones in memory. My question is, would i need to enable MMU and remap the FreeRTOS vectors to 0x0 ??? That seems to be the only way to me but i wanted to ask more experienced people out there.... TIA

RE: Memory remapping question on ARM7TDMI

Posted by Nobody/Anonymous on October 27, 2006
Dont know anything about EP7212 - but normally you can place the vectors section any place you want. The question is though - when you are running from RAM are the vectors remapped by the processor to 0c0000000? Or are they still loaded from flash at 0x00000000?

Take a look at your linker script to see how it places the vector table. You might want to have two copies even - a reset copy that contains the addresses of the boot loader etc, and an application copy used once the boot loader has completed. This depends on how the processor itself knows where to look for the vectors. I think some processors such as the Stellaris and SAM7 have registers on the processor itself to remap.

RE: Memory remapping question on ARM7TDMI

Posted by acehigh1971 on October 27, 2006
The exception vector in the ARM7 is always at 0x00000000.
The particular chip must provide a way to change what is present at that address (eg: sram, flash, external bus...)

When you enable the interrupt, the external interrupt controller rises and irq or fiq exception, and arm reads the exception at address 0x14 (more or less..) or 0x1C, so you must provide a valid branch to an appropriate handler, wherever it resides.

[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS v10.2.0 is available for immediate download. MIT licensed, and including RISC-V and ARMv8-M (Cortex-M33) demos.

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


FreeRTOS and other embedded software careers at AWS.

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Cadence Tensilica Cortes

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers





STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner