-
Notifications
You must be signed in to change notification settings - Fork 242
eRPC footprint
Dusan Cervenka (nxa14949) edited this page Nov 30, 2018
·
12 revisions
This page shows a footprint of the eRPC code used in the eRPC Matrix multiply example. It's role is multiply two matrices and return a result. A transport is used for UART.
IDL:
/*!
* You can write copyrights rules here. Will be copied into outputs.
*/
@outputDir("erpc_outputs") // output directory
program erpc_matrix_multiply; // specify name of output files
/*! This const defines the matrix size. The value has to be the same as the
Matrix array dimension. Do not forget to re-generate the erpc code once the
matrix size is changed in the erpc file */
const int32 matrix_size = 5;
/*! This is the matrix array type. The dimension has to be the same as the
matrix size const. Do not forget to re-generate the erpc code once the
matrix size is changed in the erpc file */
type Matrix = int32[matrix_size][matrix_size];
interface MatrixMultiplyService // cover functions for same topic
{
erpcMatrixMultiply(in Matrix matrix1, in Matrix matrix2, out Matrix result_matrix) -> void
}Footprint - release target, error checking code in shim code is enabled, compiled in IAR 8.20.1.14188:
- client - shim code file: erpc_matrix_multiply_client.o
| file name | ro code | ro data | rw data |
|---|---|---|---|
| basic_codec.o | 296 | 192 | 0 |
| client_manager.o | 302 | 36 | 0 |
| crc16.o | 64 | 0 | 0 |
| erpc_client_setup.o | 174 | 24 | 48 |
| erpc_matrix_multiply_client.o | 288 | 4 | 0 |
| erpc_port_stdlib.o | 32 | 0 | 0 |
| erpc_setup_mbf_dynamic.o | 78 | 32 | 8 |
| erpc_setup_uart_cmsis.o | 36 | 0 | 16 |
| framed_transport.o | 142 | 0 | 0 |
| message_buffer.o | 98 | 0 | 0 |
| uart_cmsis_transport.o | 192 | 44 | 2 |
| --- | --- | --- | --- |
| Total: | 1702 | 332 | 74 |
| shim code | ro code | ro data | rw data |
|---|---|---|---|
| minimum shim size | 96 | 0 | 0 |
| interface | 0 | 0 | 0 |
| oneway function | 80 | 0 | 0 |
| void function | 80 | 0 | 0 |
| in int | 16 | 0 | 0 |
| out int | 16 | 0 | 0 |
| in enum | 16 | 0 | 0 |
| out enum | 20 | 0 | 0 |
| in list @length | 48 | 0 | 0 |
| out list @length | 68 | 0 | 0 |
| in array | 24 | 0 | 0 |
| out array | 24 | 0 | 0 |
| in struct{int} | 16 | 0 | 0 |
| out struct{int} | 16 | 0 | 0 |
| in struct{int} @shared | 16 | 0 | 0 |
| in union{int,int} | 44 | 0 | 0 |
| out union{int,int} | 52 | 0 | 0 |
| in string | 24 | 0 | 0 |
| out string | 60 | 0 | 0 |
| in string @nullable | 48 | 0 | 0 |
| out string @nullable | 80 | 0 | 0 |
- server - shim code file: erpc_matrix_multiply_server.o
| file name | ro code | ro data | rw data |
|---|---|---|---|
| basic_codec.o | 296 | 192 | 0 |
| crc16.o | 64 | 0 | 0 |
| erpc_matrix_multiply_server.o | 316 | 24 | 16 |
| erpc_port_stdlib.o | 32 | 0 | 0 |
| erpc_server_setup.o | 230 | 24 | 48 |
| erpc_setup_mbf_dynamic.o | 78 | 32 | 8 |
| erpc_setup_uart_cmsis.o | 36 | 0 | 16 |
| framed_transport.o | 142 | 0 | 0 |
| message_buffer.o | 108 | 0 | 0 |
| server.o | 118 | 0 | 0 |
| simple_server.o | 360 | 40 | 0 |
| uart_cmsis_transport.o | 196 | 44 | 2 |
| --- | --- | --- | --- |
| Total: | 1976 | 356 | 90 |
| shim code | ro code | ro data | rw data |
|---|---|---|---|
| minimum shim size | 48 | 20 | 16 |
| interface | 36 | 0 | 0 |
| oneway function | 12 | 0 | 0 |
| void function | 76 | 0 | 0 |
| in int | 12 | 0 | 0 |
| out int | 12 | 0 | 0 |
| in enum | 12 | 0 | 0 |
| out enum | 12 | 0 | 0 |
| in list @length | 88 | 0 | 0 |
| out list @length | 88 | 0 | 0 |
| in array | 32 | 0 | 0 |
| out array | 24 | 0 | 0 |
| in struct{int} | 48 | 0 | 0 |
| out struct{int} | 48 | 0 | 0 |
| in struct{int} @shared | 16 | 0 | 0 |
| in union{int,int} | 68 | 0 | 0 |
| out union{int,int} | 76 | 0 | 0 |
| in string | 72 | 0 | 0 |
| out string | 76 | 0 | 0 |
| in string @nullable | 92 | 0 | 0 |
| out string @nullable | 108 | 0 | 0 |