Дублируйте исполняемый файл для двух разных областей микропроцессора. 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 без создания другой цели?

0 ответов

Другие вопросы по тегам