xieyang__ 发表于 2018-3-4 12:47:14

lwip 综合例子包含dhcp,httpserver,udpecho,tcpecho,mqtt

本帖最后由 xieyang__ 于 2018-3-4 12:50 编辑

该例子包含了dhcp,httpserver,udpecho,tcpecho,mqtt例子。
并且对官方的PRINTF进行了加锁处理,防止在多任务场景中出现输出的内容混淆。

mqtt例程需要搭建一个mqtt服务器,我使用的是emq(http://emqtt.com/)搭建的mqtt服务器。

httpserver中对官方的网页做了一个简单的修改polling页面改为显示当前时间,格式为年月日 时分秒。
由于sntp没搞定,不能自动获取当前时间,所以添加了一个时间设定框。如果要修改系统时间请按照xxxx.xx.xx.xx.xx.xx格式输入。否则会出错。
由于才疏学浅,没能在网页上添加限制。程序上添加了一个set_rtc的cgi应用,会接收网页上传数据并重设芯片上的rtc时钟。

工程中包含的emwin,usb相关的文件是用于后续添加相应的功能,目前并未使用

程序编译过后需要下载到flash中运行

byccc 发表于 2018-3-4 13:02:33

谢谢楼主分享。

lwip的优势是开源免费,劣势是产品中做的稳定好用的不多,我自己的那个项目过一段时间就会出现死机问题。而且官方技术文档做的low,跟同样开源的FreeRTOS-TCP的文档比,差距较大。好在有不少人用,部分问题可以得到解决。棘手的问题只能靠自己。

xieyang__ 发表于 2018-3-4 16:14:05

byccc 发表于 2018-3-4 13:02
谢谢楼主分享。

lwip的优势是开源免费,劣势是产品中做的稳定好用的不多,我自己的那个项目过一段时间就 ...

我去试试freertos-Tcp

suozhang 发表于 2018-3-6 08:57:30

byccc 发表于 2018-3-4 13:02
谢谢楼主分享。

lwip的优势是开源免费,劣势是产品中做的稳定好用的不多,我自己的那个项目过一段时间就 ...

做的 不稳定 是不是 没有 打开以下 几个保护
/**
* SYS_LIGHTWEIGHT_PROT==1: enable inter-task protection (and task-vs-interrupt
* protection) for certain critical regions during buffer allocation, deallocation
* and memory allocation and deallocation.
* ATTENTION: This is required when using lwIP from more than one context! If
* you disable this, you must be sure what you are doing!
*/
#define SYS_LIGHTWEIGHT_PROT    1 /* 使用 rtos 的临界区保护 lwip 的线程,以及关键变量 */
#define LWIP_ALLOW_MEM_FREE_FROM_OTHER_CONTEXT 1 /* 使用RTOS的信号量和临界区保护内存的分配以及释放等等 */

byccc 发表于 2018-3-6 09:00:15

suozhang 发表于 2018-3-6 08:57
做的 不稳定 是不是 没有 打开以下 几个保护

这个不是基本操作么。。。

suozhang 发表于 2018-3-6 09:42:33

:lol

eddy0317 发表于 2018-3-6 10:22:28

之前因为License问题没去用freeRTOS,看了这个贴才发现原来它的内核和IP协议栈等都改为MIT协议了。

hpdell 发表于 2018-9-28 14:58:15

这个例子貌似比较复杂,牛哇{:32:}

17195892994 发表于 2018-10-9 12:32:44

..................
页: [1]
查看完整版本: lwip 综合例子包含dhcp,httpserver,udpecho,tcpecho,mqtt