Hi,
I have a KL25Z board in my hand, when I use the console component in code warrior, I can use "printf" function to print log with serial port into PC com port.
But when I add the MQXLite and write printf in my code, I cannot get message on my PC.
void Task1_task(uint32_t task_init_data) {
int counter = 0;
LDD_TDeviceData *blueLed = Bit1_Init(NULL);
bool ledVal = 1;
printf("count: %d\n", counter);
while (1) {
counter++;
printf("count: %d\n", counter);
ledVal = !ledVal;
Bit1_PutVal(blueLed, ledVal);
_time_delay_ticks(10);
/* Write your code here ... */
}
}
with these code, I can see my blue led blink, but I cannot get serial port message.
Why ?
Is there any where to set when using printf in MQX?
Hi Martin and Zhang,
I have a very similar problem. I have a k20 processor expert project on codewarrior (10.6) with the terminal IO component set up for UART0. When I do a standard printf with no additional arguments, it prints fine, but when I printf with a variable I get a hard fault.
int testVal = 0;
testVal++;
printf("test \r\n"); //works fine
prinf("testval = %d \r\n", testVal); //causes a hard fault after it prints the value the first time
Thanks,
Abid.
Hi David,
I am using MQX lite. I tried changing the stack size from 512 bytes to 1024 bytes, but it didn't help.
I then tried to reduce the priority of the task (to the lowest priority of the whole system : 10) and it was worked - I was able to printf variables. Do you know if the terminal IO module is really slow or has a problem with MQX lite. Below is my task. As you can see, it is really simple:
testTaskCounter = 0;
void test_task(uint32_t task_init_data)
{
while(1)
{
testTaskCounter++;
printf("testTaskCounter %d \r\n", testTaskCounter);
_time_delay_ticks(1000);
}
}
Thanks,
Abid
For MQX Lite, it is very easy. I refer to the tutorial on the link below:
http://mcuoneclipse.com/2013/02/07/tutorial-printf-with-and-without-processor-expert/
In CW 10.4, create New MQX-Lite project for KL25Z128 with I/O Support UART (default). Then add ConsoleIO component to the Processor Expert and configure Serial_LDD componet to use UART 0 on pins PTA1 and PTA2. Then I add printf("Hello World\n"); into my MQX Lite task, build, download, and I get the message on my Win7 terminal, on the Freedom board virtual COM port.
I was ever able to print to the console in MQX and CW10.2 by doing the following:
To be able to output printf to the console you need to open the psp for your board, locate file "fio.h" under PSP include and comment out
line 75: // #define printf _io_printf
then recompile the psp project as well as the bsp