OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4393|回复: 0

DJYIP在apollo开发板上flash和RAM资源占用情况

[复制链接]

6

主题

25

帖子

1

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2017-6-12
在线时间
28 小时
发表于 2017-6-20 17:05:57 | 显示全部楼层 |阅读模式
CPU:cortex-m7
编译器:yagarto4.9(gcc)
优化:O0级,即不优化。
1.   TCPIP资源消耗情况1.1.  静态资源消耗
关于静态资源,在编译链接阶段已经确立的ROM RAM等,即我们常说的text段 data段bss段。协议栈(包括FTP TFTP SNTP TELNET等网络服务以及各种用于调试的shell命令)占用的静态资源如下:
  
项目
  
占用资源(字节)
代码段(包含程序段和CONST数据)
0x18610
data段(初始化的数据)
0x30a
Bss段(未初始化的数据)
0xed0
1.2.  动态资源占用情况
在TCPIP协议初始化过程中,会根据用户的配置从系统申请内存用作协议栈的内部运行:
申请的内存主要有以下几项:ARP表 ,TCP控制块,UDP控制块,TCPhash查找表,UDPhash查找表,套接字数据结构,当系统运行起来后,可以使用tcpipmem查看,资源占用如下:

配置项目
数量
内存占用bytes
配置常量
简述
Udpcb
10
640
gUdpSockNum
可以同时存在的UDP套接字数目
Udphashtab
10
40
gUdpHashLen
Udphash查找表长度
TCPSCB
5
340
gTcpServerNum
可以同时存在的tcp  server套接字个数
TCPCCB
10
2400
gTcpClientNum
可以同时存在的tcp  client套接字个数
SOCKMEM
10
1240
gSockNum
可以同时存在的套接字个数
Arptab
32
80
gArpItemHashLen
Arp hash查找表长度
PKGMEM
1
16384
gNetPkgMemSize
收发缓冲区大小,可减小到2K以下
以下不可配置




Tcphashtab
15
60


Tpltab
5
128


Linkhal
64
128


总计

21440



在做基于TCPIP的二次开发的时候,基本上使用的都是套接字,比方SNTP TFTP FTPTELNET等等应用,那么对于一个套接字究竟占用多少资源呢?
以TCP(客户端)为例:
Tcpclientsocketfd = socket空间(124)+tcp_ccb(240) = 364Byte
以Udp为例:
Udpsocketfd = socket空间(124)+ udp_cb(64)= 188Byte

Socket套接字空间稍大,这个是因为后续即将支持IPV6,一个IPV6四元组空间占用就是(32+2)*2=64Bytes
TCP的CCB占用也稍大,这个是因为我们并发的支持套接字的同时读写,那么用到的同步量就是三个(44*3=132Bytes),同时窗口缩放、定时重传、保活机制、流量监控等等机制也占用部分空间,才让我们的CCB稍大。
       话说明码标价,用户可以根据自己的需要私人订制,额外不再收取费用(资源)!
另外:TCPIP中目前使用了三个事件(线程):tcp的TICK任务,用于处理TCP的各种定时,ipprocess,用于处理接收的IP报文,ARPprocess,用于处理接收的ARP报文。该三个任务的栈空间以及优先级都是可以配置的(详见tcpipconfig.c),可配置,根绝实际情况调整。

另外,在Apollo开发板上,djyip的tcp收发速度,大包可达3Mbytes/s,小包也超过1Mbytes/s,性能相当的平稳,不会出现忽快忽慢的情况。


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 14:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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