如何解决“下标访问越界”报错
技术分享
发布于 2025-08-06 16:58:22
查看 4过去300天
问题描述
端口与端口在处理数组或矩阵类数据时,用户构建模型在仿真时,可能会出现下标访问越界,具体报错如下图所示。

出现原因
创建信号连接时,设置的访问端口数据位,超出了端口自身的维度。例如输出端口维度是长度为[3]的数组,实际构建信号线连接时访问了输出端口的y[4]。
解决方案
下标访问越界问题解决的关键在于以下几点
- 需要清楚报错的接口前后的端口维度信息。
- 构建端口与端口之间连线的时候,需要设置正确的信号线配置。
如下图所示,

此处如果前后端口均为非标量则需要用户手动操作指定前后端口传输的信号。
1)如果设置为y[:]代表讲信号完整传输、或接收,例如如果输出端口维度为[3],此时使用y[:]则代表将长度为[3]的数组完整输出,接收信号同理。
2)如果输出端口设置为y[3]代表的含义为将输出端口数组的第三个元素输出,并不是输出长度为3的数组的含义。同理若输入端口设置为y[3]代表的含义为将接收的数据放入输出端口数组中的第三位存储。
复现案例及解决
构建模型,其中multiplex模块输出维度为[3],接收该信号的输出端口output维度为[3]。此时创建端口与端口之间的信号线。信号连接如下图设置,则会报错。

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

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

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

问题总结
处理“下标访问越界”问题的关键在于
- 了解报错端口前后数据传输的维度;
- 了解创建连接时配置项的含义并灵活应用。
所属专栏:Sysblock基础平台
产品信息:Sysblock 嵌入式代码生成工具