Собственно, мешается это долбанное значение для стек поинтера. Если разместить загрузчик в начале то придется его целиком стирать для того чтобы переписать это значение вместе с вектором ресета, а это опасно. Если размещать в конце памяти - тратиться 128К под сам загрузчик и еще 128К под константы которые тоже всячески могут переписываться. Это тоже никуда не годится. Если писать загрузчик во второй сектор, константы в третий - непонятно каким образом должен выглядеть скрипт для линкера для загружаемой программы (IAR).
Я уже башку сломал, и не только себе, в попытках придумать как правильно. Кто реализовывал уже - поделитесь идеями пжалста.
|