@@ -76,16 +76,17 @@ can_map = {
7676 },
7777}
7878
79- def get_substitutions (instance , device , env ):
80- target = device .identifier
81- driver = device .get_driver ("can" )
79+ def get_substitutions (env , instance ):
80+ target = env [ "target" ] .identifier
81+ driver = env [ "target" ] .get_driver ("can" )
8282 instances = map (lambda i : int (i ), driver ["instance" ]) if "instance" in driver else (0 ,)
8383
84- cm = can_map [target [ " family" ] ]
84+ cm = can_map [target . family ]
8585 is_single = (cm [instance ].type == CanType .Single ) or (cm [instance ].associated_instance not in instances )
8686 other = cm [instance ].associated_instance
8787
8888 subs = {
89+ "target" : target ,
8990 "id" : "" if instance == 0 else str (instance ),
9091 "own_instance" : cm [instance ].register ,
9192 "other_instance" : cm [other ].register if other in cm else None ,
@@ -109,15 +110,7 @@ class Instance(Module):
109110 return True
110111
111112 def build (self , env ):
112- device = env [":target" ]
113- driver = device .get_driver ("can" )
114-
115- properties = device .properties
116- properties ["target" ] = target = device .identifier
117- properties ["driver" ] = driver
118- properties .update (get_substitutions (self .instance , device , env ))
119-
120- env .substitutions = properties
113+ env .substitutions = get_substitutions (env , self .instance )
121114 env .outbasepath = "modm/src/modm/platform/can"
122115
123116 env .template ("can.hpp.in" , "can_{}.hpp" .format (self .instance ))
@@ -159,22 +152,13 @@ def prepare(module, options):
159152 return True
160153
161154def build (env ):
162- device = env [":target" ]
163- driver = device .get_driver ("can" )
164-
165- properties = device .properties
166- properties ["target" ] = device .identifier
167- properties ["driver" ] = driver
168-
169- if "instance" not in driver :
170- properties .update (get_substitutions (0 , device , env ))
171-
172- env .substitutions = properties
155+ env .substitutions = {"target" : env [":target" ].identifier }
173156 env .outbasepath = "modm/src/modm/platform/can"
174157
175158 env .template ("can_filter.hpp.in" )
176159 env .template ("can_filter.cpp.in" )
177160
178161 if "instance" not in driver :
162+ env .substitutions = get_substitutions (env , 0 )
179163 env .template ("can.hpp.in" )
180164 env .template ("can.cpp.in" )
0 commit comments