This module covers the architecture of the CLA, the resources at its disposal and the division of code into task blocks that are triggered by peripherals or through software. Each of these task blocks are atomic, in the sense that no other task may interrupt a running task. This makes operation of the CLA unconventional in comparison with standard CPUs.
The CLA is supported by a subset of the ANSI ‘C’ Compiler. You will learn the features, and more importantly, the limitations, of this compiler in this video. The video also covers the changes in the linker command file needed to support operations on the CLA
In this video we get into the actual workshop. I will take an existing project for the C28x, a simple example that samples an EPWM, runs it through a low pass filter, and then an FFT to get the frequency spectrum, and migrate it over to the CLA. You can download the project files here and I encourage to follow along as I go through the different steps and considerations during the migration process.
Once you have ported your code over to the CLA and successfully built your executable, it’s time to debug. The CLA pipeline is unprotected and is debugged through the main CPU; you cannot debug code on the CLA in the same manner you would on the C28x. This module goes over the different aspects of setting breakpoints, single stepping and setting up CCS views when debugging the CLA.
In the previous modules you would have learned the workings of the CLA, the implementation of the ‘C’ language, and its unique method of debugging. This video deals with some of the common issues users face when writing code for the CLA. It is a compilation, and investigation, of some of the most commonly asked questions on the forums and should help you get to working code quickly.
The Control Law Accelerator is a 32-bit floating point math accelerator that is common on most c2000 devices. It aids in the concurrent processing of fast control algorithms.
After viewing the lectures, and working through the provided example, you should be in a better position to migrate existing algorithms from the main C28x core to the CLA, or start programming on the CLA from scratch.