Да уж. Сейчас обратил внимание, что эти 3 бита действительно write-only у всех, начиная с 100 и заканчивая 107.
Это означает, что любое изменение этого регистра "стандартным" способом:
CODE
48 AFIO_MAPR_bit.SPI1_REMAP = 1; // SPI1 remaped !!!
\ 00000032 0x.... 0x.... LDR.W R0,??DataTable4_2 ;; 0x40010004
\ 00000036 0x6800 LDR R0,[R0, #+0]
\ 00000038 0xF050 0x0001 ORRS R0,R0,#0x1
\ 0000003C 0x.... 0x.... LDR.W R1,??DataTable4_2 ;; 0x40010004
\ 00000040 0x6008 STR R0,[R1, #+0]
Может приводить к непредсказуемым значениям бит SWJ_CFG.
Странно, что на практике это пока не приводило к проблемам.
Если инициализация периферии статическая, то целесообразно в конце принудительно писать нужное значение в SWJ_CFG даже в том случае, если remap jtag не используется.
Ну и становится понятно, почему в отладке эти биты могут читаться как попало.