Цитата
А как же периферия ?
Если умеешь разделять ресурсы - все остальное - вообще никаких проблем.
У меня нет TCP, но есть USB (CDC и mass storage). Заодно запись воспроизведение звука, touchscreen, куча всякой разной памяти, клавиатура, манипулятор Морзе, радиоканал с кучей выводов, RS232.
Все работает параллельно и ОДНОВРЕМЕННО. Именно все это. Всегда идет запись и воспроизведение звука, отдается в USB и RS232, заодно параллельно записывается на SD card (типа крутейший лог для радиостанции).
Использую пять прерываний. 8 кГц от таймера для звука, 3.9 мс от RTC для переключателя задач, и одно для работы с Rotary Encoder (волкодер вроде как по нашему), UART, USB.
Никаких затруднений в компоновке процедур и ресурсов не испытываю. Пишу прямо. Без затей. Единственное правило - если задаче нечего делать - она должна отдавать управление. Иначе тормоза (72 Мгц проц). А графика насыщенная - сглаживание не только шрифтов но и картинок всяких.
Я пробовал думать как применить FreeRTOS не трогая ничего. И не придумал. А этот вариант (свой) легко перенес с атмеловского ARM9 на филипс ARM7. Причем поменял только одну команду. Джампа с сохранением LR в ARM7 не оказалось. И все.
Да, регистры у меня сохраняются не так оптимально, как могли бы. Сишную часть наверняка можно подсократить (не умею я на Си программировать). Но тем не менее написание этого заняло у малоподготовленного меня не больше 3 дней. Это реальная цифра. Из меня программист очень плохой (Именно поэтому разобраться с текстом FreeRTOS для меня оказалось трудной задачей - никак учебника по Сям не сыщу бумажного, а монитор у меня 15 дюймовый).