@@ -17,15 +17,50 @@ using namespace erpc;
17
17
// Variables
18
18
// //////////////////////////////////////////////////////////////////////////////
19
19
20
- ERPC_MANUALLY_CONSTRUCTED (DspiMasterTransport, s_transport );
20
+ ERPC_MANUALLY_CONSTRUCTED_STATIC (DspiMasterTransport, s_dspiTransport );
21
21
22
22
// //////////////////////////////////////////////////////////////////////////////
23
23
// Code
24
24
// //////////////////////////////////////////////////////////////////////////////
25
25
26
26
erpc_transport_t erpc_transport_dspi_master_init (void *baseAddr, uint32_t baudRate, uint32_t srcClock_Hz)
27
27
{
28
- s_transport.construct (reinterpret_cast <SPI_Type *>(baseAddr), baudRate, srcClock_Hz);
29
- (void )s_transport->init ();
30
- return reinterpret_cast <erpc_transport_t >(s_transport.get ());
28
+ DspiMasterTransport *dspiTransport;
29
+
30
+ #if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_STATIC
31
+ if (s_dspiTransport.isUsed ())
32
+ {
33
+ dspiTransport = NULL ;
34
+ }
35
+ else
36
+ {
37
+ s_dspiTransport.construct (reinterpret_cast <SPI_Type *>(baseAddr), baudRate, srcClock_Hz);
38
+ dspiTransport = s_dspiTransport.get ();
39
+ }
40
+ #elif ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC
41
+ dspiTransport = new DspiMasterTransport (reinterpret_cast <SPI_Type *>(baseAddr), baudRate, srcClock_Hz);
42
+ #else
43
+ #error "Unknown eRPC allocation policy!"
44
+ #endif
45
+
46
+ if (dspiTransport != NULL )
47
+ {
48
+ (void )dspiTransport->init ();
49
+ }
50
+
51
+ return reinterpret_cast <erpc_transport_t >(dspiTransport);
52
+ }
53
+
54
+ void erpc_transport_dspi_master_deinit (erpc_transport_t transport)
55
+ {
56
+ #if ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_STATIC
57
+ (void )transport;
58
+ s_dspiTransport.destroy ();
59
+ #elif ERPC_ALLOCATION_POLICY == ERPC_ALLOCATION_POLICY_DYNAMIC
60
+ erpc_assert (transport != NULL );
61
+
62
+ DspiMasterTransport *dspiTransport = reinterpret_cast <DspiMasterTransport *>(transport);
63
+
64
+ delete dspiTransport;
65
+ #endif
31
66
}
0 commit comments