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

migration Keil - Tasking

With the Keil Linker Directive
SECTIONS( VAR%FDATA (addr1) [addr2] )
you may specify a execution address (addr1) and a storage address (addr2) for a section.
This may be used to create FLASH programming routines that execute from RAM but are stored in FLASH.
There is the Tasking Linker Directive
ADDRESSES( SECTIONS( VAR_FB(adresse) ))
But here, I think, you can not differ between a execution and a storege address.
Who can help me???

Parents
  • I didn't even know that was a feature. Seems convenient.

    The idea is to locate the code at its proper execution address. This is a job for the linker. If you then want to store the code at some other address, that's a job for the tool that creates your binary file -- in Keil's case, also the linker. But you could do post-link surgery on the binary/hex/whatever with a tool like SRecord.

    I assume you've also got the code that will move this special region from flash to its intended execution address in RAM?

    Why are you switching compilers?

Reply
  • I didn't even know that was a feature. Seems convenient.

    The idea is to locate the code at its proper execution address. This is a job for the linker. If you then want to store the code at some other address, that's a job for the tool that creates your binary file -- in Keil's case, also the linker. But you could do post-link surgery on the binary/hex/whatever with a tool like SRecord.

    I assume you've also got the code that will move this special region from flash to its intended execution address in RAM?

    Why are you switching compilers?

Children
No data