当前位置:首页 > 内存 > 正文

vxworks查看变量内存位置

  • 内存
  • 2024-08-25 15:31:48
  • 6410

一、vxworks产品

VxWorks产品线包括对WindNet的各种扩展,例如SNMP和STREAMS,这些第三方产品专注于提高VxWorks在网络领域的性能并支持OSI、SS7、ATM、FrameRelay、CORBA、ISDN和X.25、CMIP/GDMO等通信协议,以及分布式网络管理,使得嵌入式处理器的网络功能更加广泛和广泛。


对于内存管理,VxWorks提供了两种机制,VxVMI为具有MMU的目标卡提供虚拟内存解决方案,而VxMP则支持共享信号量和消息,跨处理器共享内存区域,有助于提高系统并发性和资源利用。


在调试和连接方面,目标代理(TargetAgent)是一个关键组件。它遵循WBD(WindDebug)协议,允许目标设备无缝连接到Tornado开发工具。在主机上。默认情况下,目标代理作为VxWorks任务tWdbTask运行,Tornado目标服务器发送调试请求来控制目标设备上的其他任务处理。


此外,VxWorks工具库丰富多样,包括中断处理、看门狗定时器、消息记录、内存分配、字符扫描、线性和环形缓冲区管理、链表操作等。符合ANSIC标准函数是开发人员构建VxWorks应用程序时必不可少的工具。


扩展信息

VxWorks是美国风河系统公司(以下简称风河公司、WRS公司)推出的实时操作系统。Tornado是WRS公司推出的实时操作系统开发环境。它类似于MicrosoftVisualC,但提供了更丰富的调试和仿真环境和工具。


二、vxworks系统采用什么分区VxWorks支持静态分配和动态分配相结合的内存分配。低内存区和VxWorks区采用静态分配,保证VxWorks的实时性和稳定性。VxWorks内存操作基于内存分区,而不是页分区。VxWorks动态分配主要涉及到的内存模块概念有:内存分区:包含分区本身的描述信息(maloc结构分配),描述信息存放在系统内存分区中,内存池实际上就是内存空间。属于该分区。内存池:内存池是一块持久化的内存区域,包含一个或多个内存块,通过memPartAlloc和memPartFree实现和释放。内存块:每个内存块在第一次创建动态分配的内存分区时都有一个内存块头来描述自己,以后用户程序可以将其他内存池添加到该分区中。内存池之间的地址不一定是连续的。VxWorks在启动过程中创建一个包含系统内存池的系统分区。对内存的操作由操作系统和大多数用户应用程序执行,通常在系统存池中。内存管理方法需要对空闲内存块进行适当的管理——空闲链使用每个空闲内存块的前几个单元来存储这个空闲块的大小以及下一个空闲块的起始地址。所有空闲块都可以通过链头指针检索。自由链没有大小限制,并且可以轻松添加和删除分区。VxWorks内存分配算法采用先适应的方式动态分配内存,字符串按照起始地址递增的顺序排列。该算法最大的优点是,一旦找到大于或等于所需内存长度的内存块,搜索结束。然后,算法将找到的内存块所需大小的内存空间进行划分并分配给用户,合并剩余部分(如果两个相邻块是空闲的),合并后的内存块留在可用表中或并调整其相应的性能。