Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/06/02 17:45
Read: times


 
#26822 - Locating Interrupts and JMP from INT/EXT
Hi,
I am working on an application that has 2 code base. First called the boot code, located in internal memory (start addr:0x00000), and second called the apps code located in external memory (start
addr:0x010000).

Processor: XAG49
Data Bus: 8-bit
Addr Bus: 20 bit
EA = 1
Compiler: Tasking

Processor always starts in internal mode. the bootloader checks the santity of the application code in external memory and if everthing Ok has to jump to the start of the application code.

I locate the interrupt vector as follows
BootCode: 0x00000
Apps Code: 0x10000

My questions
1. Both the code base will have their own startup. One way to jump to apps "main" is to locate it at some fixed address and then just do a FJMP to that address. Is there any other way to achieve the same effect without having the need to locate the apps "main" at a fixed location.

2. Since the Apps Code RESET VECTOR would be at 0x10000 location I think it should work if somehow I can retrive apps RESET VECOTR (PSW and ADDR) while executing in internal rom and do a RETI. This should force the program to start executing at apps "main". Question is HOW DO I RETRIEVE the RESET VECTOR across 64k boundary?

3. There will be 2 different interrupt vector table, one for each. Interrupt vector table has to have an offset of 16bits. That means the ISR routines have to be in Internal ROM. Else there has to be a JUMP
table in internal ROM that will redirect the interrupt, when code is executing from external ROM, whereas execute the interrupt when code is executing from internal ROM.
Has anyone ever written such JUMP tables?? Any ideas?

3. How the compiler has to be configured?
Ex:Currently For boot code Compiler defines only External DATA MEMORY but NO EXTERNAL CODE MEMORY. But for APP CODE Compiler settings defines EXTERNAL CODE MEMORY from 0x10000.

I need the flexibility to jump between internal and external memory as and when desired.

Any ideas as to how to do that and what configuration to use in COMPILER settings to achieve the above functionality???

Thanx & Regards,
Rohit


List of 5 messages in thread
TopicAuthorDate
Locating Interrupts and JMP from INT/EXT            01/01/70 00:00      
RE: Locating Interrupts and JMP from INT/EXT            01/01/70 00:00      
RE: Locating Interrupts and JMP from INT/EXT            01/01/70 00:00      
RE: Locating Interrupts and JMP from INT/EXT            01/01/70 00:00      
RE: Locating Interrupts and JMP from INT/EXT            01/01/70 00:00      

Back to Subject List