Я хочу разработать программу для оценочной платы MCB1700. Клиентское программное обеспечение ПК считывает изображение с жесткого диска. Затем он отправляет изображение на оценочную плату MCB1700 через разъем (Ethernet). Сервер MCB1700 принимает изображения с ПК через Socket-соединение и отображает их на ЖК-дисплее.
Также сервер должен выполнять такие задачи:
- Сохранить картинку на USB-накопитель;
- Считывать картинку с USB-флешки и отправлять ее клиенту через разъем;
- Отправлять и получать информацию через CAN
- COM-логирование.
- и т.п.
Подключение к сокету может быть реализовано с помощью библиотек CMSIS и RL-ARM.
Но, насколько я понял, в обоих случаях программное обеспечение должно прослушивать входящее TCP-соединение и обрабатывать сетевые события в бесконечном цикле - все примеры Keil основаны на таком принципе.
Я всегда думал, что для встраиваемого программирования использовать бесконечные циклы - плохой способ. Более того, я читал такое интересное высказывание
«безусловно, можно создавать программы реального времени без ОСРВ (выполняя одну или несколько задач в цикле)»
http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm Итак, как я понял, это нормальная практика - выполнять много задач в цикле?
в то время как (1) {задача1 (); задача2 (); ... taskN (); }
Я считаю, что лучше обрабатывать все события прерываниями.
Можно ли использовать соединение сокетов библиотек CMSIS и RL-ARM и организовать все мое программное обеспечение, обрабатывая прерывания? Мой сервер (на MCB1700) должен выполнять множество задач. Думаю, мне следует использовать RTOS RTX в своем программном обеспечении. Не правда ли? Лучше ли реализовать мое программное обеспечение без RTX?