title: What is the best way to implement my program for Keil MCB1700 evaluation board?
body: <p>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. </p>
  
  <p>Also server must perform such tasks:</p>
  
  <ul>
  <li>To save picture to USB-stick;</li>
  <li>To read picture from USB-stick and send it to client through socket;</li>
  <li>To send and receive information through CAN</li>
  <li>COM-logging.</li>
  <li>etc.</li>
  </ul>
  
  <p>Socket connection can be implemented with help of CMSIS and RL-ARM libraries.</p>
  
  <p>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.</p>
  
  <p>I always thought, that it is a poor way for embedded programming to use endless loops. 
  Moreover, I read such interesting statement</p>
  
  <blockquote>
    <p>"it is certainly possible to create real-time programs without an RTOS
    (by executing one or more tasks in a loop)"</p>
  </blockquote>
  
  <ul>
  <li><p><a href="http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm" rel="nofollow">http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm</a>
  So, as I understood, it is normal practice to execute a lot of tasks in loop?</p>
  
  <p>while (1) {
      task1();
      task2();
          ...
      taskN();
  }</p></li>
  </ul>
  
  <p>I think that it is better to handle all events by interrupts. </p>
  
  <p>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?</p>