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 |
119 us |
Classic CAN : 8 byte : 1 Mbps |
Maximum packets Transmission per second in polling |
9010 |
7945 |
Classic CAN : 8 byte : 1 Mbps |
Maximum packets Transmission per second in polling |
7270 |
5891 |
CAN FD : 64 byte : 5 Mbps |
Maximum packets Transmission per second in Interrupt |
9010 |
8266 |
Classic CAN : 8 byte : 1 Mbps |
Maximum packets Transmission per second in Interrupt |
7270 |
5724 |
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 |
8064 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 |
867568 us |
Total time taken to send 8 Bytes of data 128 times ~ 1KB |
Lin Slave Response Performance |
6874 us |
7287 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 |
179208 |
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 |
358408 |
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 |
89607 |
BaudRate 10MHz, Sync Transmit |
Transmit 112000 words with 8 bit data width |
89600 |
89607 |
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 |
179209 |
BaudRate 10MHz, Async Transmit |
Transmit 112000 words with 8 bit data width |
17920 |
23965 |
BaudRate 50MHz, Sync Transmit |
Transmit 112000 words with 8 bit data width |
17920 |
29686 |
BaudRate 50MHz, Async Transmit |
Transmit 112000 words with 16 bit data width |
35880 |
36463 |
BaudRate 50MHz, Sync Transmit |
Transmit 112000 words with 16 bit data width |
35840 |
38379 |
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 |
89606 |
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 |
44805 |
BaudRate 10MHz, Sync Transmit |
Transmit 56000 words with 8 bit data width |
44800 |
44805 |
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 |
89606 |
BaudRate 10MHz, Async Transmit |
Transmit 56000 words with 8 bit data width |
8960 |
11983 |
BaudRate 50MHz, Sync Transmit |
Transmit 56000 words with 8 bit data width |
8960 |
14863 |
BaudRate 50MHz, Async Transmit |
Transmit 56000 words with 16 bit data width |
17920 |
18232 |
BaudRate 50MHz, Sync Transmit |
Transmit 56000 words with 16 bit data width |
17920 |
20036 |
BaudRate 50MHz, Async Transmit |
8.1.5. FLS Driver
Performance Test |
Theoretical value (min) |
Theoretical value (max) |
Measured value |
Remarks |
|---|---|---|---|---|
Sector erase time (2KB) |
3 ms |
10 ms |
3.520 ms |
2048 bytes : 200Mhz |
Program 128-bit + 16 ECC bits |
62.5 us |
625 us |
1649 us |
16 byte : 200Mhz |
Program Sector (2KB) |
8 ms |
80 ms |
8.455 ms |
2048 bytes : 200Mhz |
Note
The erase and program times are approximate due to unavailability of the flash characterization data. This table will be updated in the next release.
Please note that 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.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 |
15420 |
0 |
3672 |
220 |
Can_Example_Icom |
16972 |
0 |
3996 |
556 |
Can_Example_loopback |
15388 |
0 |
3672 |
220 |
Can_Example_Wakeup |
15420 |
0 |
3672 |
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 |
6956 |
0 |
200 |
96 |
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 |
4616 |
0 |
28 |
32 |
Lin_Example_SendData |
4616 |
0 |
28 |
32 |
Lin_Example_Sleep_Wakeup_Interrupt |
4616 |
0 |
28 |
32 |
8.2.6. MCU
Examples |
.text |
.data |
.bss |
.rodata |
|---|---|---|---|---|
Mcu_Example_Clock |
7438 |
0 |
30 |
928 |
Mcu_Example_PowerMode |
7438 |
0 |
30 |
928 |
Mcu_Example_Ram |
7438 |
0 |
30 |
940 |
Mcu_Example_Reset |
7438 |
0 |
30 |
928 |
8.2.7. PORT
Examples |
.text |
.data |
.bss |
.rodata |
|---|---|---|---|---|
Port_Example_Init |
2906 |
0 |
6 |
456 |
8.2.8. SPI
Examples |
.text |
.data |
.bss |
.rodata |
|---|---|---|---|---|
Spi_Example_Sync_AsyncTransfer |
12756 |
0 |
948 |
260 |
Spi_Example_AsyncTransfer_Interrupt |
12802 |
0 |
836 |
284 |
Spi_Example_SyncTransfer |
12438 |
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 |
10886 |
0 |
149 |
552 |
Cdd_Adc_Example_GlbSwTrig |
12788 |
0 |
237 |
952 |
Cdd_Adc_Example_Ppb_TrigRepeater |
11418 |
0 |
185 |
684 |
Cdd_Adc_Example_TempSensor |
7148 |
0 |
81 |
240 |
Cdd_Adc_Example_DmaTransfer |
5116 |
0 |
57 |
160 |
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_Mem_Transfer |
8320 |
0 |
29 |
56 |
Cdd_Dma_Example_Mem_Transfer_Mpu |
8310 |
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 |
38024 |
0 |
46 |
64 |
Cdd_Pwm_Example_Cmpss_Trip |
37542 |
0 |
40 |
16 |
Cdd_Pwm_Example_DC_EventFilter |
37520 |
0 |
40 |
16 |
Cdd_Pwm_Example_Deadband |
38080 |
0 |
48 |
80 |
Cdd_Pwm_Example_DiodeEmulation |
37952 |
0 |
44 |
48 |
Cdd_Pwm_Example_GlobalLoad_And_Link |
38104 |
0 |
46 |
84 |
Cdd_Pwm_Example_Hrpwm |
37874 |
0 |
42 |
36 |
Cdd_Pwm_Example_TripZone |
38128 |
0 |
44 |
48 |
Cdd_Pwm_Example_UpCountMode |
5286 |
0 |
177 |
160 |
Cdd_Pwm_Example_XCmp_MultipleEdges |
37952 |
0 |
44 |
48 |
8.2.16. CDD SENT
Examples |
.text |
.data |
.bss |
.rodata |
|---|---|---|---|---|
Cdd_Sent_Standard |
4800 |
0 |
81 |
144 |
Cdd_Sent_MtpMode |
4674 |
0 |
81 |
188 |
Cdd_Sent_Mtp_ExternalTrigger_Source |
4912 |
0 |
81 |
188 |
8.2.17. CDD UART
Examples |
.text |
.data |
.bss |
.rodata |
|---|---|---|---|---|
Cdd_Uart_Example_Loopback |
4930 |
0 |
37 |
64 |
Cdd_Uart_Example_Read_Interrupt |
4930 |
0 |
37 |
64 |
Cdd_Uart_Example_Write_Interrupt |
4930 |
0 |
37 |
64 |
Cdd_Uart_Example_Write_Polling |
4716 |
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 |