This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我通过引用"C:\ti\controlSUITE\libs\CONTROL_DCL\v1_00_00_00\docs"来实现 PID。
本文档介绍了第0页中的将库映射到 RAM
dclfuncs:>RAML4,page = 0
这样、我就无法使用 C2Prog 对 MCU 进行编程、因为它用于为我提供扇区违规错误。
因此我更改了
dclfuncs:>FLASHF,PAGE = 0
这解决了 C2Prog 问题、程序也正常工作。
我想问专家、这是正确的吗? PID 库是否可以分配给闪存?
请提供指导。
[引用 user="Richard Poley">请记住、从闪存执行代码的速度比从 RAM 执行代码的速度慢。 [/报价]
主席先生,
1)受执行时间影响的程度。 我正在调用控制器函数
UK = DCL_runPID (&pid1、rk、yk lk);
30 μ s 的 ADC 中断。
2)是否有任何方法可以越过"扇区冲突(范围:0x8090... 0x809f)"中添加 了"0x809f)"。 串行编程时的示例。
此器件上的原始闪存访问时间大约为30ns、但由于 C28x 使用128位提取缓冲区、因此代码执行速度会更快。 如果将其保持为满(无分支)、则表示您已正确初始化闪存、并且根据16位与32位操作码混合、您应该会在90MHz 器件上看到大约70MIPS 的闪存执行。 您所使用的 PID 控制器在70个周期内执行、因此在 RAM 中需要778ns、在闪存中需要大约1us。
我不熟悉 C2Prog、但我猜问题会发生、因为您将"dclfuncs"段直接链接到 RAM 中。 对于在 RAM 中执行的函数、您应该在闪存中分配加载地址和在 RAM 中分配运行地址、以便链接器将代码放置在闪存中(其中 C2Prog 加载)、并且您的代码会在程序启动时将其复制到 RAM 中。 有一份很好的应用手册描述了以下过程:
在 controlSUITE (和 C2000Ware)中的"device_support"目录下还有一个 F28069的代码示例。
但愿这对您有所帮助。
此致、
Richard