Цитата(scifi @ Jul 17 2016, 13:17)

Гораздо интереснее вопрос "а каким способом убедиться, что функция не вызывает ничего из того, что расположено не в RAM?"

IAR, когда ему указываешь __ramfunc и, если функция лезет куда-то вне ОЗУ, выдаёт варнинг.
А иначе в общем случае - никак, потому что никто не мешает компилятору при оптимизации, вынести часть функции в отдельную функцию (так как в соседней функции есть подобный участок). И компилятор активно использует константы, адресумые через PC, располагая их рядом с телом функции, а может быть и не рядом.
Так что пользоваться надо штатными средствами, а не городить колхоз.