首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ada在运行时修改变量地址

Ada在运行时修改变量地址
EN

Stack Overflow用户
提问于 2010-11-02 22:06:15
回答 2查看 534关注 0票数 1

我有一个数组和一个变量,声明如下

代码语言:javascript
运行
复制
NextPacketRegister     : array (1 .. Natural (Size)) of Unsigned_32;  
PacketBufferPointer    : Unsigned_32;  

for PacketBufferPointer'Address use To_Address (SPW_PORT_0_OUT_REG_ADDR);

for NextPacketRegister'Address use To_Address (16#A000_0000# + Integer_Address (PacketBufferPointer));

PacketBufferPointer指向硬件寄存器,您可以通过我们主板的PCI访问该寄存器。NextPacketRegister使用此寄存器的值+ 16#A000_0000#

问题是,每次我访问NextPacketRegister时,我都会在后台执行PCI访问,这些访问非常慢,我们正在努力消除这种限制。

但是我似乎找不到一种在运行时修改NextPacketRegister的地址的方法(我想读取一次PacketBufferPointer寄存器,然后只将这个值+ 16#A000_0000#添加一次,这样我就不必每次都执行PCI访问。

我环顾四周,但我不知道如何才能做到这一点。

EN

Stack Overflow用户

发布于 2010-11-08 08:55:09

创建一个结构(缓冲区数组?)这就是您的数据包缓冲区集的外观,并将其放在数组开始处的地址。

从寄存器中读取数组索引。

你可以用任何语言写C,甚至是Ada。

至少它可以工作,并且你得到了一些合理的边界检查。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4078462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档