硬汉嵌入式论坛

 找回密码
 立即注册
查看: 34177|回复: 382
收起左侧

开启第3版本TCPnet的Web Server + VNC Server +摄像头远程监控 +SNTP Client连续工作第510天(2018-02-28)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
发表于 2016-8-9 14:17:37 | 显示全部楼层 |阅读模式
连续上电工作了510天,暂停后期测试,后面有精力做第4版。
最后一天测试(2018-02-28):

QQ截图20180228124325.png



第3版测试开启

国庆假期时间过的太快,不过还是挤出两天的时间升级这个Demo。
本次依然是基于Web Server + emWin VNC Server + SNTP Client 三合一系统,不过在VNC上加入了摄像头。
---------------------------------------------
1. Web Serve使用这个:http://www.armbbs.cn/forum.php?mod=viewthread&tid=20096页面基本可以替代TFTP Server和FTP Server。
2. emWin VNC Server 使用外部SRAM虚拟出一个显示屏,除了打点和读点,全部使用DMA方式实现,有效降低CPU利用率
3. SNTP Client就是实现一个简单的从NTP服务器获取时间和日期。
4. TCPnet的实现依然采用事件触发的方式,这样将有效降低CPU利用率。
5. 依然使用NAND Flash记录当前时间,日期,温度以及网线开关情况,这次改动较大,不再使用以前的fopen,fwrite,fclose模式了
    这种模式虽然安全好用,但是快速批量写入,每次打开和关闭问题非常消耗时间,所有改成每4分钟fopen,fclose一次,中间时间每2
    秒就调用fwrite进行写入,这样效率极高。
    http://www.armbbs.cn/forum.php?mod=viewthread&tid=22045
6. 加入摄像头功能,摄像头功能对处理器的性能要求还是很高的,F407的所有总线带宽基本已经占用满了,
    (1)首先是摄像头接口要DMA数据到外部SRAM。
    (2)本身emWin的实现也是DMA方式虚拟到SRAM里面的,emWin动态内存也是SRAM。
    (3)以太网也是DAM方式。
      跑起来的时候CPU利用率最高可以飙升到70%。加上DMA的占用,基本F407已经不能干别的,而且使用VNC时,由于F407性能更不上
     开启摄像头会有少部分错位。
     http://www.armbbs.cn/forum.php?mod=viewthread&tid=22037
7.  由于国庆假期时间仓促,没有升级更强劲的检测机制,后面逐渐加入吧。
----------------------------------------------------------------------------------------------
效果
QQ截图20161006003904.png



发现的bug反馈:
1.  文件记录部分无法下载整个文件了,每次下载仅可以下2MB左右,现在大小已经25MB了。发现还是每次写入就关闭文件比较靠谱。


临时停电:
曾经停机四次。
1. 第1次,停电10秒左右
2. 第2次,停电10秒左右
3. 第3次,停电不到1个小时。
4. 第4次,停电半个小时左右。
重新来电后,依然正常运行,重新获取新的IP地址。另外就是以后将一些重要的配置存到EEPROM里面,以后重新上电
从EEPROM里面加载参数。


第2版测试开启

Web Server + emWin VNC Server + SNTP Client 三合一系统。
1. Web Serve使用这个:http://www.armbbs.cn/forum.php?mod=viewthread&tid=20096页面基本可以替代TFTP Server和FTP Server。
2. emWin VNC Server 使用外部SRAM虚拟出一个显示屏,除了打点和读点,全部使用DMA方式实现,有效降低CPU利用率
3. SNTP Client就是实现一个简单的从NTP服务器获取时间和日期。
4. TCPnet的实现首次采用事件触发的方式,这样将有效降低CPU利用率。
5. 给RTX增加一个CPU利用率的功能。
7. 依然使用NAND Flash记录当前时间,日期,温度以及网线开关情况,这次修改为每2秒记录一次。
8. 这次的测试,只要发现问题,或者对某个问题有好的想法,就关机烧写新的代码进行测试。


下面是emWin VNC Server的效果,用于测试稳定性:
1.jpg




2016/8/31  15:51:22   死机一次,从设置的现象来看
timer_task任务
AppTaskTCPMain任务
AppTaskLED任务,这个任务是NAND Flash记录操作。
这个三个任务都死机了
--------------------------
下一次测试考虑将所有任务的运行状态都能够检测到,看看最终是死在那个任务了,或者死在硬件异常。


2016/9/7     12:22:36  第2次死机
这几天有时间了,升级一个小版本V2.1,增强下检测机制,看看最终是死在那个地方了,增加看门狗虽然是解决办法
但是不能解决根本问题。目标是让这个系统能够连续运行几个月甚至几年不死机。


2016/9/29   01:32:17  第3次死机
准备开启第三个版本的测试。RTC电池应该是没电了。重启板子后又回到最之前的时间了。




--------------------------------------------------------------
第三版要做的工作建议
1. CSV数据里面的数值前面不要显示中文了,方便做数据统计排线。


====================================================================
第1版测试已经结束
1.  基于TCPnet的远程Web Server正式搭建起来,开启稳定性测试记录,存储到FlashFS文件系统的NAND Flash里面
2.  Web服务器效果在这个帖子里面:http://www.armbbs.cn/forum.php?mod=viewthread&tid=20096
3.  给NAND Flash创建文件系统FlashFS,每分钟记录一次时间,温度和网线的断开和连接状态,记录到CSV文件里面
     这样直接从Web服务器下载了CSV文件后,用Excel打开就行,查看很方便。
4.  服务器可以通过DDNS实现外网访问。手机和电脑端都可以访问。
============
服务器,2016-8-9  13点40分开始运行测试。
服务已经连续正常运行17天。
服务器于 2016/8/26     11:43:45  连续运行17天后死机一次,重启板子,继续让其运行
原因分析:
原因1:
初步认为是获取STM32的RTC的日期和时间,并写入到NAND Flash的环节出问题了,这个环节是由一个独立的任务完成的,
因为进行网线插拔的时候,系统还可以正常的进行插入和拔出识别,说明系统没有死机,而是死机在了某个任务里面。
解决思路:
后面的新版本在这个FlashFS文件系统操作的时候,每个函数都做一个返回值处理。

原因2:
TCPnet死机了,测试中已经无法ping通过
解决思路:
后面的新版本打算支持重新插拔网线后,重新初始化PHY芯片,这样就防止了PHY芯片的死机。


原因3:
PHY芯片过热,死掉了,PHY一旦不通信了,温度立马降下来了。
=========================================



回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-9 14:25:57 | 显示全部楼层
从这个子网页下载CSV文件,当前是存储到NAND Flash的,没有使用SD卡,页面文字未做修改。
7.jpg


1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-10 11:05:08 | 显示全部楼层
系统已经正常运行一天
1.jpg


回复

使用道具 举报

116

主题

799

回帖

1147

积分

至尊会员

积分
1147
QQ
发表于 2016-8-10 14:12:17 | 显示全部楼层
赶紧出教程[s:152] [s:152] [s:152] [s:152] [s:152] [s:152] 等的好辛苦
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2016-8-10 16:59:59 | 显示全部楼层
期待RL-RTX的系列教程呀。

正在购买18套STM32—V6开发板用于集成产品开发呢,期待着弄熟悉了RL-RTX各个中间件之后,将V6开发板用于更多的产品上。
[s:149]
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-11 11:17:03 | 显示全部楼层
系统已经正常运行2天
4.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-12 11:52:58 | 显示全部楼层
正常运行第3天:
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-13 11:29:55 | 显示全部楼层
正常运行第4天:
5.jpg


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-14 10:56:43 | 显示全部楼层
正常运行第5天:
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-15 09:42:33 | 显示全部楼层
正常运行第6天:
10.jpg




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-16 10:56:27 | 显示全部楼层
正常运行第7天:
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-17 10:21:48 | 显示全部楼层
正常运行第8天:
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-18 12:11:01 | 显示全部楼层
正常运行第9天:
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-19 09:46:27 | 显示全部楼层
正常运行第10天:
10.jpg




回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-20 09:44:37 | 显示全部楼层
正常运行第11天:
3.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-21 09:59:00 | 显示全部楼层
正常运行第12天:

1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-22 09:08:14 | 显示全部楼层
正常运行第13天:
1.jpg


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-23 09:40:48 | 显示全部楼层
系统已经正常运行14天
1.jpg




回复

使用道具 举报

116

主题

799

回帖

1147

积分

至尊会员

积分
1147
QQ
发表于 2016-8-23 13:30:46 | 显示全部楼层
能先出个简单例程吗?刚把RTX给移植过来,  keil的操作系统真心简单
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-23 13:34:43 | 显示全部楼层

回 jcx0324 的帖子

jcx0324:能先出个简单例程吗?刚把RTX给移植过来,  keil的操作系统真心简单 (2016-08-23 13:30) 
现在还不打算出,等我对TCPnet的使用和认识都熟练以后就出,要不一旦开始TCPnet的相关例子和教程制作将大大增加我售后的难度,现在论坛和QQ群售后基本都是我一个人。
回复

使用道具 举报

116

主题

799

回帖

1147

积分

至尊会员

积分
1147
QQ
发表于 2016-8-23 14:05:34 | 显示全部楼层
那能把你的接口共享下不[s:150] [s:150]
回复

使用道具 举报

116

主题

799

回帖

1147

积分

至尊会员

积分
1147
QQ
发表于 2016-8-23 14:06:54 | 显示全部楼层
只用于通信即可, 其他功能用不到
回复

使用道具 举报

116

主题

799

回帖

1147

积分

至尊会员

积分
1147
QQ
发表于 2016-8-23 15:03:36 | 显示全部楼层
能提供下""ETH_STM32F4xx.c""该文件不? 全部都是操作寄存器,难看
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-24 09:25:22 | 显示全部楼层
系统已经正常运行15天
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-25 10:03:46 | 显示全部楼层
系统已经正常运行16天

1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-26 09:57:28 | 显示全部楼层
系统已经正常运行17天

1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-26 15:28:21 | 显示全部楼层
服务器于 2016/8/26     11:43:45  连续运行17天后死机一次,重启板子,继续让其运行
原因分析:
原因1:
初步认为是获取STM32的RTC的日期和时间,并写入到NAND Flash的环节出问题了,这个环节是由一个独立的任务完成的,
因为进行网线插拔的时候,系统还可以正常的进行插入和拔出识别,说明系统没有死机,而是死机在了某个任务里面。
解决思路:
后面的新版本在这个FlashFS文件系统操作的时候,每个函数都做一个返回值处理。

原因2:
TCPnet死机了,测试中已经无法ping通过,后面的新版本打算支持重新插拔网线后,重新初始化PHY芯片,这样就
防止了PHY芯片的死机。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-28 10:25:03 | 显示全部楼层
用外部SRAM虚拟出来的显示屏效果,除了打点和读点,其余全部使用DMA方式实时性,有效降低CPU利用率。
1.jpg


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-29 00:20:31 | 显示全部楼层
重新修正的emWin VNC  
1.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-29 09:19:17 | 显示全部楼层
第二版,第1天运行正常:
1.jpg




QQ截图20160829091851.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-30 09:05:10 | 显示全部楼层
第二版,第2天运行正常:

1.jpg



2.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-31 08:50:06 | 显示全部楼层
第二版,第3天运行正常:
1.jpg




3.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-8-31 17:14:18 | 显示全部楼层
2016/8/31  15:51:22   死机一次      重启继续跑。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-1 10:41:58 | 显示全部楼层
第二版,第4天运行正常:

1.jpg



3.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-2 10:50:14 | 显示全部楼层
第二版,第5天运行正常:

1.jpg



2.jpg
回复

使用道具 举报

5

主题

578

回帖

593

积分

版主

Rank: 7Rank: 7Rank: 7

积分
593
发表于 2016-9-2 13:00:04 | 显示全部楼层
一直有个疑问,当程序出现问题的时候  难道就无法无侵入的连接上调试器然后从调试上获得原因吗

每次上调试器后都会复位,即使不复位也无法看到带反汇编调试信息的内容
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-2 13:05:17 | 显示全部楼层

回 myxiaonia 的帖子

myxiaonia:一直有个疑问,当程序出现问题的时候  难道就无法无侵入的连接上调试器然后从调试上获得原因吗

每次上调试器后都会复位,即使不复位也无法看到带反汇编调试信息的内容 (2016-09-02 13:00)
对的,所言极是。
我最近这几天一直在思考一种可以监测长期运行设备的方法,要不这种死机了只能用看门狗复位,但是不知道哪里出问题了。
uCOS的uC/Probe做的不错,可以用JLINK检测,不过JLINK和电脑得一直开着,不方便。

如果能够随时从SWD接口读取信息就好了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-3 10:15:01 | 显示全部楼层
第二版,第6天运行正常:

1.jpg



2.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-4 09:38:27 | 显示全部楼层
第二版,第7天运行正常:

1.jpg



2.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106590
QQ
 楼主| 发表于 2016-9-5 10:12:59 | 显示全部楼层
第二版,第8天运行正常:

1.jpg



2.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-25 19:44 , Processed in 0.354859 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表