PDA

View Full Version : QT3 application is not running on ARM Board



soumya
15th July 2009, 07:54
Hi all,

I am new to qt. I want to run my customised qt application on ARM Board(S3C2410)..

I designed my application in QT3(version 3.3.7) which was already installed in my OPENSUSE(version 10.2) PC,my application is working fine in PC.

But when I tried to run on board I am not getting any errors and only I am getting blank green screen..The steps I followed are:

* I downloaded qt-embedded-free-3.3.7.tar.gz and added my application to example directory and cross compiled the package for ARM like ./configure -embedded arm -shared -no-cups , gmake..
after this I got arm executable of my application.
* I transfered this arm executable of my apllication to board and also qt libs to board,exported all QT environment variables..

When I tried to run this application on board, I am getting only blank green screen on VGA.
But when I tried to run example application from qt-embedded-free-3.3.7 package on board its working fine.So only my application is giving a problem..

I am not getting any clues also.so dont know how to proceed..


Can anyone faced this problem..?? or any suggesions are badly needed..

Best regards,
Soumya

nish
15th July 2009, 07:58
are you able to see any messages on console? Qt gives nice warnings...

soumya
15th July 2009, 08:37
Hello,

Thanks for the reply.
I am not getting any warning or error messages in the console.
So i am not able to figure out where exactly the problem is.

I have given many debug messages in my application.From these i came to
know that the control is not entering to init() function of ui.h file.
Not able to make out is this giving a problem.

Best regards,
soumya

nish
15th July 2009, 08:46
try to create a dummy dialog or widget in code(not in ui)... make it pop up as the first window.. .. i mean.. try to pin point where exactly is the problem... Did you tried any other example application which uses the ui file?

yogeshgokul
15th July 2009, 08:46
Sometimes our app size+required dlls size goes beyond the mem capacity of boards, so this could be the issue, that your app is not even starting. And qt examples are running because the are relatively smaller in size. Better try to run a small test app on arm board, before running actual app. :)

soumya
15th July 2009, 09:19
The application from qt examples with ui.h files running fine in the target.

But the size of the example application we tried is 61k but our application size is 122k.
(we are having 64MB flash and 64MB RAM on board).

Is this giving any problem?

Is there any other way to check this problem?

Best regards,
soumya

yogeshgokul
15th July 2009, 09:40
Means memory is not an issue with you.

yogeshgokul
15th July 2009, 09:47
You better try a test app, on board. Then see results.

soumya
15th July 2009, 10:16
I created test application with just 3 pushbutton and 3 lineedits (with ui files) and its
working fine in the target so the problem is only with our application right?.

Any other ways to try out????

yogeshgokul
15th July 2009, 10:21
First of all, you stated in first post, about green blank screen. Why green only.

Is your application uses additional qt module or 3rd party module. In form of DLLs. What all qt dlls you are deploying with your application.

nish
15th July 2009, 10:25
are you using some hardcoded values for your windows sizes?

soumya
15th July 2009, 10:40
By default for all the applications green screen comes up first and then the application.

we have loaded only libqte.so.3.3.7 to the target.

we have not hardcoded any values to our window size

yogeshgokul
15th July 2009, 10:55
By default for all the applications green screen comes up first and then the application.

The green screen is coming and there is no error message.
Does it means, your app is running and its not fitting in small screen? Try to put a message box in starting of your app. e.g. in main().

Try to showMaximised your first window. It works most of the times for small screens. Your env vars are fine, and qt lib is also fine, the deployment is fine, thats why u can run test apps. So I guess you are very close.

soumya
15th July 2009, 11:55
I am using vga not a small screen and i have used qDebug message in main.cpp
and i am getting that message in the console.

I have used many forms in my application and i am checking each form individually and i let u know shortly

yogeshgokul
15th July 2009, 11:58
I am using vga not a small screen

Thats cool.

and i have used qDebug message in main.cpp
and i am getting that message in the console.
Thats a good news.

I have used many forms in my application and i am checking each form individually and i let u know shortly
Good Luck:)

soumya
16th July 2009, 10:11
Hello,

I am checking my application part by part.

I am doing something like this

case Key_Enter: // Mapped with Enter Key
{

qDebug( "Key Press Event: Enter" );
enterpushButton->setFocus();
if ( TRUE == XSet )
{
XSet = FALSE;
input = xlineEdit->text().toDouble();

if ( input >= 0 && input < 99999.999){
XVal = ((input * 1000) / (1000));
qDebug ( "XVal : %5.3lf",XVal);
xlineEdit->setText(QString::number( XVal, 'f', decimals_mm ) );
}

else if(input > 9999.999){
xlineEdit->setText(" OVERFLOW ");
}
else if(input < 0 && input >= -99999.999){
xlineEdit->setMaxLength(10);
XVal = ((input * 1000) / (1000));
qDebug ( "XVal : %5.3lf",XVal);
xlineEdit->setText(QString::number( XVal, 'f', decimals_mm ) );
}
else if(input > -99999.999){
xlineEdit->setText("OVERFLOW ");
}


}

}
This code works fine in the host .

But in the target when i press enter key if entered digits is more than 5 it should display "OVERFLOW" and it works fine in the target ..
But if entered digits is less than 5 it should display double value of what i entered but
gui hangs but i get the double value(qDebug) in the console .


I strace the same finally i got this,

write(2, "Key Press Event\n", 16Key Press Event
) = 16
write(2, "Key Press Event: Enter\n", 23Key Press Event: Enter
) = 23
ioctl(4, FIONREAD, [0]) = 0
write(5, "\0", 1) = 1
ioctl(4, FIONREAD, [1]) = 0
ioctl(4, FIONREAD, [1]) = 0
write(2, "XVal : 789.000\n", 15XVal : 789.000
) = 15
old_mmap(NULL, 626950144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
brk(0) = 0x52000
brk(0x25639000) = 0x52000
old_mmap(NULL, 626950144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
old_mmap(NULL, 2097152, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = 0x40a19000
munmap(0x40a19000, 946176) = 0
munmap(0x40c00000, 102400) = 0
mprotect(0x40b00000, 32768, PROT_READ|PROT_WRITE) = 0
old_mmap(NULL, 626950144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
mprotect(0x40b08000, 8192, PROT_READ|PROT_WRITE) = 0
mprotect(0x40b0a000, 16384, PROT_READ|PROT_WRITE) = 0
mprotect(0x40b0e000, 32768, PROT_READ|PROT_WRITE) = 0
mprotect(0x40b16000, 65536, PROT_READ|PROT_WRITE) = 0
[4] + Stopped strace ./debug -qws


Best regards,
soumya

soumya
20th July 2009, 10:13
Hi,


I added the macro -DQT_QLOCALE_USES_FCVT while compiling ,

./configure -embedded arm -shared -no-cups -DQT_QLOCALE_USES_FCVT

Now it works fine in the target.

Thanks for the support