Skip to content

Commit 1e1f944

Browse files
bjorniuppsalakartben
authored andcommitted
toolchain: iar: Fix sections placed at address
zephyr_linker_section(... ADDRESS 0xF00) was broken. The fixed placement was using their parent group address. This also removes some dead code in config_file_script.cmake that helped confuse what is going on with fixed sections. Signed-off-by: Björn Bergman <[email protected]>
1 parent cb0ece1 commit 1e1f944

File tree

1 file changed

+3
-22
lines changed

1 file changed

+3
-22
lines changed

cmake/linker/iar/config_file_script.cmake

+3-22
Original file line numberDiff line numberDiff line change
@@ -286,39 +286,20 @@ function(group_to_string)
286286

287287
get_property(type GLOBAL PROPERTY ${STRING_OBJECT}_OBJ_TYPE)
288288
if(${type} STREQUAL REGION)
289-
get_property(name GLOBAL PROPERTY ${STRING_OBJECT}_NAME)
290-
get_property(address GLOBAL PROPERTY ${STRING_OBJECT}_ADDRESS)
291-
get_property(size GLOBAL PROPERTY ${STRING_OBJECT}_SIZE)
292-
293289
get_property(empty GLOBAL PROPERTY ${STRING_OBJECT}_EMPTY)
294290
if(empty)
295291
return()
296292
endif()
297-
298-
else()
299-
get_property(else_name GLOBAL PROPERTY ${STRING_OBJECT}_NAME)
300-
get_property(else_symbol GLOBAL PROPERTY ${STRING_OBJECT}_SYMBOL)
301-
string(TOLOWER ${else_name} else_name)
302-
303-
get_objects(LIST sections OBJECT ${STRING_OBJECT} TYPE SECTION)
304-
list(GET sections 0 section)
305-
get_property(first_section_name GLOBAL PROPERTY ${section}_NAME)
306-
307-
endif()
308-
309-
if(${type} STREQUAL GROUP)
310-
get_property(group_name GLOBAL PROPERTY ${STRING_OBJECT}_NAME)
311-
get_property(group_address GLOBAL PROPERTY ${STRING_OBJECT}_ADDRESS)
312-
get_property(group_vma GLOBAL PROPERTY ${STRING_OBJECT}_VMA)
313-
get_property(group_lma GLOBAL PROPERTY ${STRING_OBJECT}_LMA)
314293
endif()
315294

295+
#_SECTIONS_FIXED need a place at address statement:
316296
get_property(sections GLOBAL PROPERTY ${STRING_OBJECT}_SECTIONS_FIXED)
317297
foreach(section ${sections})
318298
to_string(OBJECT ${section} STRING ${STRING_STRING})
319299
get_property(name GLOBAL PROPERTY ${section}_NAME)
320300
get_property(name_clean GLOBAL PROPERTY ${section}_NAME_CLEAN)
321-
set(${STRING_STRING} "${${STRING_STRING}}\"${name}\": place at address mem:${address} { block ${name_clean} };\n")
301+
get_property(section_address GLOBAL PROPERTY ${section}_ADDRESS)
302+
set(${STRING_STRING} "${${STRING_STRING}}\"${name}\": place at address mem:${section_address} { block ${name_clean} };\n")
322303
endforeach()
323304

324305
get_property(groups GLOBAL PROPERTY ${STRING_OBJECT}_GROUPS)

0 commit comments

Comments
 (0)