专栏
标签
如何解决“下标访问越界”报错
技术分享
发布于 2025-08-06 16:58:22
查看 4过去300天

问题描述

端口与端口在处理数组或矩阵类数据时,用户构建模型在仿真时,可能会出现下标访问越界,具体报错如下图所示。

17.png

出现原因

创建信号连接时,设置的访问端口数据位,超出了端口自身的维度。例如输出端口维度是长度为[3]的数组,实际构建信号线连接时访问了输出端口的y[4]。

解决方案

下标访问越界问题解决的关键在于以下几点

  1. 需要清楚报错的接口前后的端口维度信息。
  2. 构建端口与端口之间连线的时候,需要设置正确的信号线配置。
    如下图所示,

18.png

此处如果前后端口均为非标量则需要用户手动操作指定前后端口传输的信号。
1)如果设置为y[:]代表讲信号完整传输、或接收,例如如果输出端口维度为[3],此时使用y[:]则代表将长度为[3]的数组完整输出,接收信号同理。
2)如果输出端口设置为y[3]代表的含义为将输出端口数组的第三个元素输出,并不是输出长度为3的数组的含义。同理若输入端口设置为y[3]代表的含义为将接收的数据放入输出端口数组中的第三位存储。

复现案例及解决

构建模型,其中multiplex模块输出维度为[3],接收该信号的输出端口output维度为[3]。此时创建端口与端口之间的信号线。信号连接如下图设置,则会报错。

19.png

报错信息如下,提示下标访问越界。

20.png

修改为正确设置,如下图所示

21.png

问题解决模型可以成功仿真。

22.png

问题总结

处理“下标访问越界”问题的关键在于

  1. 了解报错端口前后数据传输的维度;
  2. 了解创建连接时配置项的含义并灵活应用。
所属专栏:Sysblock基础平台
产品信息:Sysblock 嵌入式代码生成工具
其他

全部回答

暂无数据
暂无数据
用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天