8. Key Performance and Memory Consumption Data

8.1. Key Performance Metrics

Note

Driver performance depends on its configuration. In these cases, the drivers are configured to achieve maximum performance with Functional Safety mechanisms disabled.

Performance is also dependent on the overall system architecture and runtime environment. We have achieved best performance for driver by focusing on a single module.

8.1.1. CAN Driver

Performance Test

Theoretical value

Measured value

Remarks

Transmission time in polling

NA

145 us

Classic CAN : 8 byte : 1 Mbps

Reception time in polling

NA

142 us

Classic CAN : 8 byte : 1 Mbps

Transmission time in Interrupt

NA

122 us

Classic CAN : 8 byte : 1 Mbps

Reception time in Interrupt

NA

119 us

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in polling

9010

8033

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in polling

7270

5947

CAN FD : 64 byte : 5 Mbps

Maximum packets Transmission per second in Interrupt

9010

8326

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in Interrupt

7270

5737

CAN FD : 64 byte : 5 Mbps

8.1.2. CDD SENT Driver

Performance Test

Theoretical value

Measured value

Remarks

STANDARD MODE interrupt execution time

NA

3 us

In STANDARD MODE, the total time it takes for the Cdd_Sent module to process sensor data, send the data to the PDU router.

MTP MODE interrupt execution time

NA

2 us

In MTP MODE, the total time it takes for the Cdd_Sent module to process sensor data, send the data to the PDU router.

MTP MODE trigger transmit time

NA

8053 us

In MTP MODE, the total time it takes for the Cdd_Sent module to trigger the sensor, Waiting for the response, process sensor data, send the data to the PDU router.

8.1.3. LIN Driver

Performance Test

Theoretical value

Measured value

Remarks

Lin Master Response Performance

845312 us

867882 us

Total time taken to send 8 Bytes of data 128 times ~ 1KB

Lin Slave Response Performance

6874 us

6815 us

Total time taken to receive 8 Bytes of data

8.1.4. SPI Driver

Performance Test

Theoretical value in micro seconds

Measured value in micro seconds

Remarks

Transmit 112000 words with 8 bit data width

179200

179207

BaudRate 5MHz, Sync Transmit

Transmit 112000 words with 8 bit data width

179200

179208

BaudRate 5MHz, Async Transmit

Transmit 112000 words with 16 bit data width

358400

358407

BaudRate 5MHz, Sync Transmit

Transmit 112000 words with 16 bit data width

358400

358408

BaudRate 5MHz, Async Transmit

Transmit 112000 words with 8 bit data width

89600

89608

BaudRate 10MHz, Sync Transmit

Transmit 112000 words with 8 bit data width

89600

89608

BaudRate 10MHz, Async Transmit

Transmit 112000 words with 16 bit data width

179200

179207

BaudRate 10MHz, Sync Transmit

Transmit 112000 words with 16 bit data width

179200

179208

BaudRate 10MHz, Async Transmit

Transmit 112000 words with 8 bit data width

17920

23340

BaudRate 50MHz, Sync Transmit

Transmit 112000 words with 8 bit data width

17920

26682

BaudRate 50MHz, Async Transmit

Transmit 112000 words with 16 bit data width

35840

36017

BaudRate 50MHz, Sync Transmit

Transmit 112000 words with 16 bit data width

35840

37363

BaudRate 50MHz, Async Transmit

Transmit 56000 words with 8 bit data width

89600

89605

BaudRate 5MHz, Sync Transmit

Transmit 56000 words with 8 bit data width

89600

89605

BaudRate 5MHz, Async Transmit

Transmit 56000 words with 16 bit data width

179200

179205

BaudRate 5MHz, Sync Transmit

Transmit 56000 words with 16 bit data width

179200

179205

BaudRate 5MHz, Async Transmit

Transmit 56000 words with 8 bit data width

44800

44804

BaudRate 10MHz, Sync Transmit

Transmit 56000 words with 8 bit data width

44800

44806

BaudRate 10MHz, Async Transmit

Transmit 56000 words with 16 bit data width

89600

89605

BaudRate 10MHz, Sync Transmit

Transmit 56000 words with 16 bit data width

89600

89605

BaudRate 10MHz, Async Transmit

Transmit 56000 words with 8 bit data width

8960

11671

BaudRate 50MHz, Sync Transmit

Transmit 56000 words with 8 bit data width

8960

13362

BaudRate 50MHz, Async Transmit

Transmit 56000 words with 16 bit data width

17920

18010

BaudRate 50MHz, Sync Transmit

Transmit 56000 words with 16 bit data width

17920

18718

BaudRate 50MHz, Async Transmit

8.1.5. FLS Driver

Performance Test

Theoretical value (Typ)

Theoretical value (Max)

Measured value

Remarks

Sector erase time (2KB)

15 ms

55 ms

2.1 ms

2048 bytes : 200Mhz

Bank erase time (256KB)

21 ms

78 ms

4.7 ms

256 kbytes : 200Mhz

Program 128-bit + 16 ECC bits

62.5 us

625 us

109 us

16 byte : 200Mhz

Program Sector (2KB)

8 ms

80 ms

13.7 ms

2048 bytes : 200Mhz

Note

In the Fls module, once the erase, program or read job is accepted, it is processed through Fls_MainFunction cyclically until the job is finished, thereby adding additional function call overhead time compared to theoretical value.

8.1.6. CDD IPC Driver

Performance Test

Measured value (bytes)

Data transmitted per second

2380956

Note

Please note that this performance result depends on, when the remote core acknowledges the data. This performance result is measured using a single channel in polling mode.

8.1.7. CDD I2C Driver

Performance Test

Theoretical value (max)

Measured value

Remarks

I2C Data Transmission polling in 1s

43584 bytes

41600 bytes : 400KHz

Total bytes written in 1 sec at 400KHz

I2C Data Transmission Interrupt in 1s

43584 bytes

41664 bytes : 400KHz

Total bytes written in 1 sec at 400KHz

Write latency (interrupt) for 1 byte

50 us

57 us

Time taken to write 1byte at 400KHz

I2C Write latency (polled) for 1 byte

50 us

57 us

Time taken to write 1byte at 400KHz

8.1.8. CDD ADC Driver

8.1.8.1. CDD ADC without DMA integration

Performance Test

Theoretical value (max)

Measured value

Remarks

12-bit ADC with SW triggers

3.84 Msps at 57MHz

3.836 Msps (99.909760%) With 3.5 ADC Clock Divider : 57.14MHz

12-bit ADC with HW triggers

3.84 Msps at 57MHz

3.829 Msps (99.735458%) With 3.5 ADC Clock Divider : 57.14MHz

16-bit ADC with SW triggers

1.19 Msps at 57MHz

1.180 Msps (99.198814%) With 3.5 ADC Clock Divider : 57.14MHz

16-bit ADC with HW triggers

1.19 Msps at 57MHz

1.180 Msps (99.145332%) With 3.5 ADC Clock Divider : 57.14MHz

8.1.8.2. CDD ADC with DMA integration

Performance Test

Theoretical value (max)

Measured value

Remarks

12-bit ADC with SW triggers

3.84 Msps at 57MHz

3.836 Msps (99.909760%) With 3.5 ADC Clock Divider : 57.14MHz

12-bit ADC with HW triggers

3.84 Msps at 57MHz

3.829 Msps (99.735458%) With 3.5 ADC Clock Divider : 57.14MHz

16-bit ADC with SW triggers

1.19 Msps at 57MHz

1.180 Msps (99.198814%) With 3.5 ADC Clock Divider : 57.14MHz

16-bit ADC with HW triggers

1.19 Msps at 57MHz

1.180 Msps (99.198814%) With 3.5 ADC Clock Divider : 57.14MHz

8.1.9. CDD UART Driver

Performance Test

Theoretical value

Measured value

Remarks

Transmission time in polling

NA

2 us

1 byte : baudrate 115200

Transmission time in Interrupt

NA

2 us

1 byte : baudrate 115200

Maximum bytes transmission per second in polling

11520

11500

baudrate 115200

Maximum bytes transmission per second in Interrupt

10473

10400

baudrate 115200

8.1.10. CDD DMA Driver

Performance Test

Theoretical value

Measured value

Remarks

Time taken to transfer 16KB data at max throughput using 8-bit data size

164.170 us

164.555 us

16KB transfer, 8-bit word size, 200 MHz

Time taken to transfer 16KB data at max throughput using 16-bit data size

82.640 us

82.645 us

16KB transfer, 16-bit word size, 200 MHz

Time taken to transfer 16KB data at max throughput using 32-bit data size

41.290 us

41.675 us

16KB transfer, 32-bit word size, 200 MHz

Time taken to transfer 16KB data at max throughput using 64-bit data size

20.810 us

21.215 us

16KB transfer, 64-bit word size, 200 MHz

Time taken to transfer 16KB data using burst size 256 and transfer size 64 with 32-bit data size

41.290 us

41.675 us

16KB transfer, 32-bit word size, burst=256, transfer=64, 200 MHz

Time taken to transfer 16KB data using burst size 128 and transfer size 128 with 32-bit data size

41.610 us

42.005 us

16KB transfer, 32-bit word size, burst=128, transfer=128, 200 MHz

Time taken to transfer 16KB data using burst size 64 and transfer size 256 with 32-bit data size

42.250 us

42.650 us

16KB transfer, 32-bit word size, burst=64, transfer=256, 200 MHz

8.2. Memory Footprints

Note

The memory footprint values represent only the module-specific driver sections for each example. These are calculated by extracting module-specific memory sections from the build output and categorizing them into standard memory types: .text (code), .data (initialized data), .bss (uninitialized data), and .rodata (read-only data). Memory measurements are captured in bytes with the optimization level set to O2.

8.2.1. CAN

Examples

.text

.data

.bss

.rodata

Can_Example_Classic_FD

16572

0

3668

220

Can_Example_Icom

18006

0

3996

556

Can_Example_loopback

16540

0

3668

220

Can_Example_Wakeup

16572

0

3668

220

8.2.2. DIO

Examples

.text

.data

.bss

.rodata

Dio_Example_Read_Write_All

1134

4

0

12

8.2.3. FLS

Examples

.text

.data

.bss

.rodata

Fls_App_Example

7582

0

168

76

8.2.4. GPT

Examples

.text

.data

.bss

.rodata

Gpt_Example_Timers

3146

0

69

76

Gpt_Example_OneShotMode

3146

0

69

76

Gpt_Example_MixedMode

3124

0

53

52

Gpt_Example_InterruptTimeout

3308

0

53

52

Gpt_Example_ContinuousMode

3146

0

69

76

8.2.5. LIN

Examples

.text

.data

.bss

.rodata

Lin_Example_Init_Sleep_Wakeup

5434

0

28

32

Lin_Example_SendData

5434

0

28

32

Lin_Example_Sleep_Wakeup_Interrupt

5434

0

28

32

8.2.6. MCU

Examples

.text

.data

.bss

.rodata

Mcu_Example_Clock

8542

0

34

936

Mcu_Example_PowerMode

8542

0

34

936

Mcu_Example_Ram

8542

0

34

948

Mcu_Example_Reset

8542

0

34

936

8.2.7. PORT

Examples

.text

.data

.bss

.rodata

Port_Example_Init

3194

0

6

496

8.2.8. SPI

Examples

.text

.data

.bss

.rodata

Spi_Example_Sync_AsyncTransfer

15960

0

948

260

Spi_Example_AsyncTransfer_Interrupt

15974

0

836

284

Spi_Example_SyncTransfer

15626

0

676

164

8.2.9. WDG

Examples

.text

.data

.bss

.rodata

Wdg_Example_Interrupt

1706

0

40

44

Wdg_Example_Service

1706

0

40

44

Wdg_Example_Reset

1674

0

40

44

8.2.10. CDD ADC

Examples

.text

.data

.bss

.rodata

Cdd_Adc_Example_SwHwConversion

11480

0

149

524

Cdd_Adc_Example_GlbSwTrig

13322

0

237

908

Cdd_Adc_Example_Ppb_TrigRepeater

11888

0

185

664

Cdd_Adc_Example_TempSensor

7472

0

81

220

Cdd_Adc_Example_DmaTransfer

5094

0

57

148

8.2.11. CDD CMPSS

Examples

.text

.data

.bss

.rodata

Cdd_Cmpss_Example_Calibration

8740

0

5

176

Cdd_Cmpss_Example_EpwmTripDE

8740

0

5

176

Cdd_Cmpss_Example_RampGenerator

8740

0

5

176

Cdd_Cmpss_Example_RuntimeConfig

8740

0

5

176

8.2.12. CDD ECAP

Examples

.text

.data

.bss

.rodata

Cdd_Ecap_Capture_Signal

9768

0

341

176

Cdd_Ecap_HrMode

9932

0

121

52

8.2.13. CDD DMA

Examples

.text

.data

.bss

.rodata

Cdd_Dma_Example_Adc_Data_Binning

8834

0

29

56

Cdd_Dma_Example_Gpt_Ping_Pong_Buffer

8834

0

29

56

Cdd_Dma_Example_Mem_Transfer

9492

0

29

56

Cdd_Dma_Example_Mem_Transfer_Mpu

9482

0

29

76

8.2.14. CDD I2C

Examples

.text

.data

.bss

.rodata

Cdd_I2c_Interrupt

9610

0

1300

360

Cdd_I2c_Poll

9594

0

1300

360

Cdd_I2c_Target_Loopback

10946

0

332

156

8.2.15. CDD IPC

Examples

.text

.data

.bss

.rodata

Cdd_Ipc_Example_Polling_C29x1

2952

0

9

80

Cdd_Ipc_Example_Interrupt_C29x1

2952

0

9

80

8.2.16. CDD PWM

Examples

.text

.data

.bss

.rodata

Cdd_Pwm_Example_Chopper

38580

0

46

64

Cdd_Pwm_Example_Cmpss_Trip

38034

0

40

16

Cdd_Pwm_Example_DC_EventFilter

38012

0

40

16

Cdd_Pwm_Example_Deadband

38636

0

48

80

Cdd_Pwm_Example_DiodeEmulation

38508

0

44

48

Cdd_Pwm_Example_GlobalLoad_And_Link

38708

0

46

84

Cdd_Pwm_Example_Hrpwm

38430

0

42

36

Cdd_Pwm_Example_TripZone

38684

0

44

48

Cdd_Pwm_Example_UpCountMode

5516

0

177

160

Cdd_Pwm_Example_XCmp_MultipleEdges

38508

0

44

48

8.2.17. CDD SENT

Examples

.text

.data

.bss

.rodata

Cdd_Sent_Standard

4880

0

81

144

Cdd_Sent_MtpMode

4738

0

81

188

Cdd_Sent_Mtp_ExternalTrigger_Source

5008

0

81

188

8.2.18. CDD UART

Examples

.text

.data

.bss

.rodata

Cdd_Uart_Example_Loopback

5180

0

37

68

Cdd_Uart_Example_Read_Interrupt

5180

0

37

68

Cdd_Uart_Example_Write_Interrupt

5180

0

37

68

Cdd_Uart_Example_Write_Polling

4966

0

37

68

8.2.19. CDD XBAR

Examples

.text

.data

.bss

.rodata

Cdd_Xbar_GpioToGpio

7166

0

8

76

Cdd_Xbar_Gpio_interrupt

7118

0

8

56