[an error occurred while processing this directive]
|
1. Видимо так написан алгоритм, компилятор здесь не причём. Если уж необходимы общие переменные для разных задач, используйте семафоры. Локальные переменные разных задач компилятор не оверлеет.
2. Во первых (и это обязательно) исключить эту процедуру из процесса оверлея, чтобы компилятор все локальные переменные этой процедуры поместил отдельно (не помещал в оверлейную память). Во вторых опять-же использовать семафоры. Реентрантность здесь не обязательна.
3. Первый вариант не понял. Второй - нормально если допускаются потери сообщений.
4. Долгим имеет право быть редкое прерывание :) Тогда внутри него нужно разрешать другие прерывания, ну и проследить за тем чтобы стека хватило.
5. Странно. Вроде SPI синхронный протокол? И как я понял на вашей стороне мастер. Клок можно теоретически затормозить на сколь угодно долго. Никаких потерь быть не должно.