Оставил минимальный код:
Код
BSP_Init();
uart0_hard_init();
gsm_uart_printf_unsafe("test test test\r\n");
U2LCR = 0;
while(1);
uart0_hard_init();
gsm_uart_printf_unsafe("test test test\r\n");
U2LCR = 0;
while(1);
Без строчки U2LCR всё работает.
Вот в виде ассемблера:
Код
00000010 0248 LDR.N R0,??main_0+0x4 ;; 0x4009800c
\ 00000012 0021 MOVS R1,#+0
\ 00000014 0170 STRB R1,[R0, #+0]
\ 00000012 0021 MOVS R1,#+0
\ 00000014 0170 STRB R1,[R0, #+0]
При изменении на U1LCR тоже всё ОК.
UPD: Вопрос снимается. Нужно сначала разрешить UART2 в PCONP. Однако реакция на команду крайне неординарная.