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

146 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

123 us

Classic CAN : 8 byte : 1 Mbps

Reception time in Interrupt

NA

120 us

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in polling

9010

7937

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in polling

7270

5885

CAN FD : 64 byte : 5 Mbps

Maximum packets Transmission per second in Interrupt

9010

8271

Classic CAN : 8 byte : 1 Mbps

Maximum packets Transmission per second in Interrupt

7270

5694

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

2 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

1 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

8058 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

867635 us

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

Lin Slave Response Performance

6874 us

6862 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

179209

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

358409

BaudRate 5MHz, Async Transmit

Transmit 112000 words with 8 bit data width

89600

89607

BaudRate 10MHz, Sync Transmit

Transmit 112000 words with 8 bit data width

89600

89609

BaudRate 10MHz, Async Transmit

Transmit 112000 words with 16 bit data width

179200

179208

BaudRate 10MHz, Sync Transmit

Transmit 112000 words with 16 bit data width

179200

179207

BaudRate 10MHz, Async Transmit

Transmit 112000 words with 8 bit data width

17920

23819

BaudRate 50MHz, Sync Transmit

Transmit 112000 words with 8 bit data width

17920

29424

BaudRate 50MHz, Async Transmit

Transmit 112000 words with 16 bit data width

35880

36475

BaudRate 50MHz, Sync Transmit

Transmit 112000 words with 16 bit data width

35840

39660

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

179204

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

11910

BaudRate 50MHz, Sync Transmit

Transmit 56000 words with 8 bit data width

8960

14694

BaudRate 50MHz, Async Transmit

Transmit 56000 words with 16 bit data width

17920

18239

BaudRate 50MHz, Sync Transmit

Transmit 56000 words with 16 bit data width

17920

19799

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

2380968

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 ADC Driver

8.1.7.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.7.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.910042%) 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.146255%) With 3.5 ADC Clock Divider : 57.14MHz

8.1.8. 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.560 us

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

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

82.250 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.680 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.220 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.680 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.010 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.655 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

15484

0

3668

220

Can_Example_Icom

17036

0

3996

556

Can_Example_loopback

15452

0

3668

220

Can_Example_Wakeup

15484

0

3668

220

8.2.2. DIO

Examples

.text

.data

.bss

.rodata

Dio_Example_Read_Write_All

1046

4

0

12

8.2.3. FLS

Examples

.text

.data

.bss

.rodata

Fls_App_Example

6898

0

168

76

8.2.4. GPT

Examples

.text

.data

.bss

.rodata

Gpt_Example_Timers

2938

0

69

76

Gpt_Example_OneShotMode

2938

0

69

76

Gpt_Example_MixedMode

2900

0

53

52

Gpt_Example_InterruptTimeout

3084

0

53

52

Gpt_Example_ContinuousMode

2938

0

69

76

8.2.5. LIN

Examples

.text

.data

.bss

.rodata

Lin_Example_Init_Sleep_Wakeup

4568

0

28

32

Lin_Example_SendData

4568

0

28

32

Lin_Example_Sleep_Wakeup_Interrupt

4568

0

28

32

8.2.6. MCU

Examples

.text

.data

.bss

.rodata

Mcu_Example_Clock

8320

0

34

936

Mcu_Example_PowerMode

8320

0

34

936

Mcu_Example_Ram

8320

0

34

948

Mcu_Example_Reset

8320

0

34

936

8.2.7. PORT

Examples

.text

.data

.bss

.rodata

Port_Example_Init

3098

0

6

496

8.2.8. SPI

Examples

.text

.data

.bss

.rodata

Spi_Example_Sync_AsyncTransfer

12724

0

948

260

Spi_Example_AsyncTransfer_Interrupt

12770

0

836

284

Spi_Example_SyncTransfer

12406

0

676

164

Spi_Example_External_Loopback

12916

0

424

104

8.2.9. WDG

Examples

.text

.data

.bss

.rodata

Wdg_Example_Interrupt

1658

0

40

44

Wdg_Example_Service

1658

0

40

44

Wdg_Example_Reset

1610

0

40

44

8.2.10. CDD ADC

Examples

.text

.data

.bss

.rodata

Cdd_Adc_Example_SwHwConversion

10612

0

149

524

Cdd_Adc_Example_GlbSwTrig

12508

0

237

908

Cdd_Adc_Example_Ppb_TrigRepeater

11090

0

185

664

Cdd_Adc_Example_TempSensor

6774

0

81

220

Cdd_Adc_Example_DmaTransfer

4776

0

57

148

8.2.11. CDD ECAP

Examples

.text

.data

.bss

.rodata

Cdd_Ecap_Capture_Signal

9148

0

341

176

Cdd_Ecap_HrMode

9590

0

121

52

8.2.12. CDD DMA

Examples

.text

.data

.bss

.rodata

Cdd_Dma_Example_Adc_Data_Binning

8586

0

29

56

Cdd_Dma_Example_Gpt_Ping_Pong_Buffer

8586

0

29

56

Cdd_Dma_Example_Mem_Transfer

9228

0

29

56

Cdd_Dma_Example_Mem_Transfer_Mpu

9218

0

29

76

8.2.13. CDD I2C

Examples

.text

.data

.bss

.rodata

Cdd_I2c_Interrupt

9094

0

1300

360

Cdd_I2c_Poll

9078

0

1300

360

Cdd_I2c_Target_Loopback

10316

0

332

156

8.2.14. CDD IPC

Examples

.text

.data

.bss

.rodata

Cdd_Ipc_Example_Polling_C29x1

2856

0

9

80

Cdd_Ipc_Example_Interrupt_C29x1

2856

0

9

80

8.2.15. CDD PWM

Examples

.text

.data

.bss

.rodata

Cdd_Pwm_Example_Chopper

38008

0

46

64

Cdd_Pwm_Example_Cmpss_Trip

37526

0

40

16

Cdd_Pwm_Example_DC_EventFilter

37504

0

40

16

Cdd_Pwm_Example_Deadband

38064

0

48

80

Cdd_Pwm_Example_DiodeEmulation

37936

0

44

48

Cdd_Pwm_Example_GlobalLoad_And_Link

38136

0

46

84

Cdd_Pwm_Example_Hrpwm

37858

0

42

36

Cdd_Pwm_Example_TripZone

38112

0

44

48

Cdd_Pwm_Example_UpCountMode

5286

0

177

160

Cdd_Pwm_Example_XCmp_MultipleEdges

37936

0

44

48

8.2.16. CDD SENT

Examples

.text

.data

.bss

.rodata

Cdd_Sent_Standard

4840

0

81

144

Cdd_Sent_MtpMode

4698

0

81

188

Cdd_Sent_Mtp_ExternalTrigger_Source

4968

0

81

188

8.2.17. CDD UART

Examples

.text

.data

.bss

.rodata

Cdd_Uart_Example_Loopback

4914

0

37

64

Cdd_Uart_Example_Read_Interrupt

4914

0

37

64

Cdd_Uart_Example_Write_Interrupt

4914

0

37

64

Cdd_Uart_Example_Write_Polling

4700

0

37

64

8.2.18. CDD XBAR

Examples

.text

.data

.bss

.rodata

Cdd_Xbar_GpioToGpio

6606

0

8

76

Cdd_Xbar_Gpio_interrupt

6560

0

8

56