PropGCC on GitHub
Rsadeika
Posts: 3,837
in Propeller 1
I thought I would give this new forum a try, just to see how it works for me. A general observation, this kind of looks like a categorized bulletin board, which may be a good thing. Also the vote thing could be a really effective way of breaking up some of the threads where you have two posters going at each other, OK so lets see...
To the main question, I just went to the PropGCC GitHub site, and cannot make heads or tails of the site. I was looking for the latest binary download zip for the latest PropGCC Windows 64bit version, and I did not find anything, am I looking in the wrong place? I thought that things would be so much more organized over at the GitHub site, but it looks like pure chaos, maybe for the person that is maintaining it, it is well organized.
The reason I am looking, I downloaded an Alpha 5 version of PropGCC, and inserted that into my existing SimpleIDE setup, now when I try to do a compile, I get errors like "segmentation fault", "test1.c:23:1: internal compiler error: in normalize_up, at sreal.h:194",..., etc.
David Betz mentioned that in one of the PropGCC builds, there is a provision for being able to do new COGs in XMMC mode; I am still trying to maximize the functionality of my DNA-RTC board. Can anybody help me?
Ray
To the main question, I just went to the PropGCC GitHub site, and cannot make heads or tails of the site. I was looking for the latest binary download zip for the latest PropGCC Windows 64bit version, and I did not find anything, am I looking in the wrong place? I thought that things would be so much more organized over at the GitHub site, but it looks like pure chaos, maybe for the person that is maintaining it, it is well organized.
The reason I am looking, I downloaded an Alpha 5 version of PropGCC, and inserted that into my existing SimpleIDE setup, now when I try to do a compile, I get errors like "segmentation fault", "test1.c:23:1: internal compiler error: in normalize_up, at sreal.h:194",..., etc.
David Betz mentioned that in one of the PropGCC builds, there is a provision for being able to do new COGs in XMMC mode; I am still trying to maximize the functionality of my DNA-RTC board. Can anybody help me?
Ray
Comments
Rather it's a place for the developers to manage their development of the source code collaboratively. And for you to be able to checkout the source to build yourself.
Github is actually amazingly well organized. If the prop-gcc project it is hosting is well organized is another matter.
If the "official" downloads of prop-gcc, Simple IDE etc do not work for you it is time to say so.
What kind of machine do you have? What OS? What OS version.
The latest propgcc builds can be found here. The linux tarball I grabbed today looks like it is alpha_v1_9_0.
I'm not sure where the multi-cog XMMC code is as far as which release and how stable.
I'm not that much of a c programmer anyway - it gives me a rash.
I did try and build the release_1_0 and the master trunk from the Github source on my linux systems recently and both wentoff into the weeds with different errors but that could be me or my system as much as the code.
Since I have Geany installed on my Windows 7 box, I am now using that to see how it works with GCC5 Win32, yes so far it is working. I am able to get an LED to blink on my DNA-RTC board. Talk about starting from scratch.
I was able to get a high() and low() to work, but I am having trouble with creating a pause() to work. In PropGCC, for some reason, this does not work as expected: 'waitcnt((80000000*time)+CNT);'.
Next I will have to decipher how to start a COG, and then set it up to run in XMMC mode, using the blinker program, that should tell me if COGs work in XMMC mode with the GCC5 Win32 edition.
Ray
Ray
Look for https://github.com/parallaxinc/propgcc/blob/master/loader/xmem-drivers/dna.cfg and read about propeller-load.I guess I will have to search the PropGCC docs for an answer, if there is one available.
That's what docs are for... and you'll need some examples about the different memory models, https://github.com/parallaxinc/propgcc/tree/master/demos/fibo may be a good start for this topic.
(The links I mentioned refer to the 1.9.x branch but for 1.0.x, they will not be much different after switching branches)
My preliminary conclusion is that COGs are not functioning in XMM or XMMC mode, my opinion of course. Below is the C program that I am using with Geany, and the Build commands:
Compile - propeller-elf-gcc -Wall -c "%f"
Build - propeller-elf-gcc -Wall -mxmmc -mfcache -o "%e" "%f"
Execute - propeller-load -b DNA:SQI-SRAM -D var=cache-driver -p COM6 -r "./%e"
The above listed build commands, I get everything working without errors and a good load, but, NO BLINKING LED. From that I derive that XMMC mode is started, but it is not running the COG in the XMMC space. So at this point I am not sure what else to try, only to assume that GCC5 Win32 is not setup to run COGs in the XMM/XMMC space.
Ray
Just to make sure, I dug out my C3 board, and applied the same test. COGs DO NOT work in XMM/XMMC space on the C3 board, using GCC5 Win32. Although I did notice, on the C3 board, you could run a regular (COGless) program while using XMM/XMMC mode. On the DNA-RTC, you could not run anything while in the XMM/XMMC mode.
So it seems that for the C3 board there is a better functioning external memory driver, which makes sense since the DNA-RTC board is not sold or serviced by Parallax.
It is kind of a shame that one pays a pretty penny for these boards, and yet you cannot use them for full board functionality. For the past couple of years, every time the question of COGs in XMM/XMMC comes up, the answer is "Real soon now".
So for my DNA-RTC board, I guess I could just pull the memory chip out, and use it for ...?
As for the C3 board, I guess I can use the extra memory space as long as I write programs that do not use any COGs. Maybe there is a way to introduce interrupts (tasking) to replace the functionality of COGs.
Ray
There are instructions for compiling it at the start of the file. You can run it with the following command:
propeller-load -b eeprom multi-cog-xmmc.elf -r
Thanks, David Betz. I used your example, after I modified it a little, and it seems to be working as expected for the C3 board. I hooked up two LEDs and both were blinking while in XMMC mode.
For my DNA-RTC board, I could not get it to work. There were no compile errors, and it seemed to be loading the correct memory helper dat file, but no blinking LEDs, Not sure what is going on with that board. I guess it needs a special handling procedure.
Ray
Thanks, David Betz. I used your example, after I modified it a little, and it seems to be working as expected for the C3 board. I hooked up two LEDs and both were blinking while in XMMC mode.
For my DNA-RTC board, I could not get it to work. There were no compile errors, and it seemed to be loading the correct memory helper dat file, but no blinking LEDs, Not sure what is going on with that board. I guess it needs a special handling procedure.
Ray
I have an early DNA board that I could try. Now I just have to find it! :-)
By the way, how are you using the DNA board? Are you using the EEPROM external memory driver like my example or are you using its onboard SPI flash? If you're using the flash chips, what type do you have installed and what external memory driver are you using (the -b option in propeller-load)?
Compile - propeller-elf-gcc -Wall -c "%f"
Build - propeller-elf-gcc -Wall -mxmmc -o "%e" "%f"
Execute - propeller-load -b DNA:SQI-SRAM -D var=cache-driver -p COM6 -r "./%e"
On the DNA board I tried all three versions, DNA:SPI-FLASH and DNA:SPI-SRAM, and none of them worked. I also have one of the early DNA-RTC boards. I n both tests I used the available memory and not the EEPROM.
Hope this helps.
Ray
$ propeller-elf-gcc -mxmmc -Os -o test.elf test.c$ propeller-load -b dna:spi-flash test.elf -r
Maybe there is an issue with GCC5? I'll have to try building that but not tonight. Sorry!
I double checked this while using SimpIeIDE by trying to run a plain program in the different memory modes, the only one that worked was DNA:SQIHI, and using XMMC External Flash... So, I am not sure if it is just a quirk with my board or something has drastically changed with my hardware. Now I seem to recall a conversation about this with jazzed, back three or four years, and I remember he did confirm the issue, concerning DNA:SQIHI and XMMC External Flash... , at that time. Not sure what can be done about this.
Ray
Ray
It's very good that brave souls such as yourself do that though, it uncovers problems to need to be fixed earlier.
The reason I ask is when PropellerIDE and SimpleIDE get stalled for many, many months, and the only alternative that used to be available, is to work with the latest and greatest PropGCC binaries, now what do you do? Or is the main goal of Parallax is to provide an area for PropGCC files, and if you want to go any further, have at it? Things are a changing around here.
Ray
Ray
I don't understand this. There is no dna-nway.cfg file in my copy of propgcc. Try using GGC4 the way I did and let me know if that work for you.
We're not allowed to release any new versions of PropGCC until they are "qualified" whatever that means and there doesn't seem to be anyone with the time to do that. I don't know what's happening with SimpleIDE. I thought that version 1.0 was done.
As for the DNA-RTC board that I have been trying to make useful, it is going back into the box, that gets pushed to the back of the closet. Lessons learned, either design your own boards or just stick to whatever Parallax supports. Tired of the chaos.
The new darling on my desk is now the C3 board, which so far, has the potential to work as envisioned by me, for some experiments that I will be doing. It seems that with CMM5 Win32(is there a Win64 version?), it will allow the use of COGs in the XMM mode. There has always been talk about how "slow" it gets, using COGs in XMM mode, and whatever that means. I guess now I will be able to determine how the "slow" gets implicated in what I am doing, and I can determine what is best for my experiments.
Sad to say I have noticed, as far as PropGCC is concerned, jazzed is gone, Dave Hine is showing up less and less, Eric Smith rarely stops by, David Betz is somewhat available, and Parallax is doing other "things". So, what does that tell you about the future of PropGCC.
Ray
I have to take issue with the statement "This is [property] their property".
Certainly it runs on Parallax owned servers and consumes electricity and bandwidth that they pay for. And no doubt legally they can claim ownership of the content of the database.
That all means naught compared to the enormous amount of time and effort expended by the contributors to the forums over many years. All those questions and answers, advice, project descriptions etc etc etc.
Anyone who has made a significant contribution to the forum has earned the right to complain and grumble when things are not going well. As many respected members here have done recently.
I do hope your fears of this thread starting to sink, just because you are expressing the difficulties with prop-gcc, are ungrounded.
Sadly I cannot offer any help having never tried to use prop-gcc on Windows or having any experience with your board.
@Heater., thank you for your contributions, but I take exception to your exception. I state my opinions here, and only my opinions, I do not speak for anybody else or even presume to know why other people make contributions. If it is for some kind of implied sweat equity in the Parallax forum, then maybe those people should be up front as to why they are really here. At least then I can decline to have that person make the contribution, for me.
As I said earlier, this forum belongs to Parallax, and in my opinion, I am not looking for any kind of implied sweat equity in this property. When I cannot find the answers that I am looking for here, then I will go somewhere else. I consider my self to be a visitor here, and I act according to the Parallax established rules.
On to other things, for the time being the C3 board, not sure how this will end...
Ray
I don't think Parallax is pushing for any changes to PropGCC or SimpleIDE, so the only activity on them would be bug fixes. I think a lot of us are in holding mode waiting for the P2. Once the P2 FPGA image is available there will be a flurry of activity on tools that are associated with it.
I'm not sure if Parallax realizes how important the P2 is to their future. If they had realized the importance they would have been much more focused on getting the P2 out ASAP. Instead, they seem to have squandered some of their resources on P1V, the 1-2-3 FPGA board and other activities that have taken up some portion of Chip's time. It also seems that Chip is doing most of the work himself rather than offloading some of his work to others.
Also, here's the links from that post, just to save you some time
GCC4Win32
GCC5Win32
Thanks for posting the links. I guess we need to ask Parallax to create a page that we can update that contains these links so people don't have to wade through the forums to find them.
David