How to create our own stable IDE - Page 1
Forum section: electronics / general

author: VIGNESH BALAJI
author_rank: Newbie
timestamp: February 12, 2016, 06:05:23 am
content: Hi,I want to create my own stable IDE.I want to know how to do it???

author: ataradov
author_rank: Super Contributor
timestamp: February 12, 2016, 07:13:28 am
content: Quote from: VIGNESH BALAJI on February 12, 2016, 06:05:23 amThat's a very broad question. Let's start with a stable OS first.What is "stable" in your opinion? What do you expect from that IDE?Quote from: VIGNESH BALAJI on February 12, 2016, 06:05:23 amWe all do.

author: filssavi
author_rank: Frequent Contributor
timestamp: February 12, 2016, 08:08:49 am
content: Well writing a (somewhat complete) IDE from scratch is very difficile task, mainly because of the sheer ammount of things it has to do to be functional, in fact for every drveloper IDE means a differenti thing which build system are are you going to support, which compiler and debugger remote debugging?And alla of these features are what defines an IDE, otherwise you have only a glorified text editorWhat i suggest doing is to start from a well known Open Source IDE that everyone loves to hate (eclipse), pick a version (the last stable?) fork it and start bugfxing until you have a relatively smooth experience, and than you are fine you have a stable IDEBonus points if you push the fixes to mainline

author: VIGNESH BALAJI
author_rank: Newbie
timestamp: February 12, 2016, 12:33:44 pm
content: Yeah I can use Eclipse latest version Mars.Will that be stable in the sense without any bugs?I want to Basically use it for Kinetis microcontrollers.My basic requirement is good debugging and good GUI for IDE which has many plug-ins like static and run-tiime analysis.Please suggest me how to integrate Eclipse with GCC and any good debugger.

author: dannyf
author_rank: Super Contributor
timestamp: February 12, 2016, 12:47:11 pm
content: coide supports kinetics as well. You can also embed PE manually in your project.Stepping back further, coide can be made to support pretty much any CMx chips - even if the IDE itself doesn't support them directly, as you can always manually add the support yourself.

author: newbrain
author_rank: Super Contributor
timestamp: February 12, 2016, 01:45:25 pm
content: Quote from: dannyf on February 12, 2016, 12:47:11 pmI wouldn't go for coide, apart from being long dead (no updates in 8 months and just spam on the forums) it's always been quite buggy...much more than the base Eclipse.If one wants to stay on Eclipse, and build on something already working, I would go forGnu Arm Eclipse plugins. All the source code is available.Proprietary environments exist, with all kinds of prices, in addition to the free as in beer and as in freedom ones...

author: dannyf
author_rank: Super Contributor
timestamp: February 12, 2016, 02:21:27 pm
content: QuoteI have used coide since 1.3 and now am on 1.7, and with a few projects under its belt. I have had no problem with it. The project wizard is absolutely superb and I suspect was the inspiration behind Keil's RTT.Since it is really GCC + Eclipse, you don't have to have CoIDE update going forward.Another choice is emblocks -> I have been its user since day 1 - still on beta 1.0 - but almost exclusively with PIC24F. Absolutely love it.

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: February 12, 2016, 03:27:41 pm
content: Quote from: VIGNESH BALAJI on February 12, 2016, 12:33:44 pmSurely you're joking.

author: artag
author_rank: Super Contributor
timestamp: February 12, 2016, 03:54:29 pm
content: Why do people want an IDE ?The only use I've found for them is for a quick intro, where you lead the user through a series of simple exercises. They can be helpful there in providing a very controlled environment that corresponds directly to a tutorial. As soon as you want to get into something a bit more complex with a need for link control and more than one source directory, they mostly get in the way. And they present only a subset of the operating system's toolset, so as soon as you want to do something more general you're out of it.Unix is the world's best IDE in the full sense of the phrase. It was designed by developers for their own purposes, and the vast majority of it is integrated through pipes or shared files. It isn't like what passes for an IDE in the GUI world : it's many times more integrated with the bits that really matter, while allowing complete generality in extensions.Most of all, the project files are all of the form that can easily be handled by source code management - they're not intended to hold internal IDE state, but are the links between ascii-driven tools. Thus it's easy to look at differences between versions and store history in a useable form. This is essential for a professional development.Eclipse seems to have set out to bring similar flexibility in a GUI world, but imho fails badly. It introduces extra dependencies and provides all sorts of facilities that merely replicate features of the operating system. I recently had the misfortune to work with an eclipse-based IDE that had constructed projects as a number of virtual directories. These were completely unmaintainable, with complex methods to find what was actually included and the need to introduce new files through the unintuitive IDE interface rather then by merely adding them via the familiar OS tools.

author: nctnico
author_rank: Super Contributor
timestamp: February 12, 2016, 03:59:32 pm
content: Quote from: artag on February 12, 2016, 03:54:29 pmThe answer is simple: code management. IDEs can be divided in 3 basic categories:1) editor with compile button stuck on it and tools to aid the build process2) 1 and debugging3) 1 and 2 and code management and version control integrationCode management (finding functions, call hierarchies, finding defines, realtime syntax checking, etc) helps to work through huge projects quickly. Version control integration makes it easy to deal with various versions and look for differences/updates. Eclipse falls into category 3 and improves productivity a lot. Sure you can do everything using command line tools but for general use that is way to cumbersome. Only for very special cases command line tools offer an advantage.

author: dannyf
author_rank: Super Contributor
timestamp: February 12, 2016, 04:13:47 pm
content: Quoteease of use, retargeting and project management.

author: dannyf
author_rank: Super Contributor
timestamp: February 12, 2016, 04:30:00 pm
content: the largest project I ever compiled is a motor cycle speedo project: CMSIS, vendor libraries, RTT, corporate middleware, emwin, a file system + an os layer, plus imagine files. a few hundred files, and 1MB+ flash. It took 15 - 20 minutes to compile on Keil.it would be a little tough to navigate through such a project.

author: Mechatrommer
author_rank: Super Contributor
timestamp: February 12, 2016, 04:30:23 pm
content: Quote from: artag on February 12, 2016, 03:54:29 pmhow do you debug? i'm guessing if you dont have a need for interactive debug, then you havent been quick intro'ed with real world softwares.. a software with one or two buttons and textboxes doesnt need debug, yes that one i agree...Quote from: artag on February 12, 2016, 03:54:29 pmso is that the reason why most top class engineering, artists, photography videography softwares are being developed in Windows? oooppssss sorry, in Unix/Linux?

author: bigdawg
author_rank: Regular Contributor
timestamp: February 12, 2016, 06:55:31 pm
content: Quote from: Sal Ammoniac on February 12, 2016, 03:27:41 pmmaybe I am missing something here....I use eclipse as my primary IDE and I have had no major complaints with my projects on eclipse 4.x for variety of software development. Now, talking about STM HAL...thats a whole different issue

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: February 12, 2016, 06:57:25 pm
content: Quote from: bigdawg on February 12, 2016, 06:55:31 pmHe said "withoutanybugs". No significant piece of software, including Eclipse, is completely bug free.

author: bigdawg
author_rank: Regular Contributor
timestamp: February 12, 2016, 07:05:20 pm
content: Quote from: Sal Ammoniac on February 12, 2016, 06:57:25 pmlol gotcha; no harm in dreaming for a "bugs free software"I thought maybe you were alluding something more specific regarding eclipse 3.8 vs 4.x versions since OP specifically referred to "mars" versions.

author: miguelvp
author_rank: Super Contributor
timestamp: February 12, 2016, 07:12:00 pm
content: Some have used Notepad++ to create their own IDE, because writing plug-ins is fairly trivial and you can issue commands from it.

author: artag
author_rank: Super Contributor
timestamp: February 12, 2016, 08:03:03 pm
content: I debug in various ways - with a GUI debugger like Lautenbach, with printfs, with an oscilloscope. It all depends on the job. I don't mean that every tool has to be command-line (though that's always easier when you're doing a quick hack to convert things for automated builds), just that their communication works through text files. I enjoy using a good debugger and it's a perfectly respectable use-case for a GUI, as is a source-code editor or browser. But I don't need them all to be in the same tool, because that tends to give me a screen crowded with useless inactive subwindows when I'm doing another function.One IDE I tried was Atollic : that tries to reconfigure its window to suit the job you're doing. Horribly confusing. And so pointless : you already have a windowing system capable of maintaining multiple contexts for you. Why build another one on top of it ?Quote from: Mechatrommer on February 12, 2016, 04:30:23 pmNo, that's because that's where they see their customers. Macs for art stuff. Engineering demos in Windows because it's the lowest common denominator - they can assume everyone will have access to one, and that's good enough for a demo. Consumer stuff for windows, because that's what 'family users' buy. The only puzzle is Autocad, which clings to Windows for some unknown reason. Probably because the big design tools all started on Sun and Apollo, moved off it because they got too expensive for their customers, and now don't have the wit to move back.

author: artag
author_rank: Super Contributor
timestamp: February 12, 2016, 08:06:20 pm
content: Quote from: nctnico on February 12, 2016, 03:59:32 pmBut code management wants to be automated. A source browser is interactive, true. But that's mostly useful when you're introduced to a system (which could be important if you have a high staff turnover). Build systems, version control, test suites, are all better scripted, and command line (or text processing, more correctly) is easier for that.

author: andyturk
author_rank: Frequent Contributor
timestamp: February 12, 2016, 08:45:08 pm
content: Quote from: artag on February 12, 2016, 08:06:20 pmThis.The big advantage of "command line" is that you can easily incorporate new tools into your environment. E.g., I can write a Python program to generate some C++, which then gets compiled into the build. Or calculate a bunch of code metrics, add them into a sqlite3 database, and generate reports from there. And if someone else writes some really interesting Lisp code to talk to the version control system (from inside emacs), I can use that too. Command-line pieces fit together easily because they all use text to get work done.Extending an IDE is much harder because they're (generally) monolithic, written in annoying languages, and use obnoxious file formats to represent state information.

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: February 12, 2016, 08:47:47 pm
content: Quote from: artag on February 12, 2016, 08:03:03 pmWith Linux desktop usage historically at never more than 2%, it's easy to see why few professional development package vendors go out of their way to support it.

author: nctnico
author_rank: Super Contributor
timestamp: February 12, 2016, 09:05:31 pm
content: That 2% is on average. In engineering the use of Linux is much more widespread. A poll on this forum indicated over 25% uses Linux as a primary OS. Xilinx wouldn't care to support Linux if only 2% of their users used Linux!

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: February 12, 2016, 09:14:34 pm
content: Quote from: nctnico on February 12, 2016, 09:05:31 pmInteresting. I suspect that a large proportion of the people on this forum are hobbyists. I wonder what percentage of professional developers use Linux?

author: ataradov
author_rank: Super Contributor
timestamp: February 12, 2016, 09:32:38 pm
content: Quote from: Sal Ammoniac on February 12, 2016, 09:14:34 pmFor FPGA a lot. Both Xilinx and Altera tools work way better and fully utilize multicore systems on Linux. But with Xilinx tools, you can also see that they were originally developed for UNIX. Some of really old stuff shines through in placesThat does not apply for free Web-editions, which are locked to a single core anyway.It also helps that the rest of the toolchain from third-party vendors (like Multisim) are also fully supported on Linux.

author: ehughes
author_rank: Frequent Contributor
timestamp: February 12, 2016, 11:20:28 pm
content: Kinetis Design studio is vanilla Eclipse + gnu arm embedded + open OCD in a nice package. Save you self some time and just use it. It is all open source if you feel like working on an IDE

author: uncle_bob
author_rank: Unknown
timestamp: February 13, 2016, 02:25:00 am
content: Quote from: ehughes on February 12, 2016, 11:20:28 pmHiAnd you now have the "fully finished" KSDK ver 2.0 to go with it....Bob

author: uncle_bob
author_rank: Unknown
timestamp: February 13, 2016, 02:39:17 am
content: Quote from: VIGNESH BALAJI on February 12, 2016, 06:05:23 amHiIf you want a 100% perfect IDE, you will need far more resources that you can afford. I suspect that a "from scratch" bug free IDE is probably well over a thousand man years of effort.If you hire 100 guys for 10 years, you get an IDE. At this point it is perfect *and* it supports the parts that were out on the market 10 years ago. In those 10 years, you have had ample time to find all the errors in the manufacturer's data sheets. You also have been able to test a few thousand MCU's to find all of the places the silicon it's self has bugs.Unless you either have a major budget, or are happy working on an IDE pretty much forever, this is not a road to go down. You will spend *far* less time working through the bugs in something like KDS (like by a factor of 1,000) than you will writing an IDE from scratch.Down the road from us, there is an outfit that has taken a somewhat less ambitious approach. They decided to build their own IDE on top of Eclipse. Nothing super fancy. More an in-house customization than anything else. Last time I checked, they had five guys full time on supporting the effort. That's a lot of expense. For them it made sense. It lets them move designs between different vendors and *know* that the design will work. It eliminates the "tool chain lock in" that binds you to a specific vendor. They can grab an ARM from any of their vendors and swap the designs around.So, can it be done - sure. Is it a lot of work - yes indeed it is. Do you need a pretty narrow scope to get it working any time soon? Most certainly.=======The only rational way to go on Kinetics is KDS if you are doing this as a hobby. If you have a real budget, Kiel and IAR are both out there. They are dependent to some degree on the same "stuff" as KDS. That sort of reduces the advantage you get from them if "perfection" is your goal.BobBob

author: VIGNESH BALAJI
author_rank: Newbie
timestamp: February 13, 2016, 11:27:33 am
content: Sure,I used KDS Felt difficult to migrate my earlier project to KDS faced GDB server Errors.Has Anyone used Bare Eclipse and added The GNU toolchains and used for your Microcontroller Projects?

author: rob-from-perth
author_rank: Contributor
timestamp: February 13, 2016, 01:24:51 pm
content: If you really are serious about creating your own IDE, it may be worth investigatingAtom from GithubIt runs on Windows, OSX and Linux and seems like a pretty decent way to go. Its open source and has beenwritten with developers in mind.Theflight manual, would be a good starting point in terms of 'hacking' the product to your needs.

author: uncle_bob
author_rank: Unknown
timestamp: February 13, 2016, 03:07:08 pm
content: Quote from: VIGNESH BALAJI on February 13, 2016, 11:27:33 amHiYes, indeed you can add it all one piece at a time into a bare copy of Eclipse. It does work. It is *far* more complex than simple debugging of KDS. Plan on spending many months getting a custom port working.Bob