【发布时间】:2012-02-04 21:32:33
【问题描述】:
我想为 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 的情况下实现我的软件会更好吗?
【问题讨论】:
标签: embedded interrupt-handling keil rtx