This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

code location (part c8051f120.h)

I'm trying to use the updater_F02x.c file and project to load my firmware and reset to run it. But the part I'm using is c8051f120.h. I understand the 02 code should work with the 120.

I understand to place the code at a specific memory address you use these parameters during link:

CODE(1000H, ?PR?MAIN?UPDATER_F02X(1000H))

I want to place this updater code very high
in memory, about 4k below 128k, which would be bank 3, addr EFFF. How do I place it at bank 3, addr EFFF. Do I simply forget about the banks and specify the address as if there were no banks, as so?

CODE(1F000H, ?PR?MAIN?UPDATER_F02X(1F000H))

I'm new at this kind of thing and would appreciate a response that takes this into consideration.

BTW, I am using the Cygnal IDE and it crashes like very 10 minutes. Very annoying!

Parents
  • The classic 8051 archtiecture (used in the Cygnal parts) is limited to 64KB address space. The address extension for the Cygnal
    devices is done with code banking. See also: http://www.keil.com/support/docs/2441.htm

    Therefore you need to use the LX51 SEGEMNTS directive with the Bx: address prefix or the BL51 directive BANK0 .. BANK31 to locate specific segments into code banks. More information can be found in the Ax51 Assembler/Utilities User's Guide (A51.PDF), Chapter 9.

Reply
  • The classic 8051 archtiecture (used in the Cygnal parts) is limited to 64KB address space. The address extension for the Cygnal
    devices is done with code banking. See also: http://www.keil.com/support/docs/2441.htm

    Therefore you need to use the LX51 SEGEMNTS directive with the Bx: address prefix or the BL51 directive BANK0 .. BANK31 to locate specific segments into code banks. More information can be found in the Ax51 Assembler/Utilities User's Guide (A51.PDF), Chapter 9.

Children