Hello, I need to find the beginning of free code space to use for a flash filesystem. I did not see any compiler defined symbols in the M51 file to help. I can declare a large array in code space and use the _AT_ directive to place it high in memory but this adds considerably to emulator download time. Or I can periodically check the symbol table for the last used code, but this can be troublesome. I'm using the Cygnal C8051F023 if it matters. Any ideas? Thanks
OK, I was able to make BL51 linker do the job without too much pain. The CODE command allows wildcards, so you don't have to list every segment. So the following works: CODE (?PR*,?CO*,?C_*,?C?*,?PR?FILE_SYSTEM_START?MASTER)
So the following works: CODE (?PR*,?CO*,?C_*,?C?*,?PR?FILE_SYSTEM_START?MASTER) I am not arguing that it does not work, but I am saying that it is wrong that it does "?PR*" should include "?PR?FILE_SYSTEM_START?MASTER" so it would be in the first group. It is very uncomfortable when wildcards work different from the normal way Merry Christmas to all Erik
Yes, I understand what you are saying and I wondered if it would work for the same reason. Fortunately for me, the linker pulls explicitly stated sections from wildcard groups. Must have been a design decision made by the linker author.
When you have PK51, you can select the LX51 Linker/Locater under Options for Target - Device.