Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在有操作系统和无操作系统的嵌入式设备上编程的区别_C_Linux_Tcp_Ip_Micro Ip - Fatal编程技术网

C 在有操作系统和无操作系统的嵌入式设备上编程的区别

C 在有操作系统和无操作系统的嵌入式设备上编程的区别,c,linux,tcp,ip,micro-ip,C,Linux,Tcp,Ip,Micro Ip,我最近用C语言编写了一个客户机-服务器程序,其中服务器运行在一个具有Linux操作系统的嵌入式板上,而客户机运行在Linux机器上。我所要做的就是为机器上运行的客户端指定线路板的IP地址,以建立连接 但现在我做的基本上是相同的事情,但服务器运行在没有操作系统的嵌入式板上。我仍然在服务器和客户机之间建立tcp/ip连接,但我正在使用一个名为uIP(microIP)的标准库 我被告知,嵌入式主板(服务器)上运行的代码编写起来非常棘手,因为它必须是特定于平台的,也就是说,我最好得到一个已经为平台准备好

我最近用C语言编写了一个客户机-服务器程序,其中服务器运行在一个具有Linux操作系统的嵌入式板上,而客户机运行在Linux机器上。我所要做的就是为机器上运行的客户端指定线路板的IP地址,以建立连接

但现在我做的基本上是相同的事情,但服务器运行在没有操作系统的嵌入式板上。我仍然在服务器和客户机之间建立tcp/ip连接,但我正在使用一个名为uIP(microIP)的标准库


我被告知,嵌入式主板(服务器)上运行的代码编写起来非常棘手,因为它必须是特定于平台的,也就是说,我最好得到一个已经为平台准备好的代码。我的问题是:为什么在一块没有操作系统的板上编写C文件来建立连接要困难得多,而在一块有操作系统的板上建立连接却非常“容易”。对于后者,我所做的只是在Linux机器上编写代码,然后使用
scp
在操作系统板上传输代码,编译并执行它。为什么不能对无操作系统的主板做同样的事情呢?我知道我不能在板上编译,但是我不能在机器上交叉编译服务器,然后将其加载到板上而不必担心其他任何事情吗?为什么这种情况比我使用操作系统板时要复杂得多?

uIP库很可能只实现TCP堆栈。它仍然需要一种与硬件对话的方式。这就是操作系统的用途。设置DMA、管理缓冲区、服务中断(以及与ISR交互的主线代码)

如果没有操作系统,您将不得不手动实现所有功能