保姆级AT32F437 配置RT-Thread 以太网(UDP/TCP Server)

news/2024/5/17 15:30:16 标签: rt-thread, 以太网, TCP, UDP

好记性不如烂笔头,既然不够聪明,就乖乖的做笔记,温故而知新。

本文档用于本人对知识点的梳理和记录。

一、前言

ENV版本:v1.3.5

rt-thread版本:V5+

开发板:雅特力AT32F437 AT-START-F437

二、ENV配置

ENV工具输入“menuconfig”,回车后进入配置页面

1、打开硬件Ethernet,并选择PHY,开发板板载DM9162

2、打开 SAL层,并打开"Enable network interface device"

3、打开相应的TCP/UDP应用

 -> RT-Thread online packages
     -> miscellaneous packages
        -> samples: kernel and components samples
           -> a network_samples package for rt-thread

4、保存退出配置页面

5、在 Env 命令行中输入 pkgs --update 下载软件包;

6、在 Env 命令行中输入 scons --target=mdk5 -s 生成 mdk5 工程。

7、打开新生成的工程,并编译,此时会发现报错如下图

packages\tcpserver-latest\tcpserver.c(239): error:  #20: identifier "EINTR" is undefined
              if (!(recv_size == EINTR || recv_size == EWOULDBLOCK || recv_size == EAGAIN))
packages\tcpserver-latest\tcpserver.c(239): error:  #20: identifier "EWOULDBLOCK" is undefined
              if (!(recv_size == EINTR || recv_size == EWOULDBLOCK || recv_size == EAGAIN))
packages\tcpserver-latest\tcpserver.c(239): error:  #20: identifier "EAGAIN" is undefined
              if (!(recv_size == EINTR || recv_size == EWOULDBLOCK || recv_size == EAGAIN))
packages\tcpserver-latest\tcpserver.c: 0 warnings, 3 errors

8、在 tcpserver.c 添加头文件 

#include "tcpserver.h"
#include <sys/ioctl.h>
#include <sys/errno.h>

#define DBG_TAG    "tcpserv"
#ifdef  PKG_TCPSERVER_DEBUG
#define DBG_LVL    DBG_LOG
#else
#define DBG_LVL    DBG_INFO
#endif
#include <rtdbg.h>

9、编译通过,并下载到开发板中运行,msh中输入 help 可以看到新增了一些指令

10、测试UDP server,默认打开了端口5000,收到PC的数据包

 三、结语

对新手来说,保姆级教程比较难的


http://www.niftyadmin.cn/n/1735797.html

相关文章

Linux服务器性能查看分析

一 linux服务器性能查看 1.1 cpu性能查看 1、查看物理cpu个数&#xff1a; cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l 2、查看每个物理cpu中的core个数&#xff1a; cat /proc/cpuinfo |grep "cpu cores"|wc -l 3、逻辑cpu的个数&…

java 上下级组装,性能问题

需求&#xff0c;省市上下两级&#xff0c;组装成功一个json对象&#xff1a; 常规做法一&#xff1a;双重for循环&#xff0c;如果省有10个&#xff0c;市有10个&#xff0c;那么时间复杂度是100 //省级 直辖市List<BaseRegion> provincialList regionDao.getProvince(…

java 生成带网络头像的二维码

最近做一个带微信头像的二维码的功能&#xff0c;微信头像是一个链接&#xff0c;所以先把微信头像下载&#xff0c;临时保存&#xff0c;生成二维码 /*** 文件下载工具类** author zhengxinghua*/ public class DownFileUtils {/*** 下载链接图片&#xff0c;临时保存* param…

leecode 刷题1和7的解题思路

1. 两数之和 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值的那 两个整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;你不能重复利用这个数组中同样的元素。 示例: 给定 nums [2, 7, …

数据库三大范式以及mysql存储引擎

数据库三范式&#xff1a; 第一范式&#xff0c;&#xff08;一个表&#xff0c;每一列都是原子性&#xff1b;&#xff09; 所有的域都应该是原子性的&#xff0c;即数据库表的每一列都是不可分割的原子数据项。 比如一张用户表&#xff0c;用户信息&#xff0c;包…

leecode第三题,无重复字符的最长子串

给定一个字符串&#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符…

Collections常用方法梳理

Collections (java.util.Collections) 工具类包含了很多有关集合操作的静态方法&#xff0c;使用这些方法能帮我们简化代码。 1. 获取List中的最小值 Java代码 List<Integer> intList Arrays.asList(33, 24, 18, 6, 9, 99); // 6 System.out.println(java.util.Coll…

后端微信昵称转码

public class Test {public static void main(String args[]){String str "蔡谦 ⁹";try {String s new String(Base64.getEncoder().encode(str.getBytes()), "UTF-8");System.out.println(s);String ss new String(Base64.getDecoder().decode(s))…