Цитата(ShiphT @ Dec 21 2004, 12:07)
Если используешь компилятор ИАР, то у него есть директива __ramfunc, подробно расписанная в документации и даже с маленьким примером. Нужно только будет настроить *.xcl файл, указав там диапазоны памяти будущих сегментов. c_startup сам перенесет код из флешь в озу (в указанный сегмент).
Только описаны эти ф-ии должны быть в другом файле чем тот (те), где они вызываются. Это связано с тем, что при описании такой функции и ее вызова в одном файле компилятор передает ей упрпавление коротким переходом (2Мб который), но, как правило, функция будет находиться намного дальше и линкер будет ругаться нехорошими словами.
А примерчиком не кинешь