Keil Logo Arm Logo

Discussion Forum

Splitting code between eprom and flash/eeprom.

Next Thread | Thread List | Previous Thread Start a Thread | Settings

Details Message
Read-Only
Author
Lawrence Koepke
Posted
3-May-2001 03:44 GMT
Toolset
C51
New! Splitting code between eprom and flash/eeprom.
I need to have an internal bootloader in my Dallas 520 that can
reprogram my external flash, and contain functions the external
program can use, as these functions need to use ports P0 and
P2 (precluding there execution from external code space.
The programs are in C. I'm thinking of placing the external code
in a space starting around 0x1000, allowing the chip to access
both internal and external code space as needed.

I'm shy on assembly experience, but I figure I can use embedded
assembly as needed.

I downloaded the bootloader example, but it won't load in uVision2.

There are references to a jump table in the bootloader example,
but it's not clear what this is.

Also, how would this affect an ISR in the external code?
Can anybody help?

Thanks,
Larry Koepke.

Read-Only
Author
Andrew Neil
Posted
3-May-2001 12:27 GMT
Toolset
C51
New! RE: Splitting code between eprom and flash/eeprom.
Have you searched the Knowledge Base?

NB: That's the 'Search' link along the top of the page; the one on the left just searches Forum messages.
Read-Only
Author
Lawrence Koepke
Posted
3-May-2001 18:58 GMT
Toolset
C51
New! RE: Splitting code between eprom and flash/eeprom.
I have searched the knowledge base quite a bit. While there
are already two articles entitled "Splitting code between
eprom and flash/eeprom" (one for 51, one for 251), they
do not adequately cover the issue for me. They both refer
to "jump tables", yet there is no explanation of what, where
etc. these jump tables are (search for "jump table" fails),
and they reference an example
project for dScope, which will not load in uVision2.
Read-Only
Author
Andrew Neil
Posted
3-May-2001 19:52 GMT
Toolset
C51
New! RE: Splitting code between eprom and flash/eeprom.
A "jump table" is - surprise - a table of jumps!

The interrupt vector table is an example of a jump table: the interrupt number indexes into the table, and the result is the address of the handler for that interrupt.

In 'C', another example is an array of function pointers - but special precautions are needed for function pointers in Keil C51 (see the manual & knowledge base).

'C' compilers often implement switch statements as jump tables.

Next Thread | Thread List | Previous Thread Start a Thread | Settings

arm-logo-small

Keil logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.