Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Real time embedded FreeRTOS mailing list 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT Training


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 ]    [ Sitemap ]    [ ]

Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.

Free TCP/IP and file system demos for the RTOS

Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

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

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

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

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists