Взято із: "Getting printf Output from Target to Debugger". |
Найпростіший варіант -- мати "Debug" i "Release" версію програми, і в останній SemiHosting повністю викидати. В принципі, враховуючи, що даний інтерфейс -- чисто відладочний, це, певне, найкращий варіант -- не варто залишати відладочний код в приладі. Але він має й свої мінуси -- зростає громіздкість коду, більше способів його зламати (див. весь список заперечень проти використання умовної компіляції), все таке.
Щоб знати, що ще можна зробити, слід розібратися, а чого, власне, програма зупиняється на використанні SemiHosting. Потім -- придумати, як із тим боротися. Наперед скажу -- на жаль, повністю вирішити проблему не вдасться. Все рівно буде потрібно вимкнути-ввімкнути живлення мікроконтролера (демоплати), перш ніж код зможе працювати автономно.
Update 12.12.2017: Описано особливості ARM Cortex M0 та M0+.
Update 12.12.2017: Описано особливості ARM Cortex M0 та M0+.