我想为 MCB1700 评估板开发一个程序。PC 客户端软件从硬盘读取图片。然后通过socket(以太网)将图片发送到MCB1700评估板。MCB1700 服务器通过Socket 连接从PC 接收图片并显示在LCD 上。
服务器还必须执行以下任务:
- 将图片保存到 U 盘;
- 从U盘中读取图片并通过socket发送给客户端;
- 通过 CAN 发送和接收信息
- COM 日志记录。
- 等等
套接字连接可以在 CMSIS 和 RL-ARM 库的帮助下实现。
但是,据我了解,在这两种情况下,软件都必须监听传入的 TCP 连接并在无限循环中处理网络事件——Keil 的所有示例都基于这样的原则。
我一直认为,嵌入式编程使用无限循环是一种糟糕的方式。此外,我读到了这样有趣的声明
“当然可以在没有 RTOS 的情况下创建实时程序(通过在循环中执行一个或多个任务)”
http://www.keil.com/support/man/docs/rlarm/rlarm_ar_artxarm.htm 所以,据我所知,循环执行很多任务是正常的做法吗?
而(1){任务1();任务2();...任务N();}
我认为最好通过中断来处理所有事件。
是否可以使用 CMSIS 和 RL-ARM 库的套接字连接并通过处理中断来组织我的所有软件?我的服务器(在 MCB1700 上)必须执行很多任务。我想,我应该在我的软件中使用 RTOS RTX。不是这样吗?在没有 RTX 的情况下实施我的软件会更好吗?