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 |