打印
[应用相关]

SC0082 AT32在FreeRTOS上运行LwIP协议栈

[复制链接]
1277|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
示例目的
演示在FreeRTOS上运行LwIP协议栈,并搭建一个UDP echo server

支持型号列表:
支持型号
AT32F407xx
AT32F437xx
主要使用外设列表:
主要使用外设
EMAC
GPIO
USART

快速使用方法

硬件资源
1) 指示灯LED2/LED3
2) USART1(PA9/PA10)
3) AT-START-F407/ AT-START-F437实验板
4) 以太网连接线

软件资源
1) APP_Release
   网络调试助手
2) SourceCode
   at32f407_freertos/ at32f437_freertos源程序
   FreeRTOS源程序
   LWIP源程序
   AT32驱动库
3) Doc
   SC0082_AT32F407_437_LWIP_FreeRTOS_V2.0.1
Note: 所有 project 都是基于 keil 5 而建立,若用户需要在其他编译环境上使用,请参考AT32F407_Firmware_Library_V2.x.x/project/at_start_f407/templates 中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。

示例使用
1) 打开at32f407_freertos/ at32f437_freertos源程序,编译后下载到实验板
2) 配置PC端的IP网段与开发版相同,如图1
3) 打开网络调试助手,输入本地端与远程的IP
4) 输入欲发送的字符串,开发板接收到后会回传相同的内容给上位机,如图2
针对日常应用,例程中实现了热插拔功能,调用ethernetif_set_link函数对网络连接状态进行相应的LWIP处理。
Note: 若出现网口接收发送数据偶尔丢失,可考虑是否为代码量较大,超过了芯片的零等待区;可将重要代码选择性编译到零等待区解决。

图 1. 设定 PC 端网段

图 2. 上位机发送字符串并接收到开发板的回传


SC0082_AT32F407_437_LWIP_FreeRTOS_V2.0.1.zip

9.92 MB

SC0082_AT32F407_437_LWIP_FreeRTOS_V2.0.1.pdf

375.46 KB

使用特权

评论回复
沙发
简单的辉辉| | 2023-1-1 10:52 | 只看该作者
SC0082 V2.0.3   at32f437_freertos KEIL,如果选V5的编译器,在运行中会报错。
"Struct packing not implemented correctly. Check your lwIP port."
但是如果选V6编译器,就可以正常运行。
官方可以解决下不

使用特权

评论回复
板凳
tanleitanlei| | 2023-1-4 11:27 | 只看该作者
简单的辉辉 发表于 2023-1-1 10:52
SC0082 V2.0.3   at32f437_freertos KEIL,如果选V5的编译器,在运行中会报错。
"Struct packing not imple ...

在cc.h文件内添加如下内容可解决


#if defined (__ICCARM__)

#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x
#define PACK_STRUCT_USE_INCLUDES

#elif defined (__GNUC__)

#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_STRUCT __attribute__ ((__packed__))
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x

#elif defined (__CC_ARM)

#define PACK_STRUCT_BEGIN __packed
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x

#elif defined (__TASKING__)

#define PACK_STRUCT_BEGIN
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(x) x

#endif

使用特权

评论回复
地板
简单的辉辉| | 2023-1-6 09:07 | 只看该作者
tanleitanlei 发表于 2023-1-4 11:27
在cc.h文件内添加如下内容可解决

谢谢。
添加上去后OK了!!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

126

帖子

1

粉丝