如果用户希望为在 CLA 上运行控制循环的情况下构建的工程生成 .txt 文件,唯一需要做的是将预定义的编译器符号 BUCK_CONTROL_RUNNING_ON_CPU 更改为 BUCK_CONTROL_RUNNING_ON_CLA。有关详细信息,请参阅图 3-6。生成的 .txt 文件以 _cla 重命名,以区别于在 CPU 上运行的相应 .txt 文件。
控制循环在 CPU 上运行时用户运行过 LFU 演示后,则控制循环在 CLA 上运行时运行 LFU 演示就会很简单,只需注意以下几点:
- 如果器件已经包含与 CPU 端控制循环相对应的应用程序文件,则可以使用与上一节相同的 LFU 命令执行此更新,但与 CLA 构建相对应的已更新的 .txt 名称除外(见表 3-1)。例如,当从 BANK0_FLASH 更新到 BANK1_FLASH 时,请执行以下命令:
- 在 F28004x 上:serial_flash_programmer_appln.exe -d f28004x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28004x_lfuBANK1FLASH_cla.txt -b 9600 -p COM11
- 在 F28003x 上:serial_flash_programmer_appln.exe -d f28003x -k f28004x_fw_upgrade_example\flashapi_ex2_sci_kernel-CPU1-RAM.txt -a buck_F28003x_lfuBANK1FLASH_cla.txt -b 9600 -p COM11
- CLA 设置函数在器件复位时(而不是在 LFU 切换之后)出现在 main() 中,因此,在运行 LFU 后复位器件很重要,可为执行此初始化提供便利。例如,在 CPU 上运行控制循环时,假设最后更新了 BANK0_FLASH。这意味着组 0 上的固件正在执行。因此,用户需要执行 LFU 命令来更新 BANK1_FLASH(使用 CLA 可执行文件)。LFU 更新完成后,需要复位器件。器件复位只需执行一次。
然后,用户可以使用 CLA 固件可执行文件,在不复位器件的情况下执行其他 LFU 更新。
- 图 3-7 和图 3-8 演示控制循环在 CLA 上运行时的 LFU 切换。具有一个每 1ms 切换一次 GPIO 的后台任务,该 GPIO 在 Launchpad 的接头 J4(信号 33)上提供。请注意,在这种情况下,LFU 切换通常可能与 ISR 执行重叠,因为 ISR 在 CLA 上执行,而 LFU 在 CPU 上执行。这通常不会造成问题,但在某些情况下,这是不可接受的。图 3-7 和图 3-8 所示的信号为 LFU 切换、CLA ISR 负载、CLA 后台任务执行和稳压输出电压。