Пока полз до компьютера, объяснение уже дал Сергей. Более развёрнуто:
Режим совместимости включает генерацию inline-функций-переходников в две стороны:
Со старых имён функций классов ОС на новые — чтобы пользовательский код мог продолжать вызывать, например,
.Wait()С новых имён задаваемых пользователем функций (хуки, тот же
raise_context_switch()) на старые — чтобы ОС увидела эти функции в старых текстах.
Благодаря переходникам работают и старые, и новые имена, можно потихоньку редактироввть текст и после каждого изменения все будет собираться.
В случае с
exec() добавлением inline-переходника не обойтись, нужно «честное имя» (адрес).
В итоге два варианта - ifdef-ить эти места в ОС либо пользователю отредактировать эти имена.
Решили остановиться на втором — этих
Exec() немного в каждом проекте и автору точно известно где их искать.
Где почитать — ну можно там же, в main.cpp, ссылку Вы тут сами дали:
Цитата
55 //---------------------------------------------------------------------------
56 // Sample target
57 // The sample is intended for following AVR microcontrollers:
58 // atmega48..atmega328
59 // atmega64, atmega128
60 // atmega640..atmega2561
61 // Some changes in register names may be needed for other AVRs.
62 //
63 // The sample is also intended to show how to use scmRTOS v3.xx oriented
64 // sources with scmRTOS v4.00
65 // 1. Add
66 // #include "scmRTOS_310_compat.h"
67 // into scmRTOS_CONFIG.h
68 // 2. Rename process functions from Exec() to exec()
69 //
Конечно, какой-нибуть мигратинг-гад.pdf не помешал бы...
Ну вот если бы к проекту присоединился кто-то, кто сам ничего в оси и не берется менять, но разбирается в ней (в том числе отслеживает обсуждения в рассылке) и выполняет функции «технического писателя» по таким вот пунктам...