0

一个应用程序正在 uclinux 上运行,它安装在 cortex-m3 上,但现在我想使用 freertos 作为操作系统而不是 uclinux,

例如,我运行一个 tcp 服务器客户端应用程序,其中客户端在 uclinux 上,服务器在安装了 linux 的计算机上,它运行良好,反之亦然

在 FreeRTOS 的情况下,我使用 lwip 作为 ip 堆栈,应用程序和 freertos 和 lwip 被编译并生成 hex 文件,我可以将它放入 cortex-m3 但是当我运行它时,服务器和客户端之间没有通信

--->那么我需要做任何具体的改变吗

用于 uclinux 的 arm-uclinuxeabi-gcc 工具链 用于 freertos 的 arm-none-eabi-gcc 工具链

4

1 回答 1

0

这是一个非常开放的问题,只能通过向您提出许多问题来回答,所以我只会提供建议。

首先,我建议将问题分解为可管理的部分。首先确保您可以自行执行 FreeRTOS(有很多Cortex-M 示例,甚至Cortex-M 的 TCP 示例,如果您在运行 RTOS 时遇到问题,可以查看常见问题解答,所有这些都在 FreeRTOS 上可用。 org 网站)。

其次,在裸机应用程序中(没有 RTOS 或 OS),检查 lwIP 驱动程序是否能够在以太网端口上发送和接收。

第三次将已知工作的以太网驱动程序添加到已知工作的 FreeRTOS 项目中,并检查以太网驱动程序是否仍在工作(注意 FreeRTOS 网站上关于堆栈溢出检查、定义的 configASSERT() 等的常见问题解答项目) .

lwIP 代码中的第四针,注意 lwIP 建议在多线程应用程序中使用堆栈。

五等等

于 2016-06-14T10:56:41.613 回答