一部分代码是用simulink生成的,c代码里边有比较长的矩阵运算,用6.4.12版本的编译工具编译就出现了Number of virtual registers beyond limit. Reduce function size错误,谷歌了一下别人用16.9.0版本的编译工具编译可以,但我用16.9.0版本的工具编译太慢了,编译一个工程就要花半小时,肯定有问题,请问一下论坛里有没有人遇到过同样的问题,能否给指点一下?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
compiler version
我也不知道,没有找到相关的文档
测试了一下好像没太大的影响,出问题的部分程序,另外还有很多行这样的代码,用simulink导出的
- /* '<S4>:1:148' */
- rty_nextP[80] = ((((((((((((rtb_Init_p[1] * SF_idx_9 + rtb_Init_p[0]) +
- rtb_Init_p[2] * SF_idx_11) + rtb_Init_p[3] * SF_idx_10) + rtb_Init_p[10] *
- g_y) + rtb_Init_p[11] * h_y) + rtb_Init_p[12] * SF_idx_16) * SF_idx_4 +
- ((((((rtb_Init_p[81] * SF_idx_9 + rtb_Init_p[80]) +
- rtb_Init_p[82] * SF_idx_11) + rtb_Init_p[83] * SF_idx_10) + rtb_Init_p[90]
- * g_y) + rtb_Init_p[91] * h_y) + rtb_Init_p[92] * SF_idx_16)) +
- ((((((rtb_Init_p[33] * SF_idx_9 + rtb_Init_p[32]) +
- rtb_Init_p[34] * SF_idx_11) + rtb_Init_p[35] * SF_idx_10) + rtb_Init_p[42]
- * g_y) + rtb_Init_p[43] * h_y) + rtb_Init_p[44] * SF_idx_16) * SF_idx_3) +
- ((((((rtb_Init_p[49] * SF_idx_9 + rtb_Init_p[48]) +
- rtb_Init_p[50] * SF_idx_11) + rtb_Init_p[51] * SF_idx_10) + rtb_Init_p[58]
- * g_y) + rtb_Init_p[59] * h_y) + rtb_Init_p[60] * SF_idx_16) * SF_idx_5) -
- ((((((rtb_Init_p[17] * SF_idx_9 + rtb_Init_p[16]) +
- rtb_Init_p[18] * SF_idx_11) + rtb_Init_p[19] * SF_idx_10) + rtb_Init_p[26]
- * g_y) + rtb_Init_p[27] * h_y) + rtb_Init_p[28] *
- SF_idx_16) * SPP_idx_0) + ((((((rtb_Init_p[225] *
- SF_idx_9 + rtb_Init_p[224]) + rtb_Init_p[226] * SF_idx_11) + rtb_Init_p
- [227] * SF_idx_10) + rtb_Init_p[234] * g_y) + rtb_Init_p[235] * h_y) +
- rtb_Init_p[236] * SF_idx_16) * SPP_idx_2) - ((((((rtb_Init_p[209] *
- SF_idx_9 + rtb_Init_p[208]) + rtb_Init_p[210] * SF_idx_11) + rtb_Init_p
- [211] * SF_idx_10) + rtb_Init_p[218] * g_y) + rtb_Init_p[219] * h_y) +
- rtb_Init_p[220] * SF_idx_16) * SPP_idx_10) + ((((((rtb_Init_p[241] *
- SF_idx_9 + rtb_Init_p[240]) + rtb_Init_p[242] * SF_idx_11) + rtb_Init_p
- [243] * SF_idx_10) + rtb_Init_p[250] * g_y) + rtb_Init_p[251] * h_y) +
- rtb_Init_p[252] * SF_idx_16) * (2.0F * rtb_Init[0] * rtb_Init[1] - 2.0F *
- rtb_Init[2] * rtb_Init[3]);
复制代码这种代码没啥可读性。有时间的话建议重写。推荐使用ti提供的数学库
其实自己按照模型也写过一版,但算法部分都固定了不好改,谢谢帮忙解答
一周热门 更多>