Дублируйте исполняемый файл для двух разных областей микропроцессора. srecord? CMake?
Это вопрос производительности, я борюсь с этим некоторое время, и мой google-fu не помогает мне найти способ исправить это.
Я кросс-компиляция приложения для встроенного проекта. Микропроцессор, в котором находится код, имеет память, разделенную пополам, и я могу решить запустить программное обеспечение по адресу address_0 или addres_max/2.
на данный момент у меня есть статическая библиотека, которая связана с основной два раза.
add_executable(mytarget_0 main.c)
target_link_libraries(mytarget_0 ${extralib})
set_target_properties(mytarget_0 PROPERTIES LINK_FLAGS ${CMAKE_EXE_LINKER_FLAGS_LOW} )
и точно такой же, который связан с другим регионом.
add_executable(mytarget_1 main.c)
target_link_libraries(mytarget_1 ${extralib})
set_target_properties(mytarget_1 PROPERTIES LINK_FLAGS ${CMAKE_EXE_LINKER_FLAGS_MID} )
В основном компиляция main выполняется два раза, а связывание - два раза с разными параметрами.
Я скопировал эту операцию для многих целей, и в основном я хотел бы очистить код, чтобы сократить время компиляции.
Мой вопрос сейчас 2:
- у кого-то есть идея о том, как переместить код без его компиляции? Я читал о записи, но не уверен, что смогу использовать ее для этой цели.
- у кого-то есть идеи о том, как изменить флаги ссылок в cmake без создания другой цели?