Shop OBEX P1 Docs P2 Docs Learn Events
GCC / Eclipse and Propeller 2 - seeking developers - Page 20 — Parallax Forums

GCC / Eclipse and Propeller 2 - seeking developers

11617182022

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-06-13 16:44
    Ken,

    Could you reconcile these two statements for us, please? At first blush (and, perhaps, yanked out of context), they seem to be at mutual odds -- or at least entail some redundant effort.
    The existing Parallax Propeller Tool created in Delphi will also be improved to support Spin/PASM in Propeller 2.
    The objective would be to make BST take the place of the Propeller Tool, open-sourcing the code.

    Thanks,
    -Phil
  • Ken GraceyKen Gracey Posts: 7,401
    edited 2011-06-13 16:56
    Ken,

    Could you reconcile these two statements for us, please? At first blush (and, perhaps, yanked out of context), they seem to be at mutual odds -- or at least entail some redundant effort.

    Thanks,
    -Phil

    Yes. You are asking why we would put effort into our Propeller Tool and then consider a jettison of it in favor of an open-sourced BST. If BST does everything the Propeller Tool does feature-wise yet it also runs on multiple platforms and has the potential to be open-sourced it seems reasonable to make it the "official Propeller Tool". The reason we would put effort into the Propeller Tool in the meantime is because customers have posed a long-standing list of improvements. Next, we need to take the time to compare BST on our own and talk to Brad about the possibility of sharing the code. Not knowing whether or not the idea of open-sourcing BST is a possibility [and that Brad or other developers wish to work with the code base] it is only practical to continue development of the Propeller Tool. We have obligations to our customers to make certain improvements.

    And just for fun. . . Phil, I know how you feel about the Propeller Tool (you like it, and couldn't imagine living without it, right?). Maybe we could buy you a Delphi license and you could live in Jeff's world for a while to see what maintenance is all about with some of these closed-source components.

    Please let me know if I answered the question.

    Thanks,

    Ken Gracey
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-06-13 17:19
    Thanks, Ken. I think that answers my question: IOW, you're in a quantum superposition state right now. :)

    Despite appearances, I'm not all that wedded to the Propeller Tool -- just to whichever tool receives Parallax's anointing as the "official" dev tool for Spin/PASM. If Parallax ditched the IDE in favor of BST tonight, I'd be on it by morning.

    BTW, I've been in a world similar to Jeff's before -- many years ago -- with VB3 and VSVBX (a closed-source third-party add-on). Third-party add-ons make life easier and shorten development time, but eventually the handcuffs begin to chafe. I suspect that's currently the issue with the IDE's edit module. It's certainly a big reason that I switched from VB to Perl/Tk for my own PC programming, and I haven't looked back.

    -Phil
  • RossHRossH Posts: 5,517
    edited 2011-06-13 18:28
    Ken Gracey wrote: »
    An instruction set should follow soon and will be posted here http://www.parallaxsemiconductor.com/Products/propeller2specs. Provided the improved specifications are sufficient to give developers the background they need, we would move to the next step.

    Hi Ken,

    That's good news - thanks for the update. The instruction set is really all we need at this point to progress many of the initiatives currently under way. Someone should stop Chip from responding to any more forum posts :lol:!

    Ross.
  • David BetzDavid Betz Posts: 14,516
    edited 2011-06-13 19:12
    Thanks for the update Ken! I'm glad the GCC project is going to move on to the next phase. Let me know if there is anything I can do to help.

    David
  • SapiehaSapieha Posts: 2,964
    edited 2011-06-13 20:01
    Hi Ken.

    I'm are not for private forum --- BUT if it is readable for ALL -- Only posting open for that people You need.
    I'm not much for summaries -- As them hide most of things that can be of interest for others.

    Best case --- Open 2 THREADS one for developers only posting (Closed posting from others) - Other for comments from ALL.
    Else You will be missing much support from community. NOT good for Propeller II else Propeller I to.

    As Parallax was open in discussions - HIDING now that will NOT give good publicity for Parallax!
  • jazzedjazzed Posts: 11,803
    edited 2011-06-13 23:43
    Ken Gracey wrote: »
    Team Framework

    We quickly recognized that we don’t have the staff resources or expertise to do this in-house. Parallax Semiconductor has formed an agreement with Steve Denson (jazzed) to be our Technical Liaison. His role consists of working on our behalf to assemble the team (both paid and community contributors), to review the scopes of work, to assemble the schedule and to interpret various technical issues to Parallax Semiconductor. Parallax will be the Project Manager (Jeff Martin and I).

    Thank you Ken. I look forward to serving Parallax in the Technical Liason capacity.

    I will begin contacting principal contributors tomorrow. I want it to be clear that my role is not that of a contractor with sub-contractors. We are all responsible directly to Parallax. Parallax will negotiate terms and contracts as Project Manager.

    Actual work can not start until point 1 of Ken's "Process" is complete, but preliminary arrangements regarding roles need to be discussed with contributors.

    My goals are what Parallax wants. Ken has made the goals very clear today.

    There are several respected members of this community who have competencies in the work that Ken has described. Candidates have been identified and competent engineers have stepped forward on a voluntary basis. There is room for more volunteer contributors. Everyone who participates will be rewarded in some way ... I can't make promises at this point, but surely you know what types of rewards for volunteers make sense.


    Here is my vision which complements and extends Ken's Process:

    Product requirements definition.

    The product requirements definition is the most important aspect of the project. We have the basics now, but there is more requirements work to do. Contributors will provide their expert responses to the product requirements. I expect demo application volunteers with project specific competencies will be invited to participate in the product requirements discussion. The product requirements will be posted publicly for the full community to consider and offer suggestions.

    Detailed design specification and implementation.

    Once the resources, scope of work (including feasibility studies), and development schedule and milestones are defined, the detailed design specification and implementation phase will begin.

    A design specification is an engineering response of how the project requirements will be met. This is up to the principal Engineers to produce and implement as they see fit with approval of Parallax and other team members at the design review. All developers will be required to do unit testing in addition to engineering. Developers will also provide implementation reviews for major components and source code should be reviewed. There are certain centralized resources that will be provided for maintaining the safety of investments and work performed.

    In the USA, contractors must have certain amounts of independence to maintain contractor status in terms of our tax authority, the IRS. We will respect the needs of contractors which include being able to do work without unreasonable outside interference. Sometimes hard decisions are made that some people will not like. Some of those decisions have been made and posted today.

    Near the end of design implementation, independent testing will start.

    Independent testing is a key phase in several ways and will open up the project to more of the community. We will need device drivers to be written. We will need demo applications. What do contributors get in return? Recognition and resources required to develop applications. Resources will be allocated as needed to volunteers.

    Pre-release Customer Beta Testing

    Part of the engineering effort after independent testing is Beta testing. Beta testing will not start until all development problems are resolved (which will include root cause analysis). Beta testing is an opportunity for engineering to deal with problems that may have been missed during development and independent community testing.

    Beta is also an opportunity for marketing with existing large customers. One of the tasks required is identifying appropriate beta testers.

    Ongoing Maintenance

    Ongoing maintenance after general availability is a fact of life in the development cycle. Bug fixes may be required. New features are often required for platforms after general availability - this is part of maintenance. The approach to maintenance is not perfectly clear yet, but needs to be established.

    A project post-mortem is a standard item that should be considered in due time.


    As Ken suggests, I'll be creating another thread for project status. Most likely weekly updates will occur on Monday/Tuesday. Any reviews and milestone achievements will also be posted in the status thread.


    Thanks for your time.
    --Steve
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-06-14 02:37
    WoW!
    This thread has gotten huge! I should have been paying attention.
    It will take me hours to catch up. Is there anything posted anywhere
    yet that details the asm instructions for the P2?

    I really do enjoy coding in C so I'm glad that parallax is moving in this
    direction for the P2. I guess that it's decided that the IDE will be cross
    platform and have integrated GCC port and a nice (macro) LMM assembler?
    Is there to be a built in simulator? Any sort of C code generator like
    perhaps to generate code to create video drivers? Or will it be reliance solely on
    gold standard OBEX code for this sort of thing? (I just love code generators)

    It will be fun to write some C library functions when it gets to that point.

    Is anyone thinking of a beginners C language book for the P2 yet? It
    would be nice if such a book was free as a PDF and low-cost as a printed
    copy.

    It's lucky for all that RossH is here for this project. Catalina certainly proves he
    knows what he is doing :-)

    Lots of people joining together to create something like this can be hard to manage
    though. Like the old saying that when you get two Jews together you will have at
    least 3 opinions on any topic..LoL (it's quite true and not just of Jews I'm afraid)

    From the rough notes for my beginners C book for AVR
    C is not a perfect computer language, it does have a few blemishes.

    But if you want to learn how to program microcontrollers then C is the most important language you need to master. C is the unofficial, official language of the embedded systems world.

    Luckily C is a very simple and small language. It is easy to learn the basics in just days or at most a few weeks. When programming controllers there are parts of the C language you will rarely use, this further minimizes the effort needed to master C for embedded work.

    The quickest way to pick up any new language is to start by making small modifications to example programs, and that is how we shall proceed.
    No, I'm not a world class writer....but I'm enthusiastic :-)

    "The difference between a word and just the right word is the difference between lightning and the lightning bug" Mark Twain
    (I'm still chasing after the lightning bugs I'm afraid)
  • RossHRossH Posts: 5,517
    edited 2011-06-14 03:24
    Hi Holly,
    Is there anything posted anywhere yet that details the asm instructions for the P2?
    Apart from various posts about individual instructions, I'm not aware of anything yet - its what we are all waiting for!
    It's lucky for all that RossH is here for this project. Catalina certainly proves he knows what he is doing :-)
    Thanks for the kind words, but I'm not part of the GCC/Eclipse effort. However, I do expect to be producing a version of Catalina for the Prop II. I've also just finished the proper integration of Catalina with Code::Blocks, so now Catalina has a real industrial-strength IDE. I will be releasing a Code::Blocks plugin shortly, and I'm also hoping to have this plugin integrated back into the official Code::Blocks release stream so that I don't have to do this every time.

    Ross.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-06-14 03:55
    That's great RossH. And code blocks is really cool.
  • BatangBatang Posts: 234
    edited 2011-06-14 04:55
    I second Code::Blocks IDE.
  • octaloctal Posts: 67
    edited 2011-06-14 05:40
    Hello,
    Code::Blocks is **NOT** a good base for new product. It's based on wxWidgets framework, which is ugly under MacOS/X. QT is by far the way to go if you had to implement a (native) cross platform IDE. QT provides also a huge number of classes not related to GUI, like a whole cross platform api for network communication and a whole set of classes for XML handling.
    As for the IDE, you can start using QT Creator IDE, it supports C/C++ and is completely integrated with GCC and GDB. It would not be too difficult to make it support other tools needed for Propeller, and it's completely open source.
    As for Netbeans and Eclipse, I would say Eclipse, because it's largely supported in embedded community, because its APIs are really very well documented and there are a lot of doc/books about it and its plugins, and because I know it's API very well (for having developed a complete plugin for Microchip ASM with complete MPASM integration and syntax highlight).
    Microchip used Netbeans far before buying HITEC, I think that if they bought HITEC before their decision, they would have reused HTIDE (based on Eclipse) instead of Netbeans. The main problem I can see with Netbeans now, is in Oracle strange policy in managing Java and all derived products they got hand on when they acquired SUN.

    I would not recommand using .NET. While Visual Studio provides an excellent API to create plugins for its IDE, the problem is that you don't have cross platform. MONO (the port of .NET to Linux) is uncertain because of recent changes at Novell (and Miguel de Icasa having left the project to create his own company ...). If you dont want problems, avoid .NET !!! (btw I dont have have anything against .NET, I use it a lot for my IT devs ;) ).
  • LeonLeon Posts: 7,620
    edited 2011-06-14 06:12
    I think that Rowley used Qt for their IDE.
  • octaloctal Posts: 67
    edited 2011-06-14 06:16
    yes Leon, Rowley used QT, I can confirm it!
  • Heater.Heater. Posts: 21,230
    edited 2011-06-14 06:22
    So,

    0) Avoid .NET and Visual Studio because it is closed source and not cross-platform.
    1) Avoid .NET and Mono because "...is uncertain because of recent changes at Novel"
    2) Avoid Code::Blocks because it uses old fashioned wxWidgets and is not hot on Mac.
    3) Avoid Netbeans because "...Oracle strange policy in managing Java and all derived product"
    4) Therefore avoid Eclipse because its written java and subject to 3) above.

    To which I would add:

    5) Avoid QTCreator because it's Qt based and Qt now belongs to MicroSoft (via Nokia) and will soon be out on the street looking for a home.

    That about wraps it up for all the great IDE's, it was fun but the party is over. Makes me glad I still have a command line and vim:)
  • octaloctal Posts: 67
    edited 2011-06-14 06:28
    Hi Heater,
    #5 is false, QT is not a Microsoft product, and Microsoft didn't acquired Nokia.
    #4 I cannot completely agree on it. Eclipse is based on Java, but Eclipse is also managed by a foundation having almost all 20 big companies (IBM, Microsoft, TI, ...) supporting it. Netbeans instead is the property of SUN and thus is now the property of Oracle. Oracle cannot kill Java because it has a lot of products based on it, but it can kill Netbeans (OpenOffice has already been a victim of Oracle policy).

    For a good IDE, I think either Parallax should develop something based on QT or Eclipse!
  • Dave HeinDave Hein Posts: 6,347
    edited 2011-06-14 06:28
    Avoid IDE's. Command line is the way to go! :D
  • octaloctal Posts: 67
    edited 2011-06-14 06:34
    Dave Hein wrote: »
    Avoid IDE's. Command line is the way to go! :D

    Geek discour !!!

    While Emacs (+Pascal) was there for tens of years, VB and Delphi made $$$$$$$ more profits for thousands of companies!

    While I certainly would prefer to use something like vi to code a bash script under Linux, I would not waste time trying to figure out the type of the 4th parameter of the function that returns the handle of active socket ;)
    IDEs have their pro and cons, but if you use something like Eclipse or Visual Studio, with the huge ammount of classes of the frameworks (Java/.NET with their third party libs), no one can arg to be more productive using vi or Emacs instead of language sensitive tools.

    Parallax would like to provide easy to access tools for education and new commer to its technologies. Forgot geeks and answer common mortals needs if you want to succeed in commercial world ;)
  • BatangBatang Posts: 234
    edited 2011-06-14 06:40
    Aaahh Java:)
    1024 x 728 - 172K
  • RossHRossH Posts: 5,517
    edited 2011-06-14 07:00
    That's great RossH. And code blocks is really cool.

    Yes, I'm not a big fan of IDEs in general, but Code::Blocks is certainly one of the better ones. Not only does it seem to have all the desirable features, but (in keeping with the minimalist nature of C) it has very little more than that. It just "feels" like a product designed by C/C++ programmers specifically for C/C++ programmers. You never feel there are a whole bunch of useless features in there that have been bolted on because they might be necessary in some of the more bloated languages - or because someone in a Marketing department somewhere wanted some fancy features to differentiate it from the competition.

    It's also possibly the easiest IDE for integrating a new compiler (even a slightly unorthodox one like Catalina) - which makes me think that the people who designed it just know what they're on about. For example, as well as the compiler plugin, I thought I would need to write another plugin specifically for downloading the programs via payload, and/or launching the blackbox debugger - but I just added a couple of simple menu items, and now I can compile the project with one button click, then download it to the Propeller and launch a source code debugger on the result - all with one menu selection!

    Ross.
  • SapiehaSapieha Posts: 2,964
    edited 2011-06-14 07:08
    Hi Dave.

    I'm not with You.


    IDE with command line connected Compilers -- Only way to GO.



    Dave Hein wrote: »
    Avoid IDE's. Command line is the way to go! :D
  • Dave HeinDave Hein Posts: 6,347
    edited 2011-06-14 07:51
    Sapieha, I did put a smiley on my comment. For the Prop 2, both an IDE and a command-line interface are needed. I don't have much of an opinion on the IDE, but I would lean toward using Qt.
  • David BetzDavid Betz Posts: 14,516
    edited 2011-06-14 07:58
    While I do use GUI development tools (Visual Studio Express, XCode, BST, PropellerTool), I don't really have much interest in discussing them. Would it be possible to split this thread into two, one covering the command line tools and the other covering the GUI? It would make it much easier for people interested in one or the other but not both to follow the relevant parts of the discussion.

    Thanks,
    David
  • octaloctal Posts: 67
    edited 2011-06-14 08:00
    Concerning GCC ...
    I want to understand something. Is Parallax going to make a GCC backend that will generate true Propeller ASM, or will it generate code for a virtual machine ?
  • jazzedjazzed Posts: 11,803
    edited 2011-06-14 08:16
    octal wrote: »
    Concerning GCC ...
    I want to understand something. Is Parallax going to make a GCC backend that will generate true Propeller ASM, or will it generate code for a virtual machine ?

    Ken said this: "To meet this goal we are furthering our plans to create a GCC tool-chain that will be generating LMM type executable instructions from C/C++ sources. "

    LMM is a virtual machine type that executes PASM instructions.

    Is it important to have a C compiler that will generate COG only PASM instructions?
    Would it make a difference in your decision to choose Propeller 2 for your product?
  • Dave HeinDave Hein Posts: 6,347
    edited 2011-06-14 08:17
    Based on Ken's recent posts, a team of non-Parallax personell will develop a GCC backend that will produce LMM PASM. LMM PASM does use a VM that executes native PASM instructions, but also contains psuedo-ops for performing jumps and instruction caching. I'm sure there will be other psuedo-ops for performing other higher level operations.
  • octaloctal Posts: 67
    edited 2011-06-14 08:26
    jazzed wrote: »
    Ken said this: "To meet this goal we are furthering our plans to create a GCC tool-chain that will be generating LMM type executable instructions from C/C++ sources. "

    LMM is a virtual machine type that executes PASM instructions.

    Is it important to have a C compiler that will generate COG only PASM instructions?
    It's always good to have a native compiler ;)

    I was just asking because I think that to native PASM for a cog, GCC is not the best choice (the backend is not that good to target such parallel architecture).
    Another thing to consider when dealing with GCC, is would it be correct to use actuall GCC base that will be aboundouned in few years, or would it better to switch completely to LLVM (with CLANG front end) which may take more or less time, but which has better support and less bloated code than original GCC.
  • Dave HeinDave Hein Posts: 6,347
    edited 2011-06-14 08:29
    jazzed wrote: »
    Is it important to have a C compiler that will generate COG only PASM instructions?
    This item had a score of about 5 or 6 out of 10 in the survey. In my opinion, its importance depends on how efficient LMM PASM is, and also how efficiently C would compile to PASM. It would be nice to be able to write efficient drivers in C.
  • octaloctal Posts: 67
    edited 2011-06-14 08:43
    jazzed wrote: »
    Would it make a difference in your decision to choose Propeller 2 for your product?

    No, I think the main decision factor will be analog properties of Prop2.
    I really don't know where Propeller 2 will fit in the way users solve problems. Having a huge number of pins, more ram, more speed, ... very few ram per cog :( I don't know.
    Maybe Parallax should think to make a version that have less pins in a DIP package (and a 48 LQFP package) ... DIP is the way to success in schools and education.
  • SSteveSSteve Posts: 808
    edited 2011-06-14 09:04
    octal wrote: »
    Maybe Parallax should think to make a version that have less pins in a DIP package (and a 48 LQFP package) ... DIP is the way to success in schools and education.

    Parallax isn't positioning the Propeller 2 for schools and education. The current Propeller will fill that role. From Ken's message above:
    Ken Gracey wrote:
    Propeller 2 is not a replacement for Propeller 1 due to a higher cost, and Propeller 1 provides plenty of horsepower for the educational customer projects that will be showcased on the PropBOE.
Sign In or Register to comment.