Welcome to the Industrial Automation website!

NameDescriptionContent
XING-Automation
E-mail  
Password  
  
Forgot password?
  Register
当前位置:

TI C2000 CLA Software Development Guide

F: | Au:FANS | DA:2026-05-14 | 534 Br: | 🔊 点击朗读正文 ❚❚ | Share:

Instruction set relationship

The CLA instruction set is a subset of the C28x+FPU instruction set, but with a small number of unique instructions. For example, CLA does not support Repeat Block Instructions (RPTB), but supports some local integer operation instructions (AND, OR, XOR, ADD, SUB, shift) as well as local branch/call/return instructions.

List of Key Differences

Project CLA C28x+FPU

Execution method independent of C28x parallel running and C28x fixed point instruction sharing pipeline

4 floating point registers (MR0-MR3) and 8 registers (R0H-R7H)

Two 16 bit auxiliary registers (MAR0, MAR1) and eight 32-bit registers (XAR0-XAR7)

Pipeline 8 stages, completely independent 8 stages, finger/decoding and fixed point sharing

Single step behavior: The pipeline advances 1 cycle and completely refreshes the pipeline

Direct and indirect incremental addressing modes, all C28x addressing modes without data page pointers

The interrupt source comes directly from the peripheral (device related) and is extended through PIE

Task nesting Type0/1 is not supported; Type2 supports Level 1 background software to enable nesting

Floating point multiplication/conversion 1 cycle, 2p cycles without delay slots (2 cycles with delay slots)

Repetitive instructions are not supported and support repeated MACF32 and RPTB

Share RAM, message RAM, and interrupt with C28x communication on the same CPU internal register copy

Program memory access limited to CLA program/data/message RAM, all memory

Performance benchmark considerations

For mathematical functions such as division, sine, cosine, etc., the instructions of CLA and C28x+FPU are not completely equivalent. The difference comes from:

The cycle difference between multiplication and type conversion (CLA single cycle, FPU 2p cycle, but FPU can arrange another instruction in the delay slot).

The difference between branch and call instructions (CLA supports delayed branch, where the three instructions before and after the branch are always executed, requiring developers to fill the delay slot reasonably to improve performance).

Register resource difference (CLA only has 4 floating-point registers, making it more prone to register overflow).

There are fewer addressing modes, which may add additional data movement instructions.

Therefore, the actual acceleration effect depends on the specific structure of the code. For control algorithms that can fully utilize CLA's independent parallelism and no delay slot waste, CLA typically brings significant acceleration.


Method for measuring the execution time of CLA tasks

Accurate measurement of CLA task time is crucial in real-time systems. Recommend the following two methods:

Method 1: Use PWM counter

CLA can access the counter of ePWM module (TBCTR). Read the counter values at the beginning and end of the task and calculate the difference:

uint16_t ct1, ct2, delta;ct1 = EPwm1Regs.TBCTR;//Measured codect2 = EPwm1Regs.TBCTR;delta = ct2 - ct1;

Pay attention to handling counter overflow situations (using unsigned subtraction to automatically modulo). This method has extremely low overhead, but its resolution is limited by the ePWM clock frequency.

Method 2: Utilize GPIO pins

If CLA can directly access GPIO (with device support), the pin can be set high before the task starts and low at the end, and then the duration of high level can be measured with an oscilloscope. This method is intuitive and not affected by counter overflow, but introduces additional GPIO operation instructions that require evaluation of testing accuracy.

Consider the cost of triggering and completing notifications

There is a fixed overhead for CLA task start and end notifications. To accurately measure the pure algorithm execution time, it is recommended to use an idle timer on C28x to record the entire cycle from software triggering to MIRUN flag clearing, and then subtract the CLA task external overhead (which can be measured in an empty task).


How to terminate CLA task for C28x

In certain abnormal situations, the main CPU needs to forcibly terminate the running CLA task.

If a task has been triggered but has not yet started execution, the main CPU can cancel the task by clearing the corresponding flag bit through the MICLR register.

If the task is already in progress, a Soft Reset signal can be written to the MCTL register, which will terminate the current task and clear the MIER register. To completely reset all registers of CLA, the Hard Reset option can be used.

Note: Forcefully terminating may result in inconsistent data, and the CLA state should be reinitialized after resetting.


Interpretation of common linker warnings

When using the C2000 code generation tool v20.2. x LTS and above versions, the linker may issue the following warning:

"Symbol, X, referenced in a.obj, assumes that data is blocked but is accessing non-blocked data in b.obj. Runtime failures may result"

This warning is used to detect data access consistency: when a target file assumes that data is "blocked" access, while the data in another target file is defined as "non blocked" access, the linker will warn that runtime may fail. A typical scenario is when the global variables defined in CLA are used by C28x code. The solution is to ensure that the access properties of all shared data are consistent, which can be found in the compiler version release notes.

  • Basler DECS-250-CGCM-LN2SA1C Digital Excitation Control System
  • Valmet Automation PLC Module A413171
  • Valmet Automation 542852-3A Rack-Mount Cross Connect Panel
  • Valmet Marine Damatic M851565 Main Keyboard
  • Valmet TIU 6 Printed Circuit Board A413110
  • Metso Valmet U4440253V1.1 RMI CPU 300
  • Metso Valmet A413016 Ver.12 NCU2
  • Valmet M851565 Damatic Keyboard
  • Valmet ATB16-4 16 Channel Relay Card
  • Valmet Metso A413331 SPU Power Supply
  • Valmet PUD 10B Automation Control Rack
  • Valmet MT917 ABMB DMU PCB I/O Module
  • Valmet M851565 Damatic Keyboard Mkb2
  • Valmet EDS-518A-MM-SC Ethernet Gateway
  • Valmet 542836-6A PCB Card
  • Valmet ATB16-4/2 Terminal Board 9144047
  • Valmet ATB16-4 Controller Board 0-50°C 4-20mA Analog Output
  • Valmet 542852-3A Slot Rack Chassis Module
  • Valmet A413026 Ver.M1 FBC Board
  • Valmet IQ Basis Weight SH Sending Assembly A418081
  • Valmet PMB 2R Monolithic Backplane 8-Slot PCB 542821-5A and -5B
  • Valmet ATB16-4 16-Channel Relay Card Controller Board 22195028
  • Valmet Diff-EL SL6NK227SF0 Pressure Transmitter 0-380 mBar
  • Valmet A413110 TIU6 Board Ver.M1
  • Neles Automation A413278 Control Module
  • Valmet BCUTB Terminal Module 10101006 11091002
  • Valmet Senso 160 Measuring Station Display 160.2
  • Valmet AIU 1A Analog Input Unit M851245
  • Valmet IQ Web Caliper Sensor A420734
  • Valmet M851040/M8510401 Memory Board
  • Valmet AN35S1MC02RA Valve
  • Valmet M851121 M2 Cross Connect Panel
  • Valmet AIU-8 Simulator Board 421522-1A
  • Metso BIU 82 D200533 Binary Input Unit
  • Valmet M851121 M2 Module Rack
  • Valmet A413383 PC Board Module
  • Valmet N0542 NO54 ABMB PCB - 545200-3A Board
  • Valmet Metso IOP304 Input Module 181503
  • Valmet PDP601 Distributed Processing Unit 181585
  • Valmet A413084 CPU Board - Processor Module for Automation Systems
  • Valmet AIU 16T Analog Input Module M8512081 M1
  • Valmet AIU 16 Analog Input Module 545100-3A and 545100-3B
  • Metso Valmet BIU4 A413146 Binary Input Unit
  • Valmet AIU-8 Simulateur Board 421522-1a Analog Simulator
  • Valmet BIU8A Binary Input Unit 542803-3B M851222 M1
  • Valmet IQ Web Color DH Photoelectric Sensor A418182 2.04
  • Valmet A413200 AIU-8 Simulator Board 191151 421522-1A
  • Valmet Automation SCU M851006 System Control Unit Module
  • Valmet 857565/851565 Damatic Keyboard IP40 5V Operator Interface
  • Valmet A413077 FBC2 Module Rev 06 Field Bus Controller
  • Valmet DMU 2 PCB Module 545142-3A DM Data Management Unit
  • Valmet AIU16T PCB Card M851208 Analog Input Module
  • Valmet A413181 PLU Board
  • Valmet m851006 SCU Module
  • Valmet Metso 181226 Digital Input Module
  • Valmet AIU16T Analog Input Module - 16-Channel 65421466-2B MT924 V1.3
  • Valmet WIN3136875 Slide Clutch
  • Metso Valmet TIU61 A413111 Temperature Input Unit
  • Valmet MC12S Slitter Motor
  • Valmet A413139 AOH4 Board - Analog Output High Module
  • Valmet A409001 BIU85 Board
  • Valmet A413063 DMU Board
  • Valmet A413325 IPU I/O Power Unit
  • Valmet M851004 M2 CPU Module
  • Valmet IOP345 Digital Input Module
  • Metso Valmet A413215 Communication Board
  • Valmet DIFF-EL 80 M1 Transmitter
  • Valmet A413001 CPU Module
  • Valmet M899520 TDC-2 Module
  • Valmet A409001 BIU85 Board
  • Metso Valmet A413005 CPU Module
  • VALMET PUD 10 B Process Automation Rack with CPU SCU Module
  • Valmet A413091 GDU1 Board
  • VALMET M851006 M2 SCU Module
  • Lyngso Valmet Marine 990.896.000 Position Loop Card
  • Valmet Cooking Liquor Measurement 3417H
  • VALMET ABMB MT831 PCB Card
  • Valmet Automation A413325 IPU I/O Power Unit
  • Valmet Metso Consistency Transmitter Smart Pulp M2
  • VALMET METSO A413274 Connection Module
  • VALMET PI33S1KSA02RSA-ELI26 Switch
  • VALMET ND9103HN-CE07-K05 Intelligent Valve Controller
  • VALMET PMB 2R 16 Slot Backplane PCB Card
  • NELES VALMET A413135 AOU 4 Output Module
  • Metso Valmet A413345 FPU Power Unit
  • VALMET A413171 PIC Module
  • VALMET A413620 Repeater Module
  • Valmet M851521 Memory Card
  • Valmet DIFF-EL 140 M1 Transmitter
  • Valmet A413064 DMU Module
  • Valmet IOP371 I/O Bus Extender Module
  • Valmet Cooking Liquor Measurement 3400 Model 3417H
  • Metso Valmet A413043 CPU Module – Industrial Processor
  • Valmet BIU4 M851221 Binary Input Module
  • Valmet PMB 1S CPU SCU Rack Module
  • Valmet A413248 Controller Module
  • Valmet PDP601 Distributed Processing Unit
  • VALMET M851004 M2 CPU Printed Circuit Board Module
  • Metso Valmet A413045 Ver.05 CPU Module
  • Valmet A413181 Ver.05 PLU1 Board
  • Lyngso Valmet ATB16 Controller Board
  • VALMET AIU 16 Analog Input Unit 545100-3A/3B
  • VALMET PUD 10 B Power Supply PCB Rack Module
  • Valmet MS-50V/120V Bearing Unit
  • Valmet PDP603 Distributed Processing Unit – DPU Module
  • Valmet A413110 TIU Board – Terminal Interface Unit
  • Valmet S420154 I/O Backplane PCB – Printed Circuit Board
  • Valmet A413173 Industrial Control Module
  • Valmet A413044 CPU Module
  • Valmet A4IU1 Analog I/O Module
  • Valmet A413325 IPU Power Unit – PLC Module
  • Valmet M851002 CPU Module – Central Processing Unit
  • Valmet PUD10B Power Supply Board
  • Valmet K00990 Master CPU Electronic Assy
  • Valmet Metso IOP345 Input Module
  • Metso Automation T545215 Board
  • Valmet Metso IOP304 Input Module
  • Valmet 542844-6A SCU Module
  • Metso A413043 Ver.11 Valmet CPU Module
  • Valmet Automation BIU 8A Input Module
  • Metso A413044 Ver05 Valmet CPU Module
  • VALMET 542821-5A Control System Rack Module
  • Metso A413005 Ver.04 Valmet CPU Module
  • Valmet M851207 AIU16 Card
  • Valmet BIU8 Binary Input Unit
  • VALMET 547070-2B CPU Printed Circuit Board Module
  • Valmet Automation A413325 Power Module
  • VALMET AUTOMATION A413135 AOU4 Module