David,
Sadly, that code isn't going to work right. I've just put up new code that should fix everything for you, do another svn update please.
Make sure you get r41 (r40 compiles but had a bug).
Got it! Thanks Roy! It compiles fine with no warnings. I'll try it later tonight. I'd like to try using your compiler to build all of the PropGCC cache drivers to remove dependence on bstc.
I started trying to integrate your Spin compiler with the PropGCC build process and ran into a feature that is needed. The PropGCC makefiles typically write their output files to a different directory from where the sources are stored. This requires us to use a -o option to explicitly specify the output filename and path. I've added a Google Code issue to cover this request.
I seem to be running into a problem with the Spin compiler. I added the -o option to my local copy and now I'm getting the following error when I compile c3_cache.spin using the -c option:
Do you know if Roy is working on a solution to this or do I need to find a way to work around it?
I added my comment to the existing (but already closed) issue (he confirmed notification). As I can't re-open it myself I guess it got forgotten. So for now I suggest you find a workaround. Hopefully Roy will take the hint from here
David,
I updated the compiler to fix the -c option, I tested with your c3_cache.spin/cache_interface.spin files and it now produces the same results as bstc does.
Were you going to send me a patch with your mods for the -o option, or are you going to make me do the work myself?
David,
I updated the compiler to fix the -c option, I tested with your c3_cache.spin/cache_interface.spin files and it now produces the same results as bstc does.
Were you going to send me a patch with your mods for the -o option, or are you going to make me do the work myself?
Roy
Sorry Roy, I'm on the east coast and was sleeping. :-)
I'll send my changes later this morning.
David,
I updated the compiler to fix the -c option, I tested with your c3_cache.spin/cache_interface.spin files and it now produces the same results as bstc does.
Were you going to send me a patch with your mods for the -o option, or are you going to make me do the work myself?
David,
I updated the compiler to fix the -c option, I tested with your c3_cache.spin/cache_interface.spin files and it now produces the same results as bstc does.
Were you going to send me a patch with your mods for the -o option, or are you going to make me do the work myself?
Roy
Hi Roy,
Thanks for fixing the -c bug!! I made one more minor change which was setting the maximum length of a symbol to 32 instead of 30 and I'm now able to build the PropGCC loader without using bstc. Both the Spin code and the PASM code seem to compile and work correctly at least for the simple test of loading the propgcc/demos/fibo/xmmc demo program. However, that exercises the serial helper program which is written in Spin as well as the c3_cache.spin driver which is mostly PASM. Looks like we can probably get rid of the use of bstc in the PropGCC build process!
This is excellent news. I can't use BST when building on an ARM board and juggling those .dats and .bins from the PC build was getting tedious.
There are still other things in PropGCC that are built using bstc but fixing that is just a matter of editing some makefiles. We also have to build Roy's compiler for all three platforms and verify that everything works. I've only tried it on the Mac.
There are still other things in PropGCC that are built using bstc
I have only found I need to make .dat and .binary files when building propgcc on ARM and it falls over trying to building the loader. What have I been missing here?
Roy's spin compiler builds and runs on ARM although I have not given it much use.
I have only found I need to make .dat and .binary files when building propgcc on ARM and it falls over trying to building the loader. What have I been missing here?
Roy's spin compiler builds and runs on ARM although I have not given it much use.
There are some drivers in the library that need bstc I think. There are certainly demo programs that need it.
Thanks for the patch David, I applied it locally, and also changed the symbol_limit to 32. Just need to run it through the tests. I'll try to get that submitted tomorrow night (have plans for tonight after work already).
Thanks for the patch David, I applied it locally, and also changed the symbol_limit to 32. Just need to run it through the tests. I'll try to get that submitted tomorrow night (have plans for tonight after work already).
I have built all the opensource Propeller tools on a Raspberry Pi board running the Raspian version of Debian Linux (which is optimized for the floating point hardware available).
I have built all the opensource Propeller tools on a Raspberry Pi board running the Raspian version of Debian Linux (which is optimized for the floating point hardware available).
The IGEP is not cheap but has an industrial temp spec. (down to -40C) and lots of goddies on board.
Is there any particular reason you run these tools on the RaspberryPi? Surely, an inexpensive desktop machine is a lot faster. I almost bought a RaspberryPi but then couldn't think what I would do with it. It seems more of a curiosity than a practical machine. What is your application for it?
Is there any particular reason you run these tools on the RaspberryPi?
Because I can:)
Over the years I have seen plenty of robots carrying around honking great laptops as their "brains". There are many on YouTube.
Presumably they have Arduinos or other processors/electronics to handle all the sensor inputs, motor controls etc. Presumably those Arduinos or whatever are also programmable from the stonking great laptop being carried around.
So here's the reasoning. The honking great laptop can be replaced with an tiny, low power consumption ARM board running Linux. It provides the horse power for the "brains" part. The low level stuff is done by Arduino or our favourite the Propeller. It make sence then that the "brains" can also be used to reprogram the Propeller.
Put a Raspi board and a Prop board together and you have the whole control system in a cigarette packet sized space to fit in your robot or whatever. Complete with networking, USB etc. WIFI is only a tiny dongle away. As a bonus the whole machine is now completely self hosting. No PC required anymore. If, that is, all the Propeller tools can be got working on the ARM. Which so far they can.
For 30 dollars or so, why not do it?
As for practical, well that Pi has more processing power and disk space than the PC I was using a few years back. Well OK last centuary. There is nothing practical about being tied to a desktop machine on a particular desk.
The major advantage to this approach would be adding new languages to the propeller would become super easy.
Simply call the compiler of choice, to translate language of choice into spin code, then pass it off to the actual spin compiler, and poof, instant support for any language desired.
This is exactly how many compilers work already, acting only as a front-end then passing their output to gcc for the actual compiling. Fortran, pascal, and ada are three that work this way off the top of my head.
I'm all for this approach.
Comments
I started trying to integrate your Spin compiler with the PropGCC build process and ran into a feature that is needed. The PropGCC makefiles typically write their output files to a different directory from where the sources are stored. This requires us to use a -o option to explicitly specify the output filename and path. I've added a Google Code issue to cover this request.
Thanks,
David
One work-around might be to use spin2cpp to extract the DAT sections.
I'll re-look at the -c option tonight. Can you message or email me a patch of your adding of the -o option to integrate?
I updated the compiler to fix the -c option, I tested with your c3_cache.spin/cache_interface.spin files and it now produces the same results as bstc does.
Were you going to send me a patch with your mods for the -o option, or are you going to make me do the work myself?
Roy
I'll send my changes later this morning.
Sorry. Here's the patch.
Hi Roy,
Thanks for fixing the -c bug!! I made one more minor change which was setting the maximum length of a symbol to 32 instead of 30 and I'm now able to build the PropGCC loader without using bstc. Both the Spin code and the PASM code seem to compile and work correctly at least for the simple test of loading the propgcc/demos/fibo/xmmc demo program. However, that exercises the serial helper program which is written in Spin as well as the c3_cache.spin driver which is mostly PASM. Looks like we can probably get rid of the use of bstc in the PropGCC build process!
Thanks again!!
David
I have only found I need to make .dat and .binary files when building propgcc on ARM and it falls over trying to building the loader. What have I been missing here?
Roy's spin compiler builds and runs on ARM although I have not given it much use.
Thanks Roy.
I've added 2 issues, one for object tree output, and one for Archive file list output.
Someone may use those features someday ....
Also, thanks Steve, I'll get to those soon.
I have built all the opensource Propeller tools on a Raspberry Pi board running the Raspian version of Debian Linux (which is optimized for the floating point hardware available).
I have a bunch of ISEE IGEP boards, running Linaro. I'm sure all those builds will work fine there as well just haven't had time to get around to it. http://www.isee.biz/index.php/products/processor-boards/igepv2-board
The IGEP is not cheap but has an industrial temp spec. (down to -40C) and lots of goddies on board.
Because I can:)
Over the years I have seen plenty of robots carrying around honking great laptops as their "brains". There are many on YouTube.
Presumably they have Arduinos or other processors/electronics to handle all the sensor inputs, motor controls etc. Presumably those Arduinos or whatever are also programmable from the stonking great laptop being carried around.
So here's the reasoning. The honking great laptop can be replaced with an tiny, low power consumption ARM board running Linux. It provides the horse power for the "brains" part. The low level stuff is done by Arduino or our favourite the Propeller. It make sence then that the "brains" can also be used to reprogram the Propeller.
Put a Raspi board and a Prop board together and you have the whole control system in a cigarette packet sized space to fit in your robot or whatever. Complete with networking, USB etc. WIFI is only a tiny dongle away. As a bonus the whole machine is now completely self hosting. No PC required anymore. If, that is, all the Propeller tools can be got working on the ARM. Which so far they can.
For 30 dollars or so, why not do it?
As for practical, well that Pi has more processing power and disk space than the PC I was using a few years back. Well OK last centuary. There is nothing practical about being tied to a desktop machine on a particular desk.
Simply call the compiler of choice, to translate language of choice into spin code, then pass it off to the actual spin compiler, and poof, instant support for any language desired.
This is exactly how many compilers work already, acting only as a front-end then passing their output to gcc for the actual compiling. Fortran, pascal, and ada are three that work this way off the top of my head.
I'm all for this approach.