I am using MQX 4.0.2 on M4 core of Vybrid SOM with Linux running on A5 core.
I modified mqx/examples/hello to write to "ttya:".
In DS-5 debugger, when fopen( ttya:, default mode) call gets to _kuart_change_baudrate() and I step over C4 register read, nothing more happens. C4 read is:
sci_ptr->C4 &= (~ UART_C4_BRFA_MASK);
I verified read problem by first running:
uint8_t c4 = sci_ptr->C4;
sci_ptr value is 0x40047000, which looks right. I don't know what happened to the task, I'm new to MQX and DS-5.
Does anyone know what I can look at to troubleshoot this?
user_config.h
#define BSPCFG_ENABLE_TTYA 1
#define BSPCFG_ENABLE_ITTYA 0
hello.c
char const * const deviceSci0 = "ttya:";
hndSCI0 = fopen( deviceSci0, BSP_DEFAULT_IO_OPEN_MODE );
已解决! 转到解答。
The problem was Linux was starting uart0 clock regardless of device tree settings. I removed the clock start in arch/arm/mach-imx/clk-vf610.c and MQX could then use "ttya".
Hi Gordon,
Just FYI that there is MQX_4.1.1 and MQX_4.2.0 updates available which might have solution.
For your MQX_4.0.2 have you verified that the A5/Linux is not using the UART0 (I'm assuming it is running)?
I recall a post long ago that mentioned if both cores accessing same peripheral that bad things might happen.
Regards,
David
MQX 4.1.1 is currently incompatible with the Linux we are using. I will double check that I have the 4.0.2 patches applied.
The Linux device tree does not have UART0 device defined and the running Linux OS does not create a UART0 device.