私は C (gcc) で STM32F4 をプログラミングしています。これは ARM Cortex M4 です。プログラムの残りの部分が割り込みから実行される場合でも、すべての例で main() 関数が無限ループで終了することがわかります。プログラムからループを削除しようとすると、割り込みも発生しなくなります。
このループを削除してメインスレッドを終了できないのはなぜですか?
これがアセンブリです(親指だと思いますが、ドキュメントがあってもそれを読むことはできません):
LoopFillZerobss:
ldr r3, = _ebss
cmp r2, r3
bcc FillZerobss
/* Call the clock system intitialization function.*/
bl SystemInit
/* Call the application's entry point.*/
bl main
bx lr
.size Reset_Handler, .-Reset_Handler