Заюзав в проге __low_level_init (LPC17xx) заметил, что в начале функции стоит PUSH {R7, LR}, а в конце POP {R1, PC}. Проверял на IAR ARM 6.30 и на 5.40. Может быть это и не важно, т.к. на старте эти регистры ещё не прописывались, но всё-равно непонятно это "кривизна" или нет. Больше беспокоит хитрая задумка

И ещё вопрос не в тему. Подскажите пожалуйста как в Си присвоить переменной начало или конец какого-либо сегмента?
Что-то вроде tmp = __sfb("ISTACK") не работает, т.к. ругается, что сегмент не определён. Хотя в линкере он и все другие, с которыми пробовал - есть. Проц 8051.