如何解决错误的目标没有足够的内存来处理数据包的工作时在TI C2000外部模式?

71(30天)
我想做一个实时跟踪我的模型在运行中的几个信号的采样率10 kHz TI C2000 (https://www.ti.com/tool/TMDSCNCD28379D)在外部模式。我的问题是,实时跟踪不的行为符合预期时,虽然我有x4000 heap_size设置为0。
  • 设置时间的“外部触发信号”窗口中我的模型到1000,没问题,我收到1000连续数据点。
  • 设置持续时间至2000年,产生错误消息“在目标系统上没有足够的内存来处理数据包:EXT_SELECT_SIGNALS”诊断的观众,当我按下“手臂触发”按钮在“外部模式控制面板”,没有值从C2000转移到主机pc。请注意,我不能降低采样率作为控制器必须在实时工作

接受的答案

MathWorks支万博1manbetx持团队
编辑:MathWorks支万博1manbetx持团队 2023年4月14日
请在MATLAB R2017b运行以下命令来访问文档页面将为你提供一个好的主题概述:
> > web (fullfile (docroot,“万博1manbetxsupportpkg / texasinstrumentsc2000 / ug / parameter-tuning-and-signal-logging-with-serial-external-mode.html”))
或者请参考以下链接最新文档
你有遇到了两个与您的应用程序的局限性:
  1. 增加了“持续时间”允许大型实时捕获缓冲区。这些缓冲区使用堆部分分配内存。高价值的可能导致“持续时间”没有足够的内存目标处理数据包警告,因此导致没有数据上传从目标主机。
  2. 你要求一个更高的利用heap_size = 0 x4000堆大小。这个改变部分堆存储部分(。sysmem或.esysmem)不够大来满足你的要求,即使你的目标有足够的内存。
解决根本问题,需要提供更多的堆空间来满足你的要求通过添加更多的部分堆区域(.sysmem / .esysmem) .cmd文件中。可以做到这一点,通过编辑链接器文件中出现的位置“matlab工具箱\ \ \ supportpackages \ tic2000_concerto目标\ src \ c28335.cm万博1manbetxd”。当你打开.cmd文件,您将看到类似如下:
.sysmem: > RAML0L3,页面= 1
.esysmem: > RAML0L3,页面= 1
如果RAMM1节有更多空闲内存,然后改变.cmd文件
.sysmem: > RAML0L3 | RAMM1、页面= 1
.esysmem: > RAML0L3 | RAMM1、页面= 1
或(“|”)操作将允许从RAMM1堆请求内存,RAMM1只是一个例子。请玩耍找出内存部分未充分使用的浏览你. map文件生成的。请注意,生成的. map文件没有提供隐式空闲内存的信息。
    5个评论

    登录置评。

    更多的答案(0)

    s manbetx 845


    释放

    没有释放进入。

    社区寻宝

    找到宝藏在MATLAB中央,发现社区如何帮助你!

    开始狩猎!