我最近在C中编写了一个客户端服务器程序,其中服务器在具有Linux操作系统且客户端在Linux机器上运行的嵌入式主板上运行。我所要做的就是为机器上运行的客户端指定电路板的IP地址以建立连接。
但是现在我基本上做了同样的事情,但是服务器运行在具有 no OS的嵌入式主板上。我仍在服务器和客户端之间建立tcp / ip连接,但我正在使用一个名为uIP(microIP)的标准库。
有人告诉我,在嵌入式主板(服务器)上运行的代码编写起来会非常棘手,因为它必须是特定于平台的,即我最好还是得到一个已经用于代码的代码该平台。我的问题是:为什么在电路板没有操作系统的情况下,在电路板上编写C文件以建立连接要困难得多,而在操作系统板上这样做是非常“容易”。我为后者所做的就是在Linux机器上编写代码,然后使用scp
在OS板上传输代码,编译并执行它。为什么不能为无操作板执行相同的操作?我知道我无法在电路板上编译,但我不能在机器上交叉编译服务器,并将其加载到电路板上而不必担心其他任何事情?为什么这种情况比我使用操作系统板时更复杂?
答案 0 :(得分:1)
uIP库很可能只实现TCP堆栈。它仍然需要一种与硬件通信的方式。这就是操作系统的用途。设置DMA,管理缓冲区,提供中断(以及与ISR交互主线代码)。
没有操作系统,您必须手动实施所有操作。