This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Eclipse / CDT without Makefile Project


Hi Mike

My insight in Eclipse is limited so I hope somebody else will hint us
how to get the console I/O.

Regarding the target issues, see my comment below. Here I will only say
that for with respect to Redboot this is a small memory system and the
application size is limited. That is the reason why I didn't provide RAM
startup for systems without external memory.

Ilija

On 23.12.2012 00:08, Michael Jones wrote:
> I noticed a few things, and did not copy the list because it might be Kinetis specific. See compilation problems towards the end.
>
> I setup a program like this:
>
>     int integer1, integer2, sum;
>
>     printf("Hello Mike.\n");
>
>     printf("Enter first integer:\n");
>     scanf("%d", &integer1);
>     return 0;
>
> And when run, in the Eclipse gdb console (I finally realized there is more than one console):
>
> 947,145 (gdb) 
> 947,415 *running,thread-id="all"
> 947,457 @"Hello Mike.\n"
> 947,460 @"Enter first integer:\n"
>
> Suggests it got some printf data, but it did not appear on the app console.
>
> Then on the app console, I type 45 and on the gdb console get:
>
> 192,289 27-interpreter-exec console 45
>
> I don't know if this means gdb sent 45 to RedBoot or not. I assume so. But the application did not respond. So tty problems are in both directions. I can't tell what is gdb and what is RedBoot.
>
> I extend the program like this:
>
>     int integer1, integer2, sum;
>
>     printf("Hello Mike.\n");
>
>     printf("Enter first integer:\n");
>     scanf("%d", &integer1);
>     printf("Enter second integer:\n");
>     scanf("%d", &integer2);
>     sum = integer1 + integer2;
>
> And I run from command line gdb (not Eclipse) which does print the one line Hello Mike app. I get:
>
> (gdb) cont
> Continuing.
> FLASH configuration checksum error or invalid key
> ASSERT FAIL: <2>stream.cxx[603]virtual Cyg_ErrNo Cyg_StdioStream::write() Stream object is not a valid stream!
> ASSERT FAIL: <2>stream.cxx          [ 603] virtual Cyg_ErrNo Cyg_StdioStream::write()                                                           Stream object is not a valid stream!
>
> So things are not so well with the command line gdb either.
>
> I then tried another experiment with a program like this:
>
>     int integer1, integer2, sum;
>
>     printf("Hello Mike.\n");
>
>     printf("Enter first integer:\n");
>     scanf("%d", &integer1);
>     printf("Enter second integer:\n");
>     scanf("%d", &integer2);
>     sum = integer1 + integer2;
>     printf("Sum is %d\n", sum);
>     return 0;
>
> And I get a compile error:
>
> Description	Resource	Path	Location	Type
> address 0x200106fc of hello_world section `.bss' is not within region `ram'	hello_world		 	C/C++ Problem
> address 0x20010704 of hello_world section `.bss' is not within region `ram'	hello_world		 	C/C++ Problem
>
> So something is also not right with the compilation either.

Compilation is probably OK, but linker complains because there is not
enough memory.
This makes me to suspect that previous errors are due to low memory,
probably some stack overflow.

The linker will include only used functions so if you scanf() it will
add couple of tens KB to the image. You can save some memory if you
configure printf()/scanf() without floating point support

>
> Now, I backed off to just printf programs with multiple lines to see what can be done.
>
> A 10 line printf compiles and runs.
> A 10 count for loop with printf works.
>
> So it does not appear that the number of lines in the program matters.
>
> I change the sum program to only printf and it can add numbers and print (gdb command line, not Eclipse)
>
> With some playing around, the scanf seems to cause the compiler error about regions.
>
> So I think try:
>
>    c = getchar();
>
> And with the command line gdb it prints, then hangs, and typing a character does not let the program proceed. So this seems like even with the command line arm-eabi-gdb, console input may not be routed back through RedBoot to the application.
>
> With the example redboot and application projects you sent, are you able to read from stdin?
>
> Do you know how to get Eclipse to handle IO for gdb?

I have the same problem with Eclipse.
But I usually activate the (real) serial device driver and I get I/O on
serial port.


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]