主题中讨论的其他器件:C2000WARE
它是一个三相逆变器应用。
在 pwm1中断中执行主控制循环。
#pragma code_section (EPWM_INV_ISR、"ramfuncs");//用于将 ISR 放置到 RAM
//#pragma CODE_SECTION (EPWM_INV_ISR、".TI.ramfunc");//也尝试过、结果相同
当下载到 RAM 时(无闪存调试)、该函数需要~20us。 //F280039_ram_lnk、cmd
通过在进入时驱动 GPIO 引脚和在退出时复位来完成的时间测量。
使用闪存时、仍然在从 RAM 运行 ISR 时、花费25uS、大不相同。
从链接器 CMD 获取。
#else //使用 COFF
.TI.ramfunc:load = FLASH_BANK1_SEC29、
运行= RAMGS12、
Load_start (_RamfuncsLoadStart)、
Load_Size (_RamfuncsLoadSize)、
Load_End (_RamfuncsLoadEnd)、
RUN_START (_RamfuncsRunStart)、
RUN_SIZE (_RamfuncsRunSize)、
RUN_END (_RamfuncsRunEnd)、
对齐(8)
#endif
有任何帮助吗?
如何确保 ISR 只从 RAM 运行?
此致
桑迪普