I want to develop a program for MCB1700 evaluation board. Client software of PC reads a picture from HDD. Then it sends the picture to MCB1700 evaluation board through socket (Ethernet). Server of MCB1700 receives pictures from PC through Socket-connection and displays it on LCD.
Also server must perform such tasks:
- To save picture to USB-stick;
- To read picture from USB-stick and send it to client through socket;
- To send and receive information through CAN
- COM-logging.
- etc.
Socket connection can be implemented with help of CMSIS and RL-ARM libraries.
But, as far as I understood, in both cases sofrware has to listen for incoming TCP-connection and handle network's events in an endless loop - All examples of Keil are based on such principle.
I always thought, that it is a poor way for embedded programming to use endless loops. Moreover, I read such interesting statement
"it is certainly possible to create real-time programs without an RTOS (by executing one or more tasks in a loop)"
http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm So, as I understood, it is normal practice to execute a lot of tasks in loop?
while (1) { task1(); task2(); ... taskN(); }
I think that it is better to handle all events by interrupts.
Is it possible to use socket conection of CMSIS and RL-ARM libraries and organize all my software by handling of interrupts? My server (on MCB1700) has to perform a lot of tasks. I guess, I should use RTOS RTX in my software. Isn't it so? Is it better to implement my software without RTX?