[ECOS] ROM and hardware vectors for ARM.

Mark Salter msalter@redhat.com
Fri Oct 18 05:00:00 GMT 2002


>>> What can we do if we do not have the possibility of remapping
> (swapping
>>> ROM/RAM addresses)?

>> Why can't you?  What's your processor (core)?

> 	The CPU we are using is the S3C44B0X from samsung. (AMR7TDMI) It
> does not have this functionality as a feature. It has internal RAM located
> from address 0x10000000 so this is very far from the vectors. We could make
> changes to the hardware, so that some external pins could switch CS0,CS1
> pins using some external logic. Is this the way a normal eCos hardware
> platform must be designed ? 

The usual method is to use the MMU to remap ROM and RAM so that RAM
is at virtual address zero. Since the ARM7TDMI has no MMU, this won't
work. In such cases, I have seen external logic used to swap ROM and
RAM. Having RAM at 0x10000000 prevents using the normal vector mechnism
because the ARM ISA cannot support getting from the vectors to RAM in
a single insn. To do so, you would have to jump from the vectors to
another part of ROM and from there access vectors in RAM with multiple
insns. This can be done, but the ARM HAL has some assumptions that
vectors are in low memory, so it would take some effort to find those
assumptions and fix them.

--Mark

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list