On Tue, Oct 18, 2005 at 06:34:38PM +0200, Andrew Lunn wrote: > The configtool requires a lot of black magic and the right phase of > the moon to compile. Combining that with a 64bit machine is probably > just too much for you as an eCos beginner. I suggest you keep with > ecosconfig. ecosconfig is what most of the power users use anyway.
Fair enough. I do have a 32-bit chroot environment, and I tried running the pre-compiled ecos2.0 binary version, but it wants libpng.so.2 and I have only libpng.so.3. I could probably figure out how to get the older version installed, but is there a more up-to-date precompiled version? If not, I'll just keep going with ecosconfig. That's probably where I'll end up in any case. > Also i suspect you have something wrong with your configuration of > eCos. It is not normaly to compile the cygmon package. > > How exactly did you configure eCos for building redboot? > > There is instructions on how to do this at: > > http://ecos.sourceware.org/docs-latest/redboot/rebuilding-redboot.html#AEN2606 Ah, looking at the page, I see that the part I missed was the import of the redboot_RAM.ecm file. Adding that (using pid as the target, though that is not my ultimate target), the old errors are gone but I now get errors in main.c: In function 'cyg_start': /home/rnortman/src/tinytim/bl2/redboot/ecos/packages/redboot/current/src/main.c:397: error: invalid lvalue in assignment /home/rnortman/src/tinytim/bl2/redboot/ecos/packages/redboot/current/src/main.c: In function 'do_go': /home/rnortman/src/tinytim/bl2/redboot/ecos/packages/redboot/current/src/main.c:597: error: invalid lvalue in assignment These are both invocations of the HAL_THREAD_INIT_CONTEXT macro, and both referencing the symbols workspace_end as the first argument. Looking at the definition for this macro in packages/hal/arm/arch/current/include/hal_arch.h, I think it's most likely that the assigment to workspace_end is the problem. In the macro invocation, workspace_end is being cast to CYG_ADDRWORD. This cast is expanded in the macro definition, and apparently the compiler doesn't like seeing a cast on the left side of an assignment. I removed the cast, and this turned the error into a warning (assignment makes pointer from integer without a cast). The build then proceeds normally. Of course, looking at the results in install/bin, I see that redboot.bin is approximately 72k. I'm not sure that my application can spare that much for the bootloader -- I've got 256kB of Flash and 64kB of RAM, total. Perhaps I'm barking up the wrong tree here, or perhaps I just need to dig in and trim the thing down to what I need. How small can RedBoot get? My target is an arm7tdmi, and I expect to use Thumb mode to cut down on code size. (Specifically, I'm using an Atmel AT91SAM7X256 on a custom-designed board. I expect to have to write my own HAL, of course, but I just used the existing pid target to get this far.) Thanks for the help, Randall -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
