embeddedgurus.com: "An open letter to the developers of the MPLAB IDE" - Page 1
Forum section: electronics / general

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 12:54:05 pm
content: http://embeddedgurus.com/stack-overflow/2011/09/an-open-letter-to-the-developers-of-the-mplab-ide/Nice reading,I am so glade that emblocks is there.

author: ElektroQuark
author_rank: Unknown
timestamp: April 29, 2014, 12:59:47 pm
content: I don't know if it has any meaning now. MPLAB is surpassed by MPLAB X. But we can talk about MPLAB X...

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 01:56:22 pm
content: I avoided getting into controller work for a long time. it was a field only for those who were very deep in it and hard to break in if you were just starting out.arduino 100% changed all that. made it accessible and even fun. the tools were ALL FREE and ALL FUNCTIONAL. no 'pay extra to remove no-ops' BS.I know that microchip has some better hardware at the chip level, in some ways, but their braindead tool chains and the fact that they still don't 'get' the free software movement has me still being an arduino guy and next to zero pic experience.PIC: atmel is totally winning over the new generation of kids and if you don't get your act together, you'll be the 'os/2' of chips (lol) in a few short years.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 01:59:57 pm
content: QuoteI am too poor to use the "free" software.QuoteDream on,

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 02:21:50 pm
content: I'm not dreaming; I see no new projects that are pic based compared to the numerous ones that are arduino based.I would not even consider using a pic in an opensource project simply due to the fact that the tools are not free and not nearly as functional as they could/should be.the ones using pic are the ones told to use it at school or industry. I know of no one that starts out picking the pic anymore. its used by pros (who have the expensive tools) but rarely by new guys starting out.if you have info to show otherwise, bring it. else, it seems pretty obvious if you just take a look at a place like hack-a-day (etc) and see how many pic submissions are there vs atmel. pic is rarely even mentioned anymore and that's a fact.

author: Dago
author_rank: Frequent Contributor
timestamp: April 29, 2014, 03:05:59 pm
content: Quote from: linux-works on April 29, 2014, 02:21:50 pmI have to agree. I have seen very few PIC projects in the last few years.I have used the xmegas in work projects and I have to say they are extremely nice and consistent and intuitive to use. Way better than atmegas.

author: retrolefty
author_rank: Super Contributor
timestamp: April 29, 2014, 03:33:23 pm
content: I agree that the arduino project has brought microcontroller projects to a whole new classes of people that had not and would not otherwise have entered into the field. Lots of gray beards poo pood the whole concept early on, not unlike the mainframe computer types looked upon the first microprocessors in the 70s.And it's not that the original arduino developers were so brilliant or anything, they just had a good idea aimed at a unique audience (artist and non-techies) that needed simple tools and low cost way to enter the field.The arduino folks just took a bunch of existing open source projects already developed and avalible and integrated them together with a very very simple controller board based on a Atmel AVR 8 bit controller chip. The use of avr-gcc compiler/linker, Processing IDE, AVRDUDE, Wiring, etc, for the idea of using abstraction for things like using pin number instead of the port/pin addressing required at the chip level. It's actually really amazing how little new code the original arduino folks had to create, they just stitched together lots of open source code together and built a simple controller board which they then released as probably the very first highly successful open source hardware project.Soon even experienced software types found that the platform can be useful, as one is actually developing code (sketches) in C/C++ with all it's capabilities and history. So soon contributed libraries and projects quality and volumn was very impressive and has reached a critical mass that would be certainly hard for any other platform to surpase.Certainly there are more powerful controller chips available with tons more power at the same or even less price, but if one measure of power is the size of the existing user base it will be interesting to see how long the Arduino project keeps the simple 8 bit controller actually relevant long pass it's otherwise must use by expiration date.Indeed even the Arduino company has now released Arm based boards (Due) but it's not clear if it is being accepted and adopted in the huge numbers that the more simple 8 bit boards are. And being open source hardware one can now find simple Asian cloned E-bay sold AVR mega328P mini-boards (named Pro-mini) for like $3 each.And a whole new generation of small specialty vendors are now actively selling components, modules, sensors, etc to this population. Firms like SparkFun, Adafruit, etc started out small with this market and grew to multi-million size very quickly.For those of you who are as old as me it's very similar to the early growth of the microprocessor field in the mid 70s, where it was not the existing major computer and electronics companies the entered the market till later, it was very much a hobbyist driven market at first.To be clear it's not a fan boy type of product or platform, as it is not really aimed or useful for the plug-and-play type users, one must learn some basic electronics and programming skills to actually be ableto convert an idea into a real project. But it does allow the quickest learning curve to just getting started of any other platform I had come across. It's fun and useful and cheap, what more does one need.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 03:40:03 pm
content: I choose arduinos for my open hw/sw audio projects because of wealth of examples (that jumpstarted me) and also so much online sharing of info. it seemed like the ideal thing to get people to WANT to change the code and try new things out.its not always the best chip for the task, but the fact that the devel tools work on all 3 platforms and are fully free (and pretty mature, too) seals to deal for me.industry wise, its often about chip cost, chip size. but for home projects, the size is not as much of a problem and cost is also not a problem since we don't build in thousands of units. what does matter is the toolchain and community support and in that regards, nothing can touch the arduino, the raspi or the BBB. those are the 3 top boards for home DIYers and nothing else comes close (for now, at least).when I read gerry sweeney's write-up on the non-optimizing compilers on MPLAB adding no-ops unless you PAY to have them removed, that did it for me; I have nearly no desire to do anything PIC based if I can help it. such things are hostile to users and I don't like helping any company that is this hostile to their userbase.PIC is the microsoft and atmel/arduino is the linux, very very loosely speaking (if you catch my drift). I avoid doing any microsoft programming for many of the same reasons I avoid pic.

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: April 29, 2014, 03:41:09 pm
content: Quote from: dannyf on April 29, 2014, 12:54:05 pmin 2011 when it was written... I'll stick to mplabx.

author: janoc
author_rank: Super Contributor
timestamp: April 29, 2014, 03:52:45 pm
content: Quote from: dannyf on April 29, 2014, 01:59:57 pmYeah, it is better to spend gazillion dollars on a proprietary tool, surely is better than anything free, right? Except it uses GCC for compilation and GDB for debugging under the hood. Like 99% of ARM tools, the official Atmel's, even the new Microchip's ones, to name just the most common stuff.I am not sure why are you taking ignorant jabs at free software here when, in most likelihood, you are dependent on it too. It isn't about free as in beer.Quote from: dannyf on April 29, 2014, 01:59:57 pmI haven't heard about any projects using PICs that were built by kids recently, but a boatload of Arduinos, Raspberry PIs, Beaglebones and similar. Microchip missed the boat here big time, IMO.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 04:13:11 pm
content: microchip REALLY missed the boat, that is so true! as I read the story, the arduino guys approached both MCP and ATMEL and MCP turned them away. they will regret that for the next 5 years, very likely. their arrogance is also part of the problem and why people hate having to learn all the gory details of each fork of the mcp architecture.arduino, while dumbed-down a bit too much (imho) did take the right approach toward an abstraction layer and it removes the need to care about which chip is below that layer, for the most part. that was such a helpful and visionary design aspect....just wish the pin spacing on those 'shields' were reviewed by folks who understand that ".1 spacing is king" in the diy world. sigh.(pet peeve: people who design for DIY and yet avoid .1 spacing should be sent to a special form of hell when they die)

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 04:23:25 pm
content: QuoteProjecting what you say to what the market says is probably not wise.Unless you are the market.

author: retrolefty
author_rank: Super Contributor
timestamp: April 29, 2014, 04:25:04 pm
content: QuoteDid you ever read the back story about the strange spacing between just two of the four 'shield connectors'?It was simply an error that they didn't catch when their first boards were returned for their approval, they meant to have .1" spacing. But it was too late (and most likely too expensive) to correct by the time they did discover it. After that they were committed as there were already 3rd party suppliers shipping shield products that used the irregular spacing so it was turned into a "feature" as it makes installing shield boards backwards onto arduino controller boards impossible.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 04:27:02 pm
content: I'm not projecting. why do you think so?a simple count (if you want to do the work) on any open source hardware forum will show tiny numbers of PIC projects compared to atmel/arduino.I'm not going to argue with you about this. readers know what's what no matter how you want to try to spin things.the fact is, MCP is not nearly as DIY friendly and the # of NEW projects using their gear has fallen to near noise level since the advent and popularization of the arduino architecture.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 04:30:12 pm
content: QuoteMicrochip (or Renesas or Freescale or ...) has zero market share on the Arduino forums,So they must be doomed.I would suggest maybe a more robust way of reasoning?

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 04:45:01 pm
content: go to hack-a-day, then. what percent of pic projects do you see vs arduino?that forum is not locked to any one vendor, so its a fair place to start. its a popular site for controller projects.that's my 'easy' data point. if you have one of your own that supports that pic is gaining popularity, I'm all ears.

author: mazurov
author_rank: Frequent Contributor
timestamp: April 29, 2014, 04:57:18 pm
content: Quote from: linux-works on April 29, 2014, 04:45:01 pmGo to any rec.center. Over a period of a year, how many kid's paintings do you see on it's walls comparing to works of professional painters?

author: mariush
author_rank: Super Contributor
timestamp: April 29, 2014, 05:03:29 pm
content: QuoteI actually think it was a smart move, in a weird way.Look at Atmel now... yes, Arduino is very popular, but it mainly uses 2-3 chips from Atmel's line and now Atmel has to continue to make those chips and support them otherwise their reputation will suffer. But how about newer, better parts? Do you think any reasonably large percent of the persons buying Arduino even bother to check what other chips Atmel does, do you think they even care to download the datasheet and work around the wrappers supplied to them by the Arduino guys? Hell, I'd bet the majority of the people buying Arduino don't even know that the microcontroller is made by Atmel.It's almost like a chicken and egg problem - if the Arduino guys don't make a board with a newer chip and support it in the software with wrappers, for the majority of those amateur developers that chip doesn't exist...

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 05:16:46 pm
content: QuoteI said this earlier so let me be blunt: if you want to know how a product does in its market, go look at how it does in its market, not how it does in *****some segments***** of its market.Hope it helps.

author: ecat
author_rank: Frequent Contributor
timestamp: April 29, 2014, 05:20:02 pm
content: I like the Arduino, it's ideal for quick prototypes where some driver code is already available and it certainly hit a nice target market. With that said...Quote from: dannyf on April 29, 2014, 04:30:12 pmIndeed.How many types and variations of mcus does ATMEL make? Would you suggest that ATMEL cease production of all but those used in the Arduino projects? After all, Arduino is so popular making all those other chips is a waste of time?How many Arduinos are sold each year? Beside me I have a carbon monoxide alarm containing a PIC16, tens of thousands sold perhaps? My two Logitech remote controls though different models both use PICS, hundreds of thousands sold? I have an AllForOne remote around here somewhere iirc PIC based too, again hundreds of thousands sold?These are just the devices that come immediately to mind, Microchip may have missed one boat but there are many, many more in the harbour.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 05:24:21 pm
content: QuoteI don't think Atmel cares the least bit about it. I did this calculation awhile back: sales of chips related to Arduino wouldn't even amount to a rounding error for Atmel.

author: Rufus
author_rank: Super Contributor
timestamp: April 29, 2014, 05:28:19 pm
content: Quote from: linux-works on April 29, 2014, 04:13:11 pmMicrochip shipped their 13 billionth PIC last year, and continue to ship more than 1 billion PICs a year.Herehttp://www.adafruit.com/blog/2011/05/15/how-many-arduinos-are-in-the-wild-about-300000/they think there are 300k Arduinos shipped.Microchip ship more PICs every 3 hours than have been used in Arduinos total. Really missed the boat and regret? The Arduino chip market is completely trivial and the generally clueless makers using Ardunos are not the ones who are going to get Microchip design wins in volume products.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 05:29:54 pm
content: the arduino architecture extends much more than the 328 style chips.in fact, its now more than atmel, as has been mentioned (arm and even MCP versions of 'arduino' that I've seen).there was a short project called galago (I knew the 2 guys working on it, back a year or 2 ago) and that had the promise of using arm chips but in an arduino-like environment with a full hardware on-chip debugger, as well. they didn't get too far (business wise) but they did have a cool idea and it was all because of the arduino 'movement'.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 05:30:51 pm
content: QuoteUnfortunately, facts like that are very difficult to comprehend by the all-too-important Arduino folks.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 05:33:42 pm
content: atmel understands something mcp missed: planting seeds.apple knows this, too (lol: apple seeds, ha!)they (apple) give huge discounts to schools so that kids learn on apple gear. MS is also trying that.once you get someone trained on some tech, they tend to use it over stuff they don't know.analogy: why is cisco the undisputed king of networking gear? my answer: because their CLI is everywhere, they get companies (and schools) to value the certifications from cisco and once you know their gear, you tend to stay with it and choose it for new projects.this is a very smart business approach. and I would also likely choose an atmel chip over a pic chip in a commercial setting since I know one over the other much better.the commercial side of sales is not what we are talking about HERE, though; the controllers forum on THIS site is more about diy and not at all geared towards those that do this for a living. folks like that are here, but this forum is not about them, its about the learner and home diy'er. and for them, PIC nearly does not even exist on their radar.

author: Rufus
author_rank: Super Contributor
timestamp: April 29, 2014, 05:37:08 pm
content: Quote from: linux-works on April 29, 2014, 05:33:42 pmAnd maybe Microchip understands something Atmel missed: stoney ground.

author: retrolefty
author_rank: Super Contributor
timestamp: April 29, 2014, 05:39:49 pm
content: I also think that the 'arduino' platform has not had nor ever will have an impact or caused any major changes to the micro controller industry.Rather the point is that it has had a very big impact on many thousands of new users that would have otherwise never had any exposure or use for a micro-controller. It simply created a new very successful niche market.I'm sure the original Arduino developers were as surprised as anyone else with the results of their initial project. Some of those new users will go on from there and enter the more traditional path to become professional EEs where they might not have ever been interested in the field.But for most arduino users it's just a simple and inexpensive way to have lots of fun building stuff. The Arduino project should be applauded for what it has accomplished, not scorned or berated for not being professional enough way of getting started. At least they get to start by learning C/C++ rather then Basic.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 05:52:10 pm
content: QuoteThen maybe you should have said something like:QuoteQuoteYeah. Except that that approach, if 100% successful, wouldn't amount to a rounding error for Atmel.How many such "smart" approaches Atmel has to make to overcome its competition?

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 08:20:13 pm
content: QuoteMy initial comment wasn't really about Microchip vs. Atmel - both, in my view, have a bleak future.This year is the 3rd year over the last 5 years that I have visited China for mcu-related seminars. PICs are practically not followed there; AVRs had some followings and many people there are switching to ST (STM8 or STM32). You would say the biggest and most enthusiastic participation at those 32-bit ARM seminars (Freescale and Renesas have their own following, also very strong). And the enthusiasm got bigger each time as time went by.If I were Atmel, particularly Microchip, I would be very scared.I think there will continue to be a market for 8-bit mcus, just as there is still a market for 1/4-bit mcus here now. I would be surprised if it is substantial enough to support a handful of shops: how many of you know of anyone working on MC14500?The glory days of 8-bit mcus are probably behind us.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 08:25:05 pm
content: it seems that every controller based board I get from ebay/china uses the VERY ancient 8051 series chips! big ugly wide-DIP chips, not even small nice ones like atmel and pictheir toolchain is at least 20 yrs behind the west. I can't understand the 8051 love over there, other than maybe its sourced by lots of makers and its cheap as, well, chips.the western DIY market, though, shows no signs of slowing on 8bit cpus. especially the thruhole ones. I avoided the mega-arduino chips because they are not diy solder friendly and I want my users to be able to solder and repair their own boards.as long as there is a DIP version of a controller that has full open source support, I'm happy. it does not have to be an arduino, but anyone who plays games with me by charging me to REMOVE no-ops - I will refuse to do business with such companies if I can at all help it. each time I think of them inserting slow-me-down instructions as punishment, it fills me with anger!! let them sell hardware. the HELL with trying to sell software; its not their market and they are stupid to think this has to be a profit-center.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 08:42:23 pm
content: QuoteDoes that include the "fake" Arduino boards you got from China?QuoteMaybe it has something to do with their functionality? Value? Availability? ...? Try to find a PIC or AVR with 24-bit onboard ADC; or onboard CPLD? ...QuoteNor did those MC14500 guys in 1982. Where are they now?QuoteThat's a valid concern if you don't have access to affordable PCB services.QuoteThe beauty of a free market is that you can do whatever you feel like, including being irrational.Me? I look at what I get vs. what I pay and make a decision on that. The vendors can make whatever they make on me, however they make that on me, as long as I get good value for my money.

author: janoc
author_rank: Super Contributor
timestamp: April 29, 2014, 08:53:39 pm
content: Quote from: dannyf on April 29, 2014, 08:20:13 pmAtmel has their own ARM line too. However, I do agree that most new stuff is easier and cheaper (!) to design with something like STM32F1xx or F3/4 series than an 8bit PIC or an Atmel micro. Where the 8bit chips have advantage is the simplicity. Even STM32F103 series can be totally overwhelming for someone upgrading from a smaller micro.Quote from: dannyf on April 29, 2014, 08:20:13 pmProbably not new fancy projects, but cheap, tiny and simple to program 8bit micros will have their place for a long time to come for simple things - that's why the ancient 8051 architecture (and the lack of royalties) still hangs on. This is where Microchip has a certain advantage - their chips are relatively cheap. On the other hand, ATMegas and XMegas are not at all priced competitively, IMO - I can get many times more powerful STM32 for half of the price of an ATMega328 ...

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 08:59:02 pm
content: Quote from: dannyf on April 29, 2014, 08:42:23 pmI don't order arduino boards from china; I have my own arduino board and I buy real chips from US suppliers. maybe you were thinking of someone else?I have not found where the audio boards I sometimes buy from china need ANY of the things you mentioned. the answer is simple: they are cheap, the tools have long been pirated (ie 'free' now) and the chips are probably very cheap. otoh, they are huge chips and waste a lot of board space.the boards I have bought were DACs or preamps and all they needed to do was to receive some IR, decode it and set some registers in the main chips. NOTHING that could not be done with ANY other controller. 8051 gave no magic here, sorry to disappoint you. they were chosen, like I said, because they were cheap, multiply sourced and the software is most likely pirated and they have enough people who know the 8051 well enough. I have not heard of anyone seriously using 8051's on any new projects in well over 15 yrs.as for soldering, if you are making a DIY kit, you should assume thruhole ability only. to assume more than that is to limit your market and make things harder than they have to be on your users.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 09:01:35 pm
content: QuoteTime to broaden your horizon again,

author: janoc
author_rank: Super Contributor
timestamp: April 29, 2014, 09:09:03 pm
content: Quote from: dannyf on April 29, 2014, 05:16:46 pmI think it is massively unfair to compare a general market share versus "projects by kids". The latter is overwhelmingly dominated by Atmel at the moment, thanks to Arduino and its clones, both ATMega and ARM based.I don't think anyone was trying to generalize this to a total market share - Atmel is a flea when compared to Microchip's dinosaur there.However, it is not really by anything of Atmel's doing, really - they simply had a suitable product on the market for which open/free 3rdparty tools were available. If Microchip had reasonable tooling, they would have had that market segment too.I don't see why so many people feel compelled to express their disdain and scorn for Arduino users - sure, these are rarely well engineered projects and many of these people are naive/ignorant but it is a tool that allows many more "mere mortals" to start building stuff. Give them a break ...

author: gregariz
author_rank: Frequent Contributor
timestamp: April 29, 2014, 09:41:06 pm
content: Quote from: dannyf on April 29, 2014, 08:20:13 pmI heard that in 1990.Microchip responded with the PIC10 series. As of yet I haven't seen any serious ARM contenders that compete with the PIC10 price point for low end appliances/gadgets.

author: violet
author_rank: Newbie
timestamp: April 29, 2014, 09:53:06 pm
content: It always seemed to me that atmel are good for bringing people into the digital electronics world, and some of the things being produced are great.Personally I do prefer microchip, they feel much more solid and yeah probably a bit more hard work but so much more satisfaction at the end of a project (that's the important thing to me regardless of what I use). The products also seem more robust, and time tested but that just my personal opinion.I've never had to pay for using microchip products in my personal projects, their samples system allows me to get the physical devices for free and if i'm not doing anything too difficult, then stick to the PIC18 series and there's always been free software. If you want to take something to production then yeah of course youve gotta pay, your'e going to make some money so don't you think they deserve some for giving you that opportunity? It's like someone giving you a room to design a shop layout in for free but if you want to start selling things from it then you've got to pay..Microchip also have a very large product portfolio which gives them experience...What Atmel have is an easy to use product, and it's easy to become comfortable and famliar with that. I'm used to being challenged with a lot of different controllers so don't feel any real commitment to a single solution, plus prototyping on an atmel because it's easy for presenting a proof of concept but do they really stand up to production costs? I don't think so... (not to mention custom branding).I don't want to be positive or negative to the whole microchip/atmel argument but it really does depend which way you look at it.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 09:56:30 pm
content: Quote from: dannyf on April 29, 2014, 09:01:35 pmcare to point to any current (in the last 2 yrs, say) 8051 diy projects?I can provide literally hundreds of arduino project that are prominent in diy over the last 2 yrs. I could find a percentage of that for pic. and maybe a percent of that percent for 8051.can you give examples as to this so-called existence of 8051 projects that I somehow have not seen or heard of? I'm pretty active in the diy world and I have not heard of a single 8051 project, but please, do let me know if I've missed any good ones.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 10:03:10 pm
content: QuoteIf you still cannot get it, there is no point in getting it for you.

author: gocemk
author_rank: Regular Contributor
timestamp: April 29, 2014, 10:03:49 pm
content: This letter was written back in 2011!!! And it is about the old (outdated) MPLAB IDE. The main IDE now is MPLAB X and because it's based on Netbeans it is supported on Linux too. And it is MUCH better than the old MPLAB IMHO. Although there are still some folks out there who claim the IDE is awful, i have to say that my experience with it is VERY positive. Lately i'm doing some work with Keil, and it crashed on me twice, without any warning! One of the crashes corrupted my project file, so i had to start over by creating a new project! Never had that experience with the MPLAB X.Microchip offers FREE editions of their compilers for all their families, and XC8 has become better since version 1.21. And if you want you can still use the legacy HI-TECH C compiler for the 8 bits in MPLAB X in lite mode. And PIC18 + XC8 free or HI-TECH C lite will OUTPERFORM the Arduino anyday, so it is your loss for not using the PIC.As for the demise of the 8-bitters, it will happen, but only for more complicated projects. Currently i'm working on 2 projects that are so trivial, (simple user interfaces) even the PIC16 series is overkill.I think that the 8-bitters will continue to hold this (low end) market for the years to come.

author: linux-works
author_rank: Super Contributor
timestamp: April 29, 2014, 10:05:40 pm
content: is it true that they do insert no-ops to cripple the free versions? is that only on some architectures?it would be great if that was a false rumor. I just can't fathom using a tool that knowingly slows down your generated code.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 10:10:01 pm
content: QuoteI would argue that in the 8-bit world, Atmel's products are light year ahead of Microchip's: speed, hardware multiplier, vectored interrupts, adc, etc. Basically the latecomer's advantage.QuoteMicrochip benefited from being the first mover - specializing in the mcu market: 8051 has a considerably better architecture but was slow in developing a full set of (onboard) peripherals. This allowed Microchip to build up a huge user base with its broad product offering.It is that very advantage that in the end will drag Microchip down. I think their strategy over the last 10 - 15 years has focused too much on milking that cow (playing defensive), rather than developing a way to allow their customers to migrate up market (playing offensive).

author: gocemk
author_rank: Regular Contributor
timestamp: April 29, 2014, 10:11:47 pm
content: Quote from: linux-works on April 29, 2014, 10:05:40 pmThis is/was true for the XC8 (which is actually rebranded HI-TECH C). I am using the old HI-TECH C 9.80 lite, because i'm used to it and it supports the PIC's i use more frequently.

author: dannyf
author_rank: Super Contributor
timestamp: April 29, 2014, 10:15:56 pm
content: QuoteNot intentionally inserting NOP. But simply generating overly lazy code.QuoteYou may want to try pre-OCG compilers, both standard or pro versions.The newer XC8 compilers are actually very respectable. I tried it on a PIC18 and the free XC8 is just shy of the pro PICC18 and the pro XC8 is quite a bit faster than the pro PICC18.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 29, 2014, 10:22:20 pm
content: Do you really think Microchip gives a toss about OSS projects using their chips or not?Microchip however have always been DIY friendly, way before Open Source was trendy - parts are always readily available, and who else makes a wide range of 16 and 32 bit parts in DIP?They definitely screwed up on the free 8 bit compiler, but the free versions of their 16 and 32 bit compilers are just fine.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 29, 2014, 10:27:26 pm
content: QuoteBut when 16 & 32 bit parts are cheaper, who cares?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 29, 2014, 10:49:15 pm
content: Microchip clearly think it's more important to cater to the needs of commercial users than some random project seen on Hackaday still on a breadboard.Despite a few minor detours into AVR and ARM in t hepast, nowadays my first choice for any product, or 1-off design is Microchip, and many of the reasons are more applicable to commercial products than DIY, and almost none related to the architectural details so often argued over :I can buy preprogrammed chips from MicrochipDirect for a few pennies more. AFAIK no other MCU manufacturer does this, at least for small (<1000) qtys, or as easily. Even if all that gets preprogrammed is a bootloader, this can save a lot of time and hassle in production.The peripherals and devtools for the whole range form PIC10 to PIC32 are sufficiently similar that there is minimal effort to switch between them. I still use MPLAB 8.something, and I can use it for the whole range.In general the compilers are set up by default so you don't need to do any dicking around with header files or linker configs unless you're doing oddball stuff like bootloaders. Just #include <pic.h> or <xc.h> and off you go.I can use the same programmer across the whole range, with an identical hardware interface.For production test jigs to give to an assembly house , I can just throw in a PicKit 3 in standalone mode for single button idiot-proof programming.Most parts available in multiple packages, often DIP,SO,SSO and QFN are all available. (and I mean actually available, like I can get a few hundred tomorrow, or preprogrammed in less than a week)

author: gregariz
author_rank: Frequent Contributor
timestamp: April 29, 2014, 11:41:09 pm
content: Quote from: linux-works on April 29, 2014, 03:40:03 pmI have on occasion used arduino code from the web to try out a new display or chip. For that I have an Uno lying about somewhere's. When I have confirmed the hardware works and am ready to start developing with that new hardware I plug it (usually a shield) into a Microchip based 'Arduino-ish' board and port the code into my preferred compiler. It's usually fairly easy to bring the code across and get it running. Once I have a basic framework running I will then lay out my custom cut-down hardware.I tend to stay away from chip-vendor supplied tool-chains. I find third party compiler vendors do a better job of documenting the compiler. I also find they do a better job of consistently producing device drivers and libraries. So compilers I will happily spend some money on if they save me time. But now I have a couple I can't see myself going to MPLAB or any other chip vendor. Last time I checked the arduino environment didn't even have a debugger.At the end of the day you are wanting to release a product into the wild at as low a cost as possible and with the ability to be upgraded by the user. So with a huge selection of chips (some rediculously cheap and many pin compatible upgrade paths) and a good supplier of bootloaders Microchip have the commercial market.Any hobbyist may prefer to use the arduino to cook up something and that will probably continue, but for the reason's above that's probably the ceiling for the penetration of the platform.

author: miguelvp
author_rank: Super Contributor
timestamp: April 30, 2014, 01:19:31 am
content: Renesas (Hitachi, Mitsubishi & later NEC) has nothing to worry about at least not for a while.Atmel has been growing strong and surpassed Microchip in 2010 or so.http://www.dataweek.co.za/article.aspx?pklarticleid=7412But not because of the maker community. Microchip went from way down the list to the top on the previous decade leaving Atmel, Zilog and others in the dust.The funny thing about that article is that you gotta see Cypress (minus smartcards and automotive) growth of %139. Love their PSoC chips. And that is for MCUs it doesn't count USB chips. Then again Automotive is huge for sales, but it shows that Cypress is climbing up big time.Edit: forgot to attach the picture, doesn't include smartcards and automotive mcus.8bit mcus are pretty much at no growth but not loosing shares, 16 bits are declining and 32 bits are climbing (mobile stuff of course)But 8 bit is going to always be king in price and battery life. All those cheap mp3/mp4 players have an 80C51 embedded in their multimedia chip, some PSoC chips have it too.TI has been stale for a while but not loosing ground. Motorola?? well maybe they get royalties or something, Zilog, Toshiba, etc, might be getting royalties as well.But even the lonely Z80 probably has shipped more chips than Arduinos and derivatives.In any event, this was about an open letter, not about who can pee further away.Myself I don't like the PIC branch instruction set (lack off) for anything lower than the PIC24 and they are very spartan as for the instruction set, but that implies less power consumption and longer battery life at a lower manufacturing cost.Different strokes for different folks.

author: scientist
author_rank: Frequent Contributor
timestamp: April 30, 2014, 01:54:10 am
content: Quote from: mikeselectricstuff on April 29, 2014, 10:49:15 pmIIRC Digikey can do this for most of the atmels they have in stock, at no expense in basically any quantity (but I haven't tried it yet).

author: jerry507
author_rank: Regular Contributor
timestamp: April 30, 2014, 03:59:42 am
content: That's a very strange graphic. I have no idea why you'd include smartcards, touch screen controllers and other asics in microcontroller revenue.My impression for several years has been that Atmels actual microcontroller business isn't particularly healthy and Microchip has been doing better.I dislike Atmels products because they seem more expensive than comparable PIC devices with little to show for it. That said, the toolchain can be better and Microchips XC8 compiler is in a sad state. It's gotten better but has remained significantly worse than the C18 compiler it replaced and much worse than the XC16 or XC32 compilers at the higher end. The 16 bit products from Microchip are quite compelling because of good cost and good peripheral support. While the 32 bit products are nice, why wouldn't I use an arm at that point?Professionally, ARM cores have replaced everything. Why not when I can buy a M0 for less than a buck @1k?

author: true
author_rank: Frequent Contributor
timestamp: April 30, 2014, 05:27:39 am
content: Quote from: linux-works on April 29, 2014, 04:45:01 pmhackaday has a total hard-on for arduino / attiny85 (even when used completely inappropriately), 3D printers, and quad/hexrotors aka "drones" - anything in the world involving one will probably end up there even if it isn't deserving of a second pair of eyes ever looking at it.That said, my PIC32 project made it there a few months back. (The writeup was wrong on all the details though, about the project and about the PIC, as is normal for anything hackaday not involving an arduino)

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 30, 2014, 07:56:56 am
content: Quote from: scientist on April 30, 2014, 01:54:10 amI'd be highly surprised if this was "at no extra expense", unless you're buying serious quantities or expensive parts.

author: ecat
author_rank: Frequent Contributor
timestamp: April 30, 2014, 10:27:01 am
content: Quote from: true on April 30, 2014, 05:27:39 amSo, anything which ranks highly in search engine keyword lists. They lavish the same gushing praise on the trivial and downright dangerous as they do on genuinely novel and innovative projects. They certainly do publicise some good stuff but I find the signal to noise ratio so low I've given up visiting their site.

author: hans
author_rank: Super Contributor
timestamp: April 30, 2014, 10:32:28 am
content: Ha, yeah, Hackaday has turned to crap postings the last few years IMHO. Is there any other news/blog site noteworthy of checking out for cool designs?Quote from: gocemk on April 29, 2014, 10:03:49 pmI think people can share similar experiences for all IDE's. I can say I've had to recreate a MPLAB X project because otherwise the debugger couldn't figure out what line C code complies to what assembler (PIC24 project).I've ranted more about MPLAB X in the past, and it's getting better now, but the slowness of Netbeans still bothers me. I say this on a fast machine (SSD/16GB RAM/i5 3570K CPU), and any non-Java based IDE beats it in terms of speed any day of the week. To get rid of that, ideally an IDE needs to step up with QT.(As a side note: i'm still eager to try out Qt developer environment for ARM, including debugging. I think it should be possible, given there is a GDB server for ARM + open ARM GCC tools).QuoteYep, I still can't imagine people say Microchip is not free. They provide a reasonable set of compilers that work out of the box in MPLAB X.PICKIT 2/3 is ~50 euro's for a standalone programmer + debugger, (PK2 can also be used as a AVR programmer using avr-dude). In Atmel world this buys you an AVR dragon, but they forgot to make an enclosure for that.I guess it's a close call.QuoteIt will probably outperform programs written using the Arduino runtime. That's horribly slow, where I recall a simple digitalWrite action can take up to tens of microseconds.As in the architecture of PIC16/18, it's actually completely terrible compared to anything else and modern. Only 1 accumulator register, banked memory, Fosc/4 clock speed, etc. But it works.There is a reason it still uses HI-TECH compiler. Microchip failed themselves to make a decent one, and therefore bought out HI-TECH. They made attempts to port it to GCC or LLVM, but that failed too, as the architecture was so odd it couldn't made to fit with modern compilers.Also the XC8 compiler has it's limitations, and all MCP compilers speak a very strict dialect of C to much annoyance. In addition, XC8 optimizations at the FREE level are to say the least "odd".I think this is a well known story for those who have argued with an Atmel fanboy, as they will always bring this up. And I regard it as true, but then again I try to avoid using the PIC16 & 18s a bit.Luckily though, their XC16 & XC32 compilers are GCC (with O1 optimize which does most good stuff).Moreover it's not hard to figure out how to run all compilers in their most optimal setting. As XC16 and XC32 are based on GCC,their source code is found online, including the part that speaks to the license manager, which means it's actually incredibly easy to figure out a replacement manager to run it in original intentionsQuoteI'm designing a digital power supply at the moment, and I'm likely to put a PIC24 or STM32 chip in it. Mostly for cost/performance (which I don't really need, though), but also so I have similar/identical code for most of my projects (saves time).I would only use 8-bit chips if for package or power consumption.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:02:09 am
content: QuoteIt is sad that one would pick hackaday as a yardstick for how a mcu does; It is sadder that after it was pointed out repeated why that's wrong, it still failed to be comprehended,.QuoteOr 10+ arvasp.QuoteAgreed.QuoteMicrochip did itself a huge favor by killing C18 - that compiler is truly a total crap.QuotePIC24 + C30/XC16 is a nice combination. PIC32 seems to have a crippled peripheral set vs. PiC24.

author: ecat
author_rank: Frequent Contributor
timestamp: April 30, 2014, 11:25:36 am
content: Quote from: hans on April 30, 2014, 10:32:28 amRisking a quick diversion off topic, do you have any links to the info on this? Last time I looked I came up with something in Russian with a very suspicious chain of half broken html links and some other method I didn't like the look of but cannot quite remember at the moment.

author: fcb
author_rank: Super Contributor
timestamp: April 30, 2014, 12:18:30 pm
content: I've used PIC's solidly since 1991. From time to time I've looked at other vendors, but keep returning to PIC.More recently I've wanted more horsepower in a project, but couldn't stand the learning curve with ARM (I still code in assembler) - I got round the problem with a bit of neat design and XC9572 cpld - still cheaper solution.Microchip and Atmel are both successful because they understand their customer base, much the same as the generic 8051 clones do. They must be doing something right?I will stick with Microchip as I haven't been let down once by availability, and I know I can buy a 16C54 to drop into a 20+ year old design... Try and get a Z8, COP8, ST7 off-the-shelf at reasonable prices or qty.MPLAB X - I haven't tried this for a few years - it sucked when I did and I haven't gone back since.On another note, I found myself reviewing a 16F54 the other day for a project, I forgot how simple the instruction set was and how much fun it is to code for.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 12:43:54 pm
content: QuoteIt is truly experimental, and I think the efforts stop'd maybe 5 - 7 years ago.

author: ecat
author_rank: Frequent Contributor
timestamp: April 30, 2014, 12:48:00 pm
content: Quote from: dannyf on April 30, 2014, 12:43:54 pmSo, what I found is all there is, thanks for the confirmation

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 01:01:35 pm
content: QuoteA lot of the "observations" will depend on how you define the market: for example, SIM/RFID typically contain a mcu. Think about how many ID cards are out there, or phone cards, :0.I think most people would not include those figures + phones in their definition of "mcu market". Automotive is generally included in mcu market definitions.It is generally accepted that 16-bit ship surpassed 8-bit a couple years ago. Both 16-bit and 8-bit are on a decline in terms of shares but increasing in terms of shipment. ASP on 8-bitters has been on a steady decline for more than a decade now.I don't think 32-bit has surpassed 16-bit in terms of shipment but did so in terms of $$$.I would say that biggies in this market are Renesas and Freescale - I would put their combined shares in the 50%+ territory. Infenion and NXP/ST are fairly large too. Fujisu/Spansion is large but only domestically.TI was up there due to their OMAP which they exited recently.After that, just some niche players like Silabs (mixed signal), Cypress (USB), Analog (analog/mixed signal).

author: icon
author_rank: Regular Contributor
timestamp: April 30, 2014, 02:12:59 pm
content: Quote from: linux-works on April 29, 2014, 10:05:40 pmSpurious 'goto's seem to be the order of the day. It's perhaps some artefact of the compilation process, but they're scattered everywhere, bulking out the code.As Hans points out, it's no great effort to unlock the other versions.RegardsJohn

author: linux-works
author_rank: Super Contributor
timestamp: April 30, 2014, 02:20:08 pm
content: what I'd like to know (genuinely asking) is if MC creates the no-ops or bad code on purpose or accident.again, my only source was from gerry's write-up on MC's compiler tools and his implication, as I read it, was that the free tools had the no-ops inserted on purpose, to 'motivate' you to buy the paid-for tools.is this true or not?I really hope its not actually true, as stated. it seems quite hostile for a company to do this.story: I worked at DEC many years ago and I did hear the story about how we made 2 VAX systems (I forget if it was the 750 or 780 series) and we would allow customers to upgrade from one to the other by paying the upgrade fee. it turns out that there was no actual hardware change but we'd dispatch field service (we jokingly called them 'field circus') to swap out the color of the metal skins and do a microcode upgrade. the microcode - you guessed it - had the no-ops removed and so the end effect was that the VAX ran almost twice as fast with that 'upgrade'. the metal skin color change was just 'marketing' and to let the customer think something real had been changed. this angered a lot of people and I've heard the story told by many old DEC guys, so I do believe it was true. the MCP thing makes me think of this shenanigan; and it was unacceptable back then and still is, now.so, is this on purpose or just sloppiness?

author: ecat
author_rank: Frequent Contributor
timestamp: April 30, 2014, 02:43:53 pm
content: Quote from: linux-works on April 30, 2014, 02:20:08 pmIf the 1st stage of the compiler simply translates source into assembly code (or something similar) and does so by using simple, one size fits all occasions template code then it is quite possible that nops and gotos are inserted at this stage. All 'for' loops have the same, general, inefficient but flexible template, all if statements have their own general template etc.Subsequent compiler stages perform various optimisations, one of those includes removal of superfluous template code.So, yes, the superfluous code would be put there deliberately but not out of malice, rather as a way of simplifying the compiler and giving the optimisation passes something to work with.

author: baljemmett
author_rank: Unknown
timestamp: April 30, 2014, 02:47:44 pm
content: Quote from: linux-works on April 30, 2014, 02:20:08 pmIt's unlikely that anybody outside Microchip actually knows the answer to that for sure - we're unlikely to have seen any "hey, make this generate crap code so they cough up for the paid version" memos, after all! However, from reading the output on some of my projects, it doesn't really seem to have anything 'maliciously' bad; it's mainly just unoptimised and/or naïvely-generated code. Things like calculating a value, storing it in a temporary and then immediately loading it back, or a goto over some conditional code that lands right on another goto. Even a simple optimiser would take care of fixing a lot of it up, so it wouldn't have been a problem to emit code like that until they started offering a free version without one.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 03:05:16 pm
content: QuoteSimple common sense dictates that unless this "gerry" was intimately involved in the development / decision making of this compiler, what he said is inconclusive at best.

author: retrolefty
author_rank: Super Contributor
timestamp: April 30, 2014, 03:15:00 pm
content: Quote from: linux-works on April 30, 2014, 02:20:08 pmI worked as a field service engineer for a different minicomputer firm from the mid 70s for around five years, Varian Data Machines. We 'targeted' the scientific application market (along with small businesses) so had quite a few high performance options available at extra costs.A few of these options (like high speed DMA memory access by peripheral controllers) only required jumper changes on some of the boards. Obviously this was implemented as a marketing policy, but I always felt a little guilty the few times I had to implement such upgrades. The majority of the time such options were factory set up when the customer's system was being configured.Buying our machines was not unlike buying a new car at the time, the delivered price with options might be double the price of the starting list price. Option list was huge.Probably the most profitable part of our business was the field support service, typically ran about $1,200 a month. Otherwise one paid by the hour plus parts, but had no guarantee on response time if not on the service contract.Still all in all the minicomputers at the time allowed businesses to utilize computers at very much lower cost relative to the mainframe computer companies at the time, IBM, Univac, etc.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: April 30, 2014, 03:21:58 pm
content: Quote from: mojo-chan on April 30, 2014, 02:50:44 pmI think this is as much about differences in specific architectures than 8 vs.16/32. Most applications will be dealing with at least 16 bit data, so 8 bit MCUs will be using more cycles. 16/32 bit tends to be on newer, smaller processes at lower voltages, which will save power in some circumstances.Even quite low-end devices tend to have smarter peripherals like FIFO'd UARTS and DMA, reducing any minor latency issues.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 05:38:57 pm
content: Quote from: dannyf on April 30, 2014, 03:05:16 pmThis "Gerry" is btw this blogpost:http://gerrysweeney.com/microchip-pic-chips-could-have-been-the-power-behind-arduino/His opinions, and I guess others have similar after struggling with useless compilers.Quote from: linux-works on April 30, 2014, 02:20:08 pmI guess this is not the only post about this:http://www.t4f.org/articles/optimization-of-microchip-pic-xc8-compiler-in-free-and-pro-mode/But remember that this compiler is acquired from Hi-tech, a company that had good reasons to do this.. Just read the conclusion in that post.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 06:08:46 pm
content: QuoteSo?That page is high on rants and low on facts. He didn't even attempt to provide any substantiation that Microchip deliberately inserted nops to lower the performance of the free mode, a contention of this discussion.QuoteI would imagine that billions of PICs coded with Microchip / Hi-Tech compilers would suggest that those compilers aren't "useless".You certainly are on solid footing accusing them of being not free (for the non-free versions anyway), of having poor performance, of offering subpar user friendliness, etc.You are without basis accusing them of being "useless".Unless of course you define "useless" differently.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 06:34:44 pm
content: Useless in the way that an compiler fills the resulting code with instructions that does not belong there, just to fill up already tight memoryspace, if you pay $999 you get an option that does not add that code.But as that last blogpost mentions, it seems like microchip is removing parts of this "extracode"/fillercode..

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 07:17:18 pm
content: QuoteSo your BMW is useless because my Ferrari gets to the supermarket 0.2 second faster,Being able to tell the difference between "less useful" and "useless" may be useful.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 07:24:19 pm
content: QuoteNewer XC8 is actually quite respectable. I did a benchmark of dhrystone on pic18, among other mcus. The XC8 free is on par with PICC18 pro, and XC8 pro is about 20% faster than PICC18 pro. I don't recall exactly which version of XC8 I used (could be 1.21).

author: gocemk
author_rank: Regular Contributor
timestamp: April 30, 2014, 08:27:02 pm
content: QuoteQuoteYes, that's exactly what i meant. I was not referring to a direct comparison between Microchip PIC vs. Atmel AVR, only vs. the Arduino runtime.QuoteTrue, i know AVR's have a more modern architecture than the PIC's, although now Microchip offers 16MIPS PIC's (PIC18F K series). But we all know what that means (MeaninglessInformation forProcessorSpeed)QuoteLike i said, i mostly work on small projects at the moment (easy money), so 8-bit PIC's are quite decent for the job. Also, where i live there is no Digikey/Mouser, only local electronics stores, and the offer for PIC's is quite bigger than that of the AVR. Another big advantage for me is the DIP packages, because often the customer wants a prototype of the board which i must build myself (toner transfer), so i am mostly working with trough hole stuff, and the 8 bitters are still vastly available in that packages.

author: hans
author_rank: Super Contributor
timestamp: April 30, 2014, 08:43:45 pm
content: Quote from: ecat on April 30, 2014, 11:25:36 amMy bad, I thought on the top off my head it was PK2, but apparently that doesn't work.Quote from: linux-works on April 29, 2014, 02:21:50 pmSure, look at dangerousprototypes. It's the complete opposite of hackaday in that sense, as it features many PIC related projects. It's mainly the blog hosts there (Ian and other designers) use PICs , so likely a small community hangs around it.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 09:09:27 pm
content: Quote from: dannyf on April 30, 2014, 07:17:18 pmof course, what I mean like,is that I guess you wouldn't like if Ferrari put an lada carburettor in your Ferrari so i would go lot slower, and make you pay a lot to make it work as it should

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 09:13:18 pm
content: Quote from: dannyf on April 30, 2014, 07:24:19 pmGood to know, i have been compiling some small stuff, and when the compiler advertises to me and tell me how much more space I would have if I had the Pro version, I get kinda sad.. but I found the cure for it, so I'm in the clear. Didn't find any tool to disassemble the compiled code yet to see how it is, but I don't get those advertisements.But according to how microchip people answers when they are asked, I guess they aren't going to keep it like this forever.I'm on to 1.31 of XC8..

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 09:23:04 pm
content: QuoteI would actually love to get a Ferrari with a Lada engine in it, as long as I pay the Lada price.Considering how ***much*** you paid for the free version, you should be happy too,

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 09:25:39 pm
content: QuoteAbsolutely true.To that frog sitting at the bottom of a well, the universe sure looks like the size of a pizza,It is perfectly OK for that frog to think that. If a human thinks like that too, s/he in big trouble.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 09:30:06 pm
content: Quote from: hans on April 30, 2014, 08:43:45 pmAnd all projects popping up at Tindie, lately I have been observing lot of very interresting projects using pics, more than avr, where most of the projects are around the ardiuno platform.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 09:33:42 pm
content: Quote from: dannyf on April 30, 2014, 09:23:04 pmYeah, after my recent find, I'm more than happyMy initial post was just linking to the article others wrote about, and an person who did do disassembly, and mentioned in his conclusion that it looks like microchip are removing some of the things from the free-version. Hi-Tech had its reasons for this, and those was ok, since they were doing business on the compilers, not the silicon.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 10:45:07 pm
content: QuoteI would be less focused on what they didn't offer for free. Instead, I would focus on what they did offer for free.Microchip (or any other vendor) is not in the business of offering anyone high performance compilers for free. They are in the business of making money. You should be grateful that you offered you an opportunity to use their compilers for free, albeit with reduced performance.Demanding them to give to you a high performance product for free would be a charity demanding that you give all of your bank accounts to it, after you have donated $20.

author: scientist
author_rank: Frequent Contributor
timestamp: April 30, 2014, 10:47:07 pm
content: This thread is devolving into an PIC vs AVR flamewar...

author: AndersAnd
author_rank: Frequent Contributor
timestamp: April 30, 2014, 10:53:33 pm
content: Quote from: miguelvp on April 30, 2014, 01:19:31 amMotorola?In 1999 they first spun off and renamed their discrete semiconductor business as ON Semiconductor.5 years later in 2004 their remaining IC semiconductor business, mainly microcontrollers was spun off and renamed Freescale Semiconductor. Freescale is still one of the world's largest MCU manufacturers as your list shows.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 10:54:10 pm
content: Quote from: scientist on April 30, 2014, 10:47:07 pmOr, who can give people good compilers to make fully use of the silicon, after all, it's the silicon that gives money til Atmel and Microchip, I doubt there is that much revenue of selling compilers..

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 10:54:37 pm
content: I just did a check. Under XC8 free, a program I wrote recently compiled to have 8 NOP instructions - out of about 2.5KB in size. and I put those instructions there myself. So the compiler inserted no NOP instructions in free mode into that particular program.That same code compiled to about 1.7KB in pro mode.So maybe "gerry" was right then but certainly not right for this particular version of XC8 (1.12).You can maybe compile a few programs to see for yourself.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:09:34 pm
content: QuoteActually, most chip vendors offer paid compilers. Vendors that offer free, full featured compilers are mostly the low-end players.

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 11:11:53 pm
content: Yes, have done that, compiled code for 16F877A that have 8192 words programspace this is kinda significant:PRO mode:Memory Summary:Program space used EF6h ( 3830) of 2000h words ( 46.8%)Data space used 2Ah ( 42) of 170h bytes ( 11.4%)Free mode:Memory Summary:Program space used 1AE7h ( 6887) of 2000h words ( 84.1%)Data space used 2Fh ( 47) of 170h bytes ( 12.8%)Of course, this code is not very clever, if written better it wouldn't take so much space in the first place.And, since you obviously did not read this post:http://www.t4f.org/articles/optimization-of-microchip-pic-xc8-compiler-in-free-and-pro-mode/This codeexample:tmpPeriod=255;Compiles to this in Free mode:00C3 30FF MOVLW 0xFF00C4 00F8 MOVWF 0x7800C5 0878 MOVF 0x78, W00C6 00F5 MOVWF tmpPeriodAnd this in Pro mode:00B5 30FF MOVLW 0xFF00B7 00F7 MOVWF tmpPeriodAnd there are more examples there, but no, it does not insert literally NOP statements, but those extra MOVWF/MOVF, I guess we could be without those?Now, I don't have an disassembler at hand (any recommendations?) to check if it is like this also in 1.31..

author: neslekkim
author_rank: Super Contributor
timestamp: April 30, 2014, 11:16:28 pm
content: Quote from: dannyf on April 30, 2014, 11:09:34 pmOr others providing compilers, like Silabs, that licenses other compilers that you can use for free, but you cannot use the full codespace (I have an c8051f990 project going, luckily the free compiler matches the memory space..)But it seems like most for Arm(ST, Atmel, TI.. ), Avr and Microchip you have free, or other good alternatives (gcc), for me, it's only that hitch about compilers that says this for every compile that I don't like much: "The MPLAB XC8 PRO compiler output for this code could be 2343 words smaller." But ofcourse, it's "only" to turn it into pro-mode..But do you think Microchip earns most by selling silicon or software? (don't know if they have licenses of those bigger software libraries, that might change it all)

author: AndersAnd
author_rank: Frequent Contributor
timestamp: April 30, 2014, 11:17:33 pm
content: Quote from: miguelvp on April 30, 2014, 01:19:31 amhttp://www.eetimes.com/document.asp?doc_id=1280803

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:19:17 pm
content: QuoteSo does or doesn't the free compiler insert nop instructions?Maybe instead of inserting those nop instructions literally, the free compiler inserts those nop instructions "figuratively"?QuoteYou don't need a disassembler to see the disassembly. The compiler "literally" does that for you,

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:29:51 pm
content: QuoteOf those you mentioned above, only Atmel offers "free" and full featured compiler, in atmel-avr.TI's CCS is crippled (unless you use their launchpad); ST doesn't offer its own compiler; ARM offers a pretty expensive full-featured compiler. Microchip offered a full featured compiler, which in my view they should have paid their users to use it.ARM chips have free and full featured compilers but not offered by the vendors - you may be able to argue that ARM actually "maintains" a free compiler but I think that's a stretch.QuoteYou probably have to ask a Microchip insider for that. I don't think compiler sales are a big source for them in terms of revenue, but together with support, it could be meaningful profit.I also think that they have little to gain from offering free full featured compilers: people who are too unwilling / unable to pay for a full featured compiler are unlikely to buy lots of chips. Think about for all the noise and self-importance of Arduino, what profits does Atmel get?I think a big reason (and maybe the only reason) that Atmel offers a free full featured compiler is that gcc-avr was developed by others. It is a lot easier to offer other people's stuff for free to total strangers.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:32:13 pm
content: QuoteIt is hard to reconcile that sentence to itself,

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:33:10 pm
content: QuoteA much more interesting graph would be ASP for those three classes of chips.

author: ecat
author_rank: Frequent Contributor
timestamp: April 30, 2014, 11:34:33 pm
content: Quote from: neslekkim on April 30, 2014, 11:11:53 pmThese numbers look about right from my experience. If you take a look at the assembly used to implement various C functions you can, perhaps reduce the difference. The trick I used in one Pic16 project was replacing all the 'for' loops with functionally equivalent code using 'while' loops, quite a saving iirc.Should you need to use such tricks? No, but you don't have to. Buy a bigger PIC for pennies more or pay for the pro compiler. Sure it would be great to have full optimisation but even without it there are ways of getting the job done.Quote from: neslekkim on April 30, 2014, 11:11:53 pmI don't have 1.31 but previously: Window->Options->Disassembly Listing ... would show you the full assembly output.

author: dannyf
author_rank: Super Contributor
timestamp: April 30, 2014, 11:37:05 pm
content: From the example I ran, the pro did a lot of pruning of unused code.

author: mariush
author_rank: Super Contributor
timestamp: May 01, 2014, 12:57:33 am
content: Quote from: ecat on April 30, 2014, 11:34:33 pmYes, Window > Output > Dissasembly listing fileAlternatively, there's also Window > PIC Memory Views > Program Memory (and select code from the combo box) .. you can save to file and all that. But the above is more convenient as it adds the C code as comments.

author: miguelvp
author_rank: Super Contributor
timestamp: May 01, 2014, 01:07:30 am
content: Quote from: AndersAnd on April 30, 2014, 11:17:33 pmAccording to this article, the 16 bit ones plateauhttp://eecatalog.com/8bit/2014/01/31/microcontrollers-make-waves-in-automotive-and-internet-of-things/Edit: adding Figure 2 description from the article:QuoteBut yeah, the money per sale of the 8bit stuff is declining according to that article.Edit: but the F (Forecast) years is like predicting the weather, they got it wrong on your article so why should they have it right on this one? But the figures up to 2013 are good and solid.

author: jerry507
author_rank: Regular Contributor
timestamp: May 01, 2014, 05:14:03 am
content: I've found that the standard libraries that come with XC8 aren't as fully featured as they were in C18. I was porting a project from C18 to XC8 and some sprintf stuff didn't exist anymore. The compiler itself seems better, though it has had a lot of teething issues that they've been steadily (if not particularly quickly) fixing.But do I really mind? Not really. I can buy a PIC24 for the same price as the PIC18 I was using with better specs. Microchip clearly has target uses for their lines and the 8 bit stuff is steadily being pushed down in that matrix.And it can't be stated enough that if you're serious about using a processor family, buy the tools. We're mixing the hobby market (volumes of 1-5?) with the concerns of... well any other market with volumes higher than that. Who gives a toss about code space, or even code execution speed. You just buy a slightly bigger device or run the clock slightly faster in those applications. Pick a vendor, use them consistently, buy the tools and the amount of time you'll save will vastly outweigh the minor problems.

author: miguelvp
author_rank: Super Contributor
timestamp: May 01, 2014, 05:42:33 am
content: MikroC Pro for PIC generates pretty good code for the little tests I've made.

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 01, 2014, 08:06:53 am
content: Quote from: dannyf on April 30, 2014, 11:32:13 pmI mixed up the 8 and 16 bit graphs, it was 8 bit with a peak in 2010.

author: miguelvp
author_rank: Super Contributor
timestamp: May 01, 2014, 08:18:25 am
content: Quote from: AndersAnd on May 01, 2014, 08:06:53 amYou could have corrected it by saying that 16 bits had a peak in 2012.8 bit like the retro arcades still have a lot of legs left

author: andersm
author_rank: Super Contributor
timestamp: May 01, 2014, 03:00:07 pm
content: Quote from: linux-works on April 30, 2014, 02:20:08 pmThey're an artifact of the compiler design and the crap architecture of the 8-bit PICs. The compiler generates code before having allocated addresses for variables, so it must leave space for potential bank switches. The full compiler optimizes away the unneeded instructions in a later pass.

author: linux-works
author_rank: Super Contributor
timestamp: May 01, 2014, 03:04:48 pm
content: so, there was never a gcc-based tool chain for PIC? seems strange to me, that it was never done.I would like to use PIC chips and have the same options I have with avr, but not being gcc-based (or fully free based) really annoys me. I'm not a corporation and can't justify licensing fees and any of that BS. I know gcc is not the best technology around, but its old, mostly understood (lol) and covers a lot of ground. lots of people have used gcc based tools for decades and we have come to trust them for any kind of use, light or heavy.maybe I'm old school, but I know I can work with a project that uses gcc and makefiles.

author: dannyf
author_rank: Super Contributor
timestamp: May 01, 2014, 03:29:47 pm
content: "he full compiler optimizes away the unneeded instructions in a later pass."A guess like that is easy to confirm: compile a piece of code in free and count the number of nop instructions.I am always amazed that people are a lot more willing to regergitate what they heard from total strangers on the internet than to do their own (and simple) thinking.

author: andersm
author_rank: Super Contributor
timestamp: May 01, 2014, 04:35:52 pm
content: Quote from: linux-works on May 01, 2014, 03:04:48 pmThe 8-bit PIC architecture is a very poor fit for GCC. Although it does support some odd-ball architectures, it's really designed for register-rich, orthogonal architectures.Every once in a while someone brings up porting GCC for 8-bit PICs, but so far it's either proven too difficult or no-one's been serious about it.

author: ecat
author_rank: Frequent Contributor
timestamp: May 01, 2014, 05:54:33 pm
content: Just downloaded XC8 1.31 as an upgrade to 1.12. On the only pic16 source I have to hand ram usage increases by 2 bytes but flash usage is down by 332 words (about 10%). Not bad.In related news, Microchip have some sort of deal on XC32++, no real info as to what is offered, apart from the C++ extensions and Dinkumware. Whatever, the offer had the word 'Free' in the title so it must be good

author: Mechatrommer
author_rank: Super Contributor
timestamp: May 01, 2014, 06:05:33 pm
content: if there is a thread for this month, this is it. the most derailed and the most successfull troll ever. (i skipped several pages but...) surprisingly nobody spotted that the original link is a retarded mental by "the so called guru but in fact a not guru from the look of his arguments" talking about the wrong troll? instead of discussing a retarded guru everybody went discussing retarded avr vs pic issue that wasted many hours of people's time. i dont know who is this Nigel Jones and whats his problem with Microchip. no split window? need make file? the funniest thing is... breakpoint where it isnt. dude! as an advice, dont sniff a pot and write something in your official page! its just too embarassing. why this type of open letter troll got "not moved to general" from mcu section is out of my head.

author: andersm
author_rank: Super Contributor
timestamp: May 01, 2014, 06:24:36 pm
content: Quote from: ecat on May 01, 2014, 05:54:33 pmXC32++ licenses have AFAIK always been free, but it's just a license key for XC32 that enables compilation of C++.

author: nctnico
author_rank: Super Contributor
timestamp: May 01, 2014, 06:58:38 pm
content: Quote from: linux-works on May 01, 2014, 03:04:48 pmSDCC which is an open source GCC-ish compiler has some support for 8 bit PIC. The problem with PIC (and other archaic architectures like the 8051) is that they where never designed with using C as a programming language in mind. Their Harvard architecture, short stacks and banked memory make it hard to apply the flat memory model C is using. It takes a large amount of effort to make a C compiler for these kind of processors and even the commercial ones only implement a subset of the language.GCC is never intended to support these kind of architectures. IMHO GCC is not a poor man's choice either. The GCC compiler will give most commercial compilers a run for their money. Many processor manufacturers help to improve GCC for their CPUs. Even SDCC performed better for the 8051 than a commercial compiler I bought (15 years ago). The biggest difference between a commercial compiler and GCC is the availability of optimised libraries and a slick looking IDE to get started quickly.

author: linux-works
author_rank: Super Contributor
timestamp: May 01, 2014, 07:07:11 pm
content: I have not looked inside gcc, but I thought it would follow a 2 (at least) phase process; parsing c code into some middle abstraction, then generating code from that, for the target cpu. are you saying that those 2 conceptual phases are not clean, in gcc's architecture? (I'm not a compiler back-end expert so I don't know how hard it would be; but I always thought that compiling a high level language would have nothing at all to do with how the processor implements it. c flat model? what do you mean by that? c is just a language and it does not force any binary generated code concepts over than pushing stuff to a stack before a call, etc etc. not sure why C is 'hard' for some cpus, but there must be some subtle details I'm not seeing, in how gcc is actually implemented.in general, I do find it hard to understand why a high level language would, at all, be 'easier' on some cpus than other. code gen is code gen and of course, you need a code generator and optimizer for each different cpu arch. so what?

author: nctnico
author_rank: Super Contributor
timestamp: May 01, 2014, 07:49:34 pm
content: Quote from: linux-works on May 01, 2014, 07:07:11 pmLet's put it this way: for 8 bit architectures like 8051 and PIC you can't use the 2 phase approach if you want to create efficient code. The compiler needs to look what kind of C construct is used and translate that into something which can be used on the PIC or 8051. One thing C compilers for 8 bit architectures do is trace which function is called from where and create a fixed memory location for all variables which are supposed to be on the stack. This is called an overlay to emulate a stack. For that the compiler has to figure out which execution paths exist (main process, IRQ processes, re-entrant functions). It gets really hairy when a function is called from both the main process and an IRQ. And that is just one of the challenges. Another problem is banked memory. The compiler has to figure out where a pointer can point to and determine it needs to add information to the pointer which kind of memory it points to or not. And produce code which can deal with such a pointer. Creating such a compiler is an art in itself.edit: typos

author: zapta
author_rank: Super Contributor
timestamp: May 01, 2014, 08:35:22 pm
content: Quote from: nctnico on May 01, 2014, 07:49:34 pmEvery first class compiler is a work or art, none of them is 'trivial', and each architecture has its idiosyncrasies. Here is a sample list of gcc optimizations taken from this articlehttp://www.linuxjournal.com/article/7269

author: neslekkim
author_rank: Super Contributor
timestamp: May 02, 2014, 10:41:41 am
content: Quote from: mojo-chan on May 02, 2014, 10:09:28 amDoes it need to be EXACT NOP statements?C code:tmpPeriod=255;Compiles to this in Free mode:00C3 30FF MOVLW 0xFF00C4 00F8 MOVWF 0x7800C5 0878 MOVF 0x78, W00C6 00F5 MOVWF tmpPeriodAnd this in Pro mode:00B5 30FF MOVLW 0xFF00B7 00F7 MOVWF tmpPeriodThose two MOV statements:00C4 00F8 MOVWF 0x7800C5 0878 MOVF 0x78, WAre those usefull?, other than wasting and cycles? Are they anything other than an NOP? (which also only exist for same purpose?)

author: dannyf
author_rank: Super Contributor
timestamp: May 02, 2014, 11:10:57 am
content: QuoteThat (the use of NOP) was the accusation here. So yes.QuoteThey are not useful in that particular case.Can they be useful? Yeah.QuoteAn NOP can exist for a lot of valid reasons.

author: neslekkim
author_rank: Super Contributor
timestamp: May 02, 2014, 03:02:45 pm
content: I would say you are nit-picking a bit now, NOP instruction is useful on its own (it can be for word alignement on cpu's that benefits that, can be to make correct delay loops etc).Those mov instructions are ofcouse useful where you need them, but inserted as is now, not so. And if it was nop or those mov instructions, same-same, they just take space and cycles. Similar to the earlier Goto tricks that was used, but that is now removed.Anyway, it gets better.. Found the disasembly function for the code in mplab, seems like lot of dead code are removed as you also found, will try to compare some code similar to those used in the article I linked, to see if it is like this on the 1.31 compiler.

author: dannyf
author_rank: Super Contributor
timestamp: May 02, 2014, 04:04:33 pm
content: QuoteAs pointed out earlier, you probably want to step back and see a bigger picture. The compiler, in the initial steps of translating C to assembly, is simply putting canned pieces (template) to each sentence. It is quite feasible to understand that those canned pieces are designed to be generic, thus ****necessarily**** inefficient (so that they will work under all conditions). The inefficiency is less of a concern as it can be addressed with the optimizer later.You are arguing that those templates are designed ****purposefully**** or even ****punitively**** inefficient. I think you have a very high hurdle to hit, particularly for the latter.

author: dannyf
author_rank: Super Contributor
timestamp: May 02, 2014, 04:05:09 pm
content: Just to add: the same inefficiencies can be observed in other compilers too.

author: retrolefty
author_rank: Super Contributor
timestamp: May 02, 2014, 04:47:20 pm
content: Rather then to push it off as some kind of evil malfeasance, could it not just be the fact that the 'free version' just lacks or turns off all compiler optimization functions, and the for fee pro version allows for enabling the various optimization options.Complaining that the free version is not as feature rich as the pro version seems a little strange to me. Now if the pro version with all optimization options turned off still generates 'better code' then the free version, then maybe there is something to complain about, but is that indeed the case?

author: andersm
author_rank: Super Contributor
timestamp: May 02, 2014, 04:51:04 pm
content: Quote from: retrolefty on May 02, 2014, 04:47:20 pmIt has always been clearly stated that the free version has limited optimizations, it's only crazy people that claim they're intentionally sabotaging their own compiler.

author: dannyf
author_rank: Super Contributor
timestamp: May 02, 2014, 04:56:51 pm
content: QuoteI think it is clearly communicated, but may not have been as clearly understood by some, that the free version has no optimization (either from day 1 or after a period of time).QuoteI think people have migrated to suggesting (?) that NOPs or similar "waste-of-time" instructions have been intentionally added to the free version with the express / sole(?) purpose of degrading its performance.I haven't seen much proof for such an argument, and I find it logically difficult to understand from a chip vendor's perspective.

author: dannyf
author_rank: Super Contributor
timestamp: May 02, 2014, 04:58:11 pm
content: QuoteParticularly when you are in the business of (also) selling chips. Slowing down your own compiler, thus your chips, makes no sense to me.

author: neslekkim
author_rank: Super Contributor
timestamp: May 02, 2014, 10:29:16 pm
content: Quote from: dannyf on May 02, 2014, 04:58:11 pmWas not implying that, after all, the compiler came from someone who was selling compilers, not silicon.. but since they now are bought buy the silicon vendor, some forgets the origin, and complains about that. (me also, probably, before understanding the fact)

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 02, 2014, 11:36:22 pm
content: It's a while ago so I may be misremembering, but I think that before Microchip bought Hitech, Hitech's free version was code-size and/or device limited, with normal optimisations, so the de-optimising was a later change after Microchip bought it.

author: dannyf
author_rank: Super Contributor
timestamp: May 03, 2014, 12:27:32 am
content: QuoteGoogle Hi-tech OCG.and / or Hi-tech's Lite license for its compilers.And if you are interested, get a pre-OCG compiler (9.60 std or pro or even 9.65) and compare its code generation vs. post-OCG compilers.

author: nctnico
author_rank: Super Contributor
timestamp: May 03, 2014, 10:23:13 am
content: Quote from: andersm on May 02, 2014, 04:51:04 pmIMHO its crazy people use controllers for which no good free compiler is available. The last time I used a commercial compiler was 20 years ago. And even that one was given away for free by the distributor selling the controllers. A free 'crippled' compiler is just a gold plated turd.

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 03, 2014, 10:31:46 am
content: https://en.wikipedia.org/wiki/Microchip_Technology#HI-TECH_SoftwareQuotehttp://electronicdesign.com/embedded/whole-program-c-compiler-optimizes-across-modulesQuoteHi-Tech Omniscient Code Generation whitepaper:http://www.htsoft.com/news/070309_Whitepaper-OmniscientCodeGeneration_FINAL.pdfOmniscient Code GenerationA whole-program compilation technology for superior code density and performanceby Clyde StubbsCEO and Founder, HI-TECH Software

author: dannyf
author_rank: Super Contributor
timestamp: May 03, 2014, 11:35:08 am
content: QuoteYeah. That's why I never hire good programmers who are not free,If you need an example of people going against their self-interest, you need to look no further.

author: nctnico
author_rank: Super Contributor
timestamp: May 03, 2014, 05:58:00 pm
content: Quote from: dannyf on May 03, 2014, 11:35:08 amSo Microchip should make money from their compiler and not their chips? Even the FPGA vendors are giving away their development tools for free. Why is Microchip so far behind?

author: linux-works
author_rank: Super Contributor
timestamp: May 03, 2014, 06:03:26 pm
content: it could just be that the company is slow to change and realize what is a cost center and what is a profit center.not every company can admit that things have changed and change themselves, internally, to support it.I would like to not care, at some point, what family of chip I use. I'd really like all my tools to be gcc-based so that I don't have to keep relearning stuff needlessly. or at the very least, similar enough and without any 'funny stuff' going on. if that ever happens, I'll start to consider other vendors and their chips in my designs and builds. (again, all DIY based and targeted, not meant for high count production runs).

author: andyturk
author_rank: Frequent Contributor
timestamp: May 03, 2014, 06:06:04 pm
content: Quote from: nctnico on May 03, 2014, 10:23:13 amThis.

author: jaxbird
author_rank: Frequent Contributor
timestamp: May 03, 2014, 06:15:19 pm
content: Joining a bit late, but anyway, the op article is of course severely flawed and written by someone who didn't spend more than 60 minutes with mplab back in 2011. And didn't bother to check whether his complaints were factual or not.Anyway, MPLAB (X) today still isn't great, I think mostly due to their mistake of choosing the poor and outdated Java platform. It's a memory hog and very slow. I'm sure they can do better than that.But all in all, it does work and it does the job once you get used to it. The PICKIT3 is still a bit wonky though, if you want to work with their older 8 bit devices etc, better make sure you still have a PICKIT2 around.

author: andersm
author_rank: Super Contributor
timestamp: May 03, 2014, 06:53:20 pm
content: Quote from: nctnico on May 03, 2014, 05:58:00 pmUnless it's changed recently, you still have to pay if you want to use the newest and largest devices.Quote from: jaxbird on May 03, 2014, 06:15:19 pmThat's more a problem with Netbeans than Java. There's plenty of well-performing Java software.

author: jaxbird
author_rank: Frequent Contributor
timestamp: May 03, 2014, 07:06:22 pm
content: Quote from: andersm on May 03, 2014, 06:53:20 pmYou are probably right, but still Netbeans is primarily Java, so same thing to meSun did nice C innovations with Java but didn't win the battle.

author: dannyf
author_rank: Super Contributor
timestamp: May 03, 2014, 07:58:51 pm
content: QuoteMicrochip should make money from whatever they like. None of my business or your business how they make money; I only care at end of the day if they offer me value for my money.QuoteNot sure what "the FPGA vendors" you are referring to. But plenty of them charge plenty of money for their development tools. You would know this if you did even superficial amount of work on FPGA.QuoteFollowing the herd is the strategy one takes if one cannot think for themselves.

author: dannyf
author_rank: Super Contributor
timestamp: May 03, 2014, 08:01:28 pm
content: QuoteTwo ways to get you there:1) make yourself the center of the universe;2) if that doesn't work, write your own gcc-based compilers.If 2) doesn't work out for you, pray that somebody else does it for you.Insisting that others do it for you doesn't get you anywhere, unless 1) is true.

author: Rufus
author_rank: Super Contributor
timestamp: May 03, 2014, 08:23:23 pm
content: Quote from: nctnico on May 03, 2014, 05:58:00 pmThe Microchip compilers used to be cheap. About $500 for a perpetual license, support, and updates.After the Hi-Tech acquisition they got more expensive, with an obnoxious licensing and activation scheme and a 'High Priority Access' support subscription that no one knows what you get for paying it other than free major updates of where there hasn't been one so far.This idiocy seems to have been inherited from Hi-Tech, it really feels like who ever was responsible at Hi-Tech for the Microchip acquisition (which scrapped all Hi-Tech products except the two 8 bit Microchip compilers) is in charge of the compiler department at Microchip.

author: neslekkim
author_rank: Super Contributor
timestamp: May 03, 2014, 08:30:00 pm
content: Quote from: Rufus on May 03, 2014, 08:23:23 pmYeah, didn't HiTech make compiler for other platforms to?, what happened to those?

author: jaxbird
author_rank: Frequent Contributor
timestamp: May 03, 2014, 08:59:49 pm
content: IMO one of Microchips strong points is that you can easily and cheaply get really old chips from them.And of course they do have total domination on the 16 bit segment. Nothing I know of can compete with their PIC24 series in 16 bits price/performance.

author: gocemk
author_rank: Regular Contributor
timestamp: May 03, 2014, 09:11:08 pm
content: Quote from: dannyf on May 03, 2014, 08:01:28 pm

author: linux-works
author_rank: Super Contributor
timestamp: May 03, 2014, 11:39:08 pm
content: that's bullshit.I'm not going to waste any time WRITING a tool FOR some damned vendor. fark that! if the vendor does not want to compete, fine, I will use the other guy.the whole compiler MESS with mcp just turns me off and since there are cleaner solutions for me, I will go with them. its just that simple, folks. make the tools work smooth for me and I'll consider your hardware products. make the tools harder and less standard (compared to what many users already are familiar with and trained on) and you get less of our business.its one reason cisco eats everyone else's lunch. the training base is there on cisco gear (as an example) and once people are trained on a tool set, they tend to want to keep using that set.

author: mariush
author_rank: Super Contributor
timestamp: May 04, 2014, 12:17:00 am
content: The tools work smooth and the compiler is as standard as it can be, and it is free and good. You're just throwing a hissy-fit because you don't get the best/"ultimate" version of the compiler.The IDE is free, it's good, it's based on Netbeans so it can be easily improved by third party developers.. the compiler works just fine.At the end of the day, if you're making a product that sells in tens of thousands or several products, you're not going to care about a one-time fee of $1000, the cost of the premium version. If you make something that sells in 10k and by using the premium version you can reduce the size of your code to fit into a PIC that costs 10 pennies less in volume, then you've basically recuperated the money for the compiler.If you're a hobbyist, you can use the free version and if you find it produces too "loose" code, you can either choose a bigger sized PIC chip (there's loads of choices) or use a third party compiler.. you haveMikroC(about 249$),CCS(command line compilers starting from only $50!)... you don't HAVE to pay $1000 to get the absolute smallest code or most efficient one out there.You have CHOICES.Same as with Atmel chips (AVR) ... you have the free gcc based compiler which may or may not be the best, but you can also pay 1500$ forCrossworks for AVRor 200$ forMikroBasic PRO for AVRor other AVR solutions... or anything in between.

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 01:12:19 am
content: QuoteOr you just cannot handle it.QuoteA little bit too much self-importance? I don't think they care about you, or even have heard of you there.QuoteI guess that's why CISCO is losing market share fast,

author: linux-works
author_rank: Super Contributor
timestamp: May 04, 2014, 01:23:55 am
content: why do you keep insisting on trying to make this about 'me' ?clearly, there are others who feel the same way I do. we don't want to have a separate compiler for each damned product or chip. that is not sensible and if you don't -have- to deal with a different tool chain, why should you?its just that simple, danny. and please, stop with the attempt to personalize this. its not a very good argument style and its not appreciated, ok?

author: mariush
author_rank: Super Contributor
timestamp: May 04, 2014, 01:40:38 am
content: Why do you say "we"? You're not the spokesperson of anyone here. It's just your opinion.You don't have a separate compiler for each damned product or chip. Microchip has a compiler for all 8 bit microcontrollers, one for all their 16 bit microcontrollers and one for all of their 32 bit microcontrollers.I don't want one compiler for everything... the old expressionJack of all trades, master of noneis perfectly valid here.Microchip sells a product, and makes everything clear. If you don't like a product you don't have to purchase it. You're free to express your opinion, but that doesn't mean your opinion is correct.

author: linux-works
author_rank: Super Contributor
timestamp: May 04, 2014, 01:53:28 am
content: yes, *microchip* may have compilers for their chips, but if I cross into another company, then I have to use different compilers, linkers, debuggers, etc?getting back to the arduino vs microchip comparison, the arduino chip 'family' makes use of tools that are already installed or very easily installed on our systems. for any linux user, it could not be easier (apt-get install arduino). no dumbed down versions to worry about, no upgrade troubles (apt-get will keep your apps updated), always staying at a reasonably current version and ability to install freely anywhere you want, even built from source. there is no such analog in the mcp world (is there?). and so, for an opensource hw/sw person, the gcc and apt-get way is the path of least resistance and just the obvious choice if I had to choose between this and some very custom vendor-specific set of compiler tools.note, I'm not crediting atmel, necessarily, for any of this and I'm not necessarily blaming microchip. I'm simply saying that if I'm doing open source development, the first thing I'd choose is the standard easy toolchain that is free in every sense of the word and has quite usable performance, both as a tool and as generated output code. for open source projects, its rare that an atmel or arduino-compatible chip isn't enough to solve your controller problem. if you need more power, many will jump right up to an embedded linux board of some kind and skip all middle steps (these days, those linux boards are arm chips).that covers the spectrum for embedded use. atmel 'open' chips for low end and linux single board small systems for stuff that goes between the lower end and full blown unix hosts.

author: mariush
author_rank: Super Contributor
timestamp: May 04, 2014, 02:19:47 am
content: So by your reasoning, if I make a revolutionary 8bit microcontroller tomorrow, I shouldn't sell it or people shouldn't use it simply because linux distributions don't have ready make packages for beginners like you, or because gcc doesn't support yet this revolutionary architecture?The 8bit PICs are a different architecture, with various quirks and differences that makes it very difficult for someone to adapt gcc to compile binaries to this architecture. GCC simply isn't capable of compiling code for it now, just as I'm sure there's lots of other 4bit and 8bit and x bit microcontrollers that gcc doesn't support. GCC isn't the "ultimate" compiler out there.QuoteYeah, let's settle on the most generic compiler out there, that makes the most generic binary, that has the most average optimizations, every microcontroller should work the same because you're too lazy to actually download some source code and compile it to a binary and install it with provided scripts. Every chip manufacturer shouldn't do something innovative that may just make their chips not compatible with the plain boring generic gcc or some other open source chain because user linux-works won't be able to say apt-get install arduino anymore.QuoteWhy does this surprise you? You may have to. It all depends on the architecture of those chips, and how well those architectures are suited for what's out there, for open source compilers, linkers, debuggers.If Microchip doesn't have the man hours to contribute to gcc to make something happen, if people all over the world don't contribute to gcc to make it happen, you have no choice. gcc doesn't make itself, people contribute code to itAlso, lots of these small lightweight microcontrollers are cheap and simple, universal/standard features like JTAG to debug and program would make the die of the chip too large and potentially make the chips commercially un-viable. See for examplePIC10F200, which has only 6pin and 384 bytes of program space... you seriously expect something like this to have universal debugging or some other silliness? GCC is so big and optimized for bigger architectures with more registers and memory that it couldn't even compile something considering the restrictions of such a chip.

author: David_AVD
author_rank: Super Contributor
timestamp: May 04, 2014, 02:32:27 am
content: I use MPLAB X as well as Atmel Studio and find overall they are both ok. There are things that I don't like about each, but they are not show stoppers. I simply use the (free) tools and get on with the job at hand.

author: miguelvp
author_rank: Super Contributor
timestamp: May 04, 2014, 02:40:40 am
content: I like mikroC although its stupid at times:Code:;MyProject.c,11 :: digits = digits = digits  = '0';0x0018 0x3030 MOVLW 480x0019 0x00F3 MOVWF R1+20x001A 0x3030 MOVLW 48 ; No need0x001B 0x00F2 MOVWF R1+10x001C 0x3030 MOVLW 48 ; No need0x001D 0x00F1 MOVWF R1vs MPLAB XCode:93: digits = digits = digits  = '0';0016 3030 MOVLW 0x300017 00F7 MOVWF 0x770018 00F6 MOVWF 0x760019 00F4 MOVWF 0x74 ; no need001A 0874 MOVF 0x74, W ; no need001B 00F5 MOVWF digitsAlthough MPLAB X is stupid too:Code:95: digits++;0020 3001 MOVLW 0x10021 00F4 MOVWF 0x74 ; no need0022 0874 MOVF 0x74, W ; no need0023 07F7 ADDWF 0x77, Fvs mikroCCode:;MyProject.c,13 :: digits++;0x0022 0x0AF3 INCF R1+2, 1Seems like MPLAB X doesn't know the PIC12 can do increments so it does it the hard way and putting those extra movesbut mikroC can be retarded too:Code:;MyProject.c,22 :: digits += in_val;0x002E 0x0842 MOVF main_in_val_L0, 00x002F 0x0771 ADDWF R1, 00x0030 0x00F0 MOVWF R00x0031 0x0870 MOVF R0, 00x0032 0x00F1 MOVWF R1sure I'm using index 0 of the array, so why doesn't it know it's the first element instead of doing the superfluous indexing?The thing is compilers are not that great, they waste space and cycles, nothing new there since they keep producing versions that are 10% better than the previous one, meaning they are not close to be ideal by any standard.Best compiler out there is the Intel one, but that's for x86 systems and they are still improving it.For big projects C++/C is a necessary evil, you couldn't cope doing it all in assembly. but for PIC12 you do have a choice, assembly is really not that hard and PIC12's branching is as hard and unintuitive as any mcu assembly can be.

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 10:55:08 am
content: QuoteBecause you are participating in this conversation? Tough to have a conversation with people who aren't here.QuoteWe? Who is "we"? When did you appoint yourself the spokesperson for other people?QuoteThat's a great way to kill innovation - including your beloved avr.

author: nctnico
author_rank: Super Contributor
timestamp: May 04, 2014, 11:11:55 am
content: Quote from: linux-works on May 04, 2014, 01:53:28 amI agree. Using one IDE and one toolchain makes life a lot easier when dealing with multiple targets/platforms.

author: neslekkim
author_rank: Super Contributor
timestamp: May 04, 2014, 11:26:19 am
content: Quote from: nctnico on May 04, 2014, 11:11:55 amWell, there are lot of resources of using the compilers under eclipse if that is the goal.

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 02:03:14 pm
content: QuoteI think he (they? since "he" thinks he speaks for others too) was asking for "literally" one tool chain (compiler/linker/debugger) for all chips. Solutions under an IDE like Eclipse is one IDE but (potentially) multiple toolchains (CCS would be a good example for that).What he (they?) was asking is to have open source tools in closed source systems. A little bit of an oxymoron if you ask me: if you really want to work on an open source system, obviously a closed source system should be in your sight.

author: linux-works
author_rank: Super Contributor
timestamp: May 04, 2014, 02:31:52 pm
content: I've had enough of your shenanigans, danny. welcome to my blocklist. when you can't carry on a conversation without making it personal, I'm done with you. shame, too, since you do have some good insights. but with your constant wanting to make this into something personal, I have no choice but to ignore you from now on. not that you'll care, but if you post anything directed to me, you'll understand why I won't be replying to your posts anymore.the thread has been generally informative and useful, but clearly you have run out of ideas and now resort to childish attacks. I want none of that, danny. please grow up.

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 04, 2014, 03:50:44 pm
content: Quote from: linux-works on May 03, 2014, 06:03:26 pmAnother, but commercial option is IAR Embedded Workbench. Quite expensive though so not for hobbyist. But they make C-compilers for many different MCU families, like ARM, AVR, AVR32, MAXQ, CR16C, SAM8, STM8, MSP430, 8051 and a number of families from Freescale and Renesas:http://www.iar.com/Products/IAR-Embedded-Workbench/Actually IAR was consulted when initially designing the AVR architecture to help make it a more C-friendly architecture than C-unfriendly architectures like 8051 and PIC16. And because of this collaboration IAR made the first C-compiler for AVR. For a long time Atmel's AVR code examples were compiled in IAR. Now they have integrated the free GCC in their own tool-chain though.I've read MSP430 and ARM are even more C-friendly.Like GCC there's no IAR compiler for PICs though.

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 03:54:35 pm
content: QuoteThey did support some PICs for a while.

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 03:57:11 pm
content: QuoteThat is one of the reasons that I use IAR, aside from their utilitarian UI.However, that's not going to solve his (their?) issue: he/they want to have a free open source compiler / toolchain for all mcus. Even IAR has different compilers for different chips and it is as far from free and open source as it is possible.

author: neslekkim
author_rank: Super Contributor
timestamp: May 04, 2014, 04:01:53 pm
content: Quote from: dannyf on May 04, 2014, 03:57:11 pmBad idea, we can give up talking about optimizations for the various mcu's then.I don't see the problem in various toolchains for each mcu, it's good if the toolchain is standalone so you can use it with you ide/editor of choice, but that is just an small part of setting things up I would guess, and one could still use common tools for the build process, so one have same project-file/makefile format if that is a point, but one compiler to rule them all?, nah..

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 04, 2014, 04:06:10 pm
content: Quote from: dannyf on May 04, 2014, 03:54:35 pmThese IAR page showed up using Google:http://www.iar.com/Products/IAR-Embedded-Workbench/Microchip-PIC18/Product-packages/Quotehttp://www.iar.com/Products/IAR-Embedded-Workbench/Microchip-dsPICPIC24/Product-packages/QuoteBut this info isn't valid any more? IAR doesn't actually offer these PIC18 and dsPIC/PIC24 compilers anymore?It's not mentioned in their list of supported manufactures/architectures in the list on the left.I wonder why they would retire it again? Too many bugs or too few who bought it?

author: nctnico
author_rank: Super Contributor
timestamp: May 04, 2014, 04:16:30 pm
content: Quote from: neslekkim on May 04, 2014, 04:01:53 pmWhat you want is a common toolchain so you can use the same options, linker descriptions files, etc for every platform. GCC (actually GCC + binutils + GDB) does that. You can use the same code on Linux, Windows, OSx and many microcontrollers without needing to change IDE or compiler. Using 'one compiler' doesn't mean you need to give up on optimisations. The back end of GCC (the part which generates the machine code) is tailor made for each target.

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 04, 2014, 04:20:55 pm
content: Quote from: andersm on May 01, 2014, 06:24:36 pmAccording to this only the XC 8 compiler for PIC 10/12/16/18 MCUs is Hi-Tech PICC based while both the XC 16 compiler for PIC 24 MCUs and dsPIC DSCs + XC 32 for PIC 32 MCUs are GCC based:http://gerrysweeney.com/microchip-pic-chips-could-have-been-the-power-behind-arduino/#comment-4216Quote

author: dannyf
author_rank: Super Contributor
timestamp: May 04, 2014, 04:39:23 pm
content: QuoteXC16 = C30;XC32 = C32.QuoteTheir PIC offerings never caught on - I suspect that the free C18 was too enticing for PIC users, and PIC24 came on too late.

author: poorchava
author_rank: Super Contributor
timestamp: May 05, 2014, 07:41:29 am
content: Microchip doesn't give a shit about hobbyists. And neither does any other semiconductor company.Microchip's strengths are long product life, dedicated replacements for obsolete products and good support forvolumecostomers. Weaknesses are lack of low-cost/free IDE (not a problem for business customers), buggyness of silicon (again, can be mitigated when you are a big company) and kind of obsolete architecture.

author: dannyf
author_rank: Super Contributor
timestamp: May 05, 2014, 11:05:13 pm
content: QuoteTrue. But that has proven to be fairly difficult for some people to understand and accept.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 05, 2014, 11:22:01 pm
content: Quote from: dannyf on May 05, 2014, 11:05:13 pmBut Microchip have a long track record of supporting lower volume users.They pioneered OTP when everyone was using maskrom, parts have always been easy to get in low volumes, datasheets are very good, they have way more DIP options than anyone else, rarely if ever make parts obsolete, have low cost programmers and emulators, and a very low cost programing service.I can't think of any other maker that comes close across all these aspects.

author: fcb
author_rank: Super Contributor
timestamp: May 06, 2014, 09:45:26 am
content: Quote from: poorchava on May 05, 2014, 07:41:29 amUtter rubbish.Why do things like the pickits exist? Why is the ICD3 such a good price (take one apart if you don't believe me)? MPLAB IDE is free and as far as I can remember always has been, I only write in assembler so can't comment on the C compliers though.I've only ever hit one undocumented bug on the silicon - the errata is excellent.Obsolete architecture - I don't think so... Have you looked at the PIC24 or the dsPIC33? The only misstep I can think of is the PIC32 (and it's probably fine for what it does - I never bothered learning MIPS4K assembler).

author: Unknown
author_rank: Unknown
timestamp: May 06, 2014, 11:46:21 am
content: When I did a small assembler project in MPLAB a few years ago I remember it wasn't that nice to use as an IDE; but since then I'm really happy with just using Codeblocks and setting up my own build tools to the various compilers; if anything I've learnt so much more doing that way that I must thank MPLAB for being awkward for me to use :-)

author: dannyf
author_rank: Super Contributor
timestamp: May 06, 2014, 12:18:04 pm
content: QuoteBig fan of CB myself. Great tool, and a big reason I use EmBlocks on PIC24 chips. A life saver.

author: poorchava
author_rank: Super Contributor
timestamp: May 06, 2014, 12:37:44 pm
content: They might be fine with assembler. Nevertheless there is no solid and free compiler for Microchip devices. Not that I care - For small stuff I use ATTiny's and for bigger Cortex M0/M3/M4. One recent exception is replacing 3 PWM generators with PIC10F200 due to space limitations.Rdg debuggers:As for Atmel - IIRC their AVR Dragon is not that expensive - 50€ or thereabouts. IDE is free and very usable (IMO). Other than that you can get USBASP clone on ebay for $2 or so shipped. And those clones generally work.Microchip - I have never used ICD3. A friend of mine had it and it just died. Pickit's fine. It works very stable on any OS I have tried. Value for money is really high on that oneSTM32 -> buy a 12€ eval board and you're set for all STM32 devices. Win!

author: Unknown
author_rank: Unknown
timestamp: May 06, 2014, 09:00:28 pm
content: Quote from: dannyf on May 06, 2014, 12:18:04 pmI just installed EmBlocks and had a play - thanks for the tip!

author: dannyf
author_rank: Super Contributor
timestamp: May 06, 2014, 10:00:09 pm
content: I do my best to avoid Mplab/Mplab X - because of that, I don't use 18F parts.EmBlocks has been a life saver for me as I love the 24F parts.

author: AndersAnd
author_rank: Frequent Contributor
timestamp: May 06, 2014, 10:20:21 pm
content: Quote from: poorchava on May 06, 2014, 12:37:44 pmIf you prefer to use AVR over PIC, Atmel has started making 6-pin tinyAVRs [ATtiny4, 5, 9 & 10] to compete with the 6-pin PIC10 series from Microchip.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: May 06, 2014, 10:25:06 pm
content: Quote from: poorchava on May 06, 2014, 12:37:44 pmYes there are - XC16 and XC32.Though the free version of XC8 isn't very efficient, it is perfectly "Solid" IME

author: Unknown
author_rank: Unknown
timestamp: May 06, 2014, 11:45:23 pm
content: Quote from: mikeselectricstuff on May 06, 2014, 10:25:06 pmSDCC is also free and very usable for PICs.

author: violet
author_rank: Newbie
timestamp: May 09, 2014, 05:27:34 pm
content: Quote from: poorchava on May 05, 2014, 07:41:29 amOf course they are going for volume, the devices cost so little that in order to make any reasonable profit they have to sell lots.That being said, as I mentioned earlier most of my microchip devices have come through their samples program - as in they gave them to me for free in small quantities.Im not sure what you mean exactly by an IDE, what microchips always offered for free has been enough for me and is what I would consider a fitting IDE for it's intended purposes.And obsolete architecture? how can something that is still in widespread use be obsolete?

author: nctnico
author_rank: Super Contributor
timestamp: May 09, 2014, 10:14:49 pm
content: There is still a wide spread use of horse & carriage among the Amish....

author: violet
author_rank: Newbie
timestamp: May 10, 2014, 04:22:58 pm
content: LOL! but yeah, i'm pretty sure you missed the term "widespread use" hardly applies to them secluded types!

author: 22swg
author_rank: Frequent Contributor
timestamp: May 11, 2014, 08:54:52 am
content: The Trabant had 'widespread' use. Not to bothered about the compiler but how the IDE performs ...

author: violet
author_rank: Newbie
timestamp: May 12, 2014, 10:47:01 pm
content: Quote from: 22swg on May 11, 2014, 08:54:52 amawwww! how sweet! I totally want one!!!! but yeah, think your missing the point. The architecture might be old but it's far from obsolete. There might be newer things capable of doing better but there is so much produced by that reliable old architecture that it's really worth learning.Quote from: scientist on May 11, 2014, 01:48:15 amwhy not, it's fun!

author: nctnico
author_rank: Super Contributor
timestamp: May 12, 2014, 11:48:58 pm
content: Quote from: violet on May 12, 2014, 10:47:01 pmMajorWhy try to do things the hard way when there is an easy way? I really don't get why people would want to start or keep using the 8 bit PICs or 8051. Maybe some secluded types who like to play with vintage stuff... I would have given my left nut and then some for an ARM based microcontroller when I started out with microcontrollers (8051, Z80, 68HC11) over 20 years ago. The possibilities are infinite nowadays. So much cool technology to play with these days that it is almost a crime punishable by death to stick with the obsolete stuff O0I'm starting to become a bit of an old fart and I really envy the possibilities younger people have nowadays to make really cool electronics in their attic or shed. I didn't had that when I started to tinker with electronics. I had to buy parts piece by piece from a local electronics store which didn't had a very large assortment and scrape information together from books from the library and look hard to score a datasheet book with information on interesting chips.

author: engineer_in_shorts
author_rank: Regular Contributor
timestamp: May 13, 2014, 08:06:42 am
content: Quote from: AndersAnd on May 04, 2014, 04:06:10 pmI think they keep it available for projects that need maintenance, but is not actively marketed.I heard that the problem is there wasn't much interest in the product as Microchip did not support it.

author: Bassman59
author_rank: Super Contributor
timestamp: May 15, 2014, 10:20:00 pm
content: Quote from: nctnico on May 12, 2014, 11:48:58 pmI don't know of anyone who uses an actual i8051 or 80C51 or 87C51, but the modern variants (such as the Silicon Labs devices) are pretty great -- lots of flash for program store (no need for the external EPROM), lots of RAM, lots of peripherals including ADCs and DACs, and even USB.They're certainly not the 87C51 which was the basis of my university senior design project.Having said that, lots of ARM Cortex parts are cheaper.

author: jerry507
author_rank: Regular Contributor
timestamp: May 15, 2014, 11:12:05 pm
content: I have some legacy products at work that use 8051 but nothing new. That's all NXP arms. However I feel like I don't actually understand the modern 8051 landscape very well. I know the core goes into a lot of very modern micros and it's still used a lot, but I don't really know who uses them and why they do, aside from the "no core royalty makes them cheap" argument. Again, what does that cost? I don't know because I'm not plugged into that at all.Seems like most core arguments are mostly a question of familiarity and much less about what the actual differences are.

author: dannyf
author_rank: Super Contributor
timestamp: May 15, 2014, 11:18:23 pm
content: QuoteRoyalty is minimum: the arm royalties are in the pennies per chip.QuoteI think it is primarily a marketing and software thing: ARM is all the rage, not necessarily because it is that much faster, low consumption or more reliable, etc. It is just in, for some reasons so you observe lots of herd behaviors on that.From a software perspective, 8051 has one of the largest installed base so lots of projects can be easily recompiled on newer / faster 8051 cores and you are ready to go.

author: miguelvp
author_rank: Super Contributor
timestamp: May 15, 2014, 11:24:29 pm
content: Quote from: jerry507 on May 15, 2014, 11:12:05 pmcouple of examples out of many:http://www.atmel.com/Images/doc4109s.pdfhttp://www.cypress.com/psoc3/?source=CY-ENG-HEADER

author: Bassman59
author_rank: Super Contributor
timestamp: May 15, 2014, 11:34:25 pm
content: Quote from: jerry507 on May 15, 2014, 11:12:05 pmAn 8051-variant vendor doesn't need to pay Intel a royalty for intellectual property. ARM is not a manufacturer; they hold the IP and license it to anyone willing to pony up for it. I'm not sure that such lack of royalty in itself makes the 8051 significantly less expensive than ARM, for example. In fact, just scan some price lists and you'll see that many well-outfitted ARMs are cheaper than some 8051s.QuoteThat's often the case.But look at it this way: if you've sprung for the Keil 8051 toolset and your applications are not strictly cost-sensitive (that is, you're not selling lots of product per month), why not continue to use the old familiar? It works, you have the tools and as such your development time is reduced.In these cases, you'd consider an alternate device family if you need more horsepower or peripherals which your preferred family doesn't have.If you're starting from tabula rasa, then I'd say look at ARMs and skip the 8051.

author: nctnico
author_rank: Super Contributor
timestamp: May 16, 2014, 12:17:19 am
content: Quote from: Bassman59 on May 15, 2014, 10:20:00 pmNXP, Infineon, et al have sold 8051 with lots of peripherals for several decades. No matter how much you beef up an 8051 an ARM always does a lot more per MHz than an 8051 especially if you need to move memory around or work with numbers which are larger than 255. Recently I got a re-design project where people tried to do some heavy signal processing with an 8 bit PIC... They choose it because they knew it and didn't look for a better fitSticking with what you know is OK but try to get to know something which doesn't run out of steam going up the first hill OR know your limits.

author: engineer_in_shorts
author_rank: Regular Contributor
timestamp: May 16, 2014, 08:34:21 am
content: Quote from: nctnico on May 12, 2014, 11:48:58 pmFor a lot of projects this is true. But imaging if you need a very small micro-controller for say a automated air fresher. You don't care about speed or ease of coding, architecture efficiency, and if it's mains plug in then the power consumption is not a concern. You just care about cost.I think small 8-bitters are always going to be cheaper for the silicon fab to produce, with less gates the yields are better and less testing time required. Additionally zero royalty's. Every cent counts.

author: andersm
author_rank: Super Contributor
timestamp: May 16, 2014, 08:48:42 am
content: Quote from: engineer_in_shorts on May 16, 2014, 08:34:21 amOn the other hand, more modern micros are probably manufactured using a more modern process and with a smaller feature size, offsetting the transistor count (though most area will be RAM and flash anyway).QuoteGrr.

author: senso
author_rank: Frequent Contributor
timestamp: May 16, 2014, 01:17:24 pm
content: Are you willing to design something like a ARM core, develop all the compiler crap associated with a new architecture, then support,maintain and update the design, all that for free?Oh, corporations are so bad, charging for the work they do, how dare they

author: spudboy488
author_rank: Regular Contributor
timestamp: May 19, 2014, 11:43:10 am
content: If the big, bad corporation wants to sell their ARM core, they may want to consider giving away a decent set of tools to use their fancy, new ARM core. Big, bad corporations make money when people but their stuff. People tend to buy stuff that has good support; free or reasonably priced.

author: nctnico
author_rank: Super Contributor
timestamp: May 19, 2014, 06:58:30 pm
content: Quote from: AcHmed99 on May 19, 2014, 12:10:36 pmPlease point me to Microchip's free C compiler for 8 bit PICs!

author: mariush
author_rank: Super Contributor
timestamp: May 19, 2014, 07:05:24 pm
content: Quote from: nctnico on May 19, 2014, 06:58:30 pmHere you go:http://www.microchip.com/pagehandler/en_us/devtools/mplabxc/#optimization-levels

author: spudboy488
author_rank: Regular Contributor
timestamp: May 19, 2014, 08:22:48 pm
content: Don't like MPLAB X? Here's some more for MPLAB 8........http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.htmland Hi-Tech Cftp://ftp.microchip.com/

author: nctnico
author_rank: Super Contributor
timestamp: May 19, 2014, 09:26:21 pm
content: Quote from: mariush on May 19, 2014, 07:05:24 pmFree cripplewareNo thanks

author: dannyf
author_rank: Super Contributor
timestamp: May 19, 2014, 09:27:40 pm
content: -:wtf: Please point me to Microchip's free C compiler for 8 bit PICs-I fail to understand your use of profanity here. If you have a point, lay it our.the use of profanity doesn't make you any smarter or more manly, or your point stronger.

author: jerry507
author_rank: Regular Contributor
timestamp: May 19, 2014, 09:35:44 pm
content: Profanity is his substitute for an argument. The fact you get a completely functional compiler for zero dollars doesn't jive with his personal view of Microchip.

author: dannyf
author_rank: Super Contributor
timestamp: May 20, 2014, 12:05:05 am
content: QuoteI don't mind Microchp / Atmel / anyone bashing. But one should at least have a point.

author: nctnico
author_rank: Super Contributor
timestamp: May 20, 2014, 08:16:33 am
content: Quote from: jerry507 on May 19, 2014, 09:35:44 pmA compiler without optimisation is not a compiler. It is crippleware because you can't use it for any serious project. Hence there is no free C compiler for 8 bit PIC. Hence Microchip's success doesn't come from providing free tools.

author: Skimask
author_rank: Super Contributor
timestamp: May 20, 2014, 08:23:16 am
content: Does profanity = butthurt these days? (butthurt is a term we use in the military that equates to waaaahhhh or any other term that describes whining or general displeasure from having thin skin)I use profanity as a substitute for swearing.

author: mariush
author_rank: Super Contributor
timestamp: May 20, 2014, 08:47:23 am
content: Quote from: nctnico on May 20, 2014, 08:16:33 amYou have a funny definition for a compiler.Quotehttp://whatis.techtarget.com/definition/compilerQuoteOptimization is NOT a requirement, it's just an optional feature. It's a nice to have feature, but it's just that. Just because you think it's a must, doesn't make it so.

author: neslekkim
author_rank: Super Contributor
timestamp: May 20, 2014, 09:53:55 am
content: Quote from: mojo-chan on May 20, 2014, 08:47:27 amhow?For it's use, it doesn't seem so "inefficient", you don't choose 8bit today for big tasks, and you shouldnt choose big platforms for small tasks, so for it's use, I think it is more than adequate.

author: hans
author_rank: Super Contributor
timestamp: May 20, 2014, 10:31:02 am
content: I think he refers to the general architecture of the PIC18 and downwards devices, which fall all under the XC8 compiler.The non-C style instruction set, limited hardware stack, banked RAM, only 1 accumulator register means it's not very efficient.It's like a person with 1 wounded arm & no trouser pockets. Imagine how your days will become.. you'll always have to put stuff down and pick it back up and basically can't "multi task".The Hi-Tech (XC8) compiler is reasonably good at allocating these "items" though.. it does a call tree analysis to see which variables overlap and which don't, and use as little RAM for local variables and function arguments.But it's still wounded.This is basically a non-issue for software stack these days, because you can just keep push-ing and pop-ing things to and from the stack and only have to worry you don't mess up the stack alignment, and that it's large enough in the most deepest/largest call made.And I think mentioned earlier here, this architecture combined with 1 accumulator, is why the XC8 is such a specific compiler for this platform and there is no GCC port.As an example, I think this is what he means with inefficient:Code:4815 ;client.c: 118: packet->packet.data = 2;4816 0303 0835movfHandlePacket@packet,w4817 0304 3E06addlw64818 0305 0086movwf64819 0306 3002movlw24820 0307 0187clrf74821 0308 0081movwf14822 0309 l2540:Ouch, 6 words for just a deadsimple pointer operation, even in "PRO" mode!Where as this takes 2 instructions on a PIC24 (like any modern core that's optimized for C work) chip:Code:22: packet->packet.data = 2;004864 B3C024 MOV #0x2, W4004866 984474 MOV.B W4, [W8+7]

author: nctnico
author_rank: Super Contributor
timestamp: May 20, 2014, 10:35:39 am
content: The first problem you run into on an 8 bit platform is speed (been there, done that). Having the best compiler is crucial to have any chance of finishing a project in a reasonable time. IOW not getting stuck / sidetracked with endless hand optimisation or writing assembly code because that is just frustrating in the end even if it is a hobby project. Using something else is easier said than done. I've seen kludges with over 10 PICs to do a job which a faster 32 bit controller did much better.

author: dannyf
author_rank: Super Contributor
timestamp: May 20, 2014, 10:37:03 am
content: QuoteThat's why it is important to have a common set of definitions before stating your positions.To me, a compiler isn't a compiler unless it can toast my bread to my satisfaction,.So whatever compiler there is to your fancy, it is not a compiler.

author: dannyf
author_rank: Super Contributor
timestamp: May 20, 2014, 10:46:27 am
content: QuoteI thought the first problem on any platform is to find a qualified programmer who knows how to pick the right part for a given job.

author: dannyf
author_rank: Super Contributor
timestamp: May 20, 2014, 10:53:10 am
content: QuoteMany times, I run my 8-bit chips at less than 1Mhz, because otherwise it would be too fast.

author: 22swg
author_rank: Frequent Contributor
timestamp: May 20, 2014, 03:55:04 pm
content: Looking back several decades to build it yourself you started in machine code mine was an 8b RCA cmos cpu , in those days you needed external ROM and RAM plus peripherals driver chips CRT, UART, floppy etc. and you had the chicken / egg complication of getting a boot subroutine into eeprom, after spending big bucks on Z80 and 6502 imagine the joy of finding cheap mcu’s with a host of features that just fitted the home brew hobby I am OK with MPLAB X and recently the PIC24 plus the free tools. Perhaps if the moaners had struggled to get a a single LED to light then…Should be an attach from Elektor Magazine Aug 1978 ... "2716 UVPROM 40GBP !!!! "

author: dannyf
author_rank: Super Contributor
timestamp: May 20, 2014, 11:07:13 pm
content: QuoteThose moaners are too interesting in moaning to light up a led.QuoteGood old days of electronics.

author: JTR
author_rank: Regular Contributor
timestamp: May 20, 2014, 11:25:25 pm
content: Quote from: hans on May 20, 2014, 10:31:02 amWell that is sort of a misleading comparison. The code for the PIC24 assumes that the pointer is already in W8 while the code for the enhanced mid-range pic does not assume the pointer is in FSR1 and uses extra instructions to place the pointer there.If the pointer was in FSR1 already (apples to apples comparison) then the code could be as simple as:movlw 2movwi 6Of course, one could rightly argue that the poor register set of the enhanced mid-range pics means that it was far less likely that the pointer base would be preloaded in (only one of two) base index registers so the original comparison is right in a "typical" context. Still, if one is providing benchmarks there is a need to provide all the details required for a meaningful context.

author: andersm
author_rank: Super Contributor
timestamp: June 12, 2014, 09:28:54 pm
content: From the XC8 v1.32 release notes:QuoteI have no idea how much this actually improves the generated code, but I guess sometimes complaining on online forums does help.

author: mariush
author_rank: Super Contributor
timestamp: June 13, 2014, 12:25:49 am
content: I don't see any significant change between 1.31 and 1.32 just comparing assembly of a project.Program space and data space usage are exactly the same.The only difference I notice in the assembly listings is some changes in the floating point multiplication functions xc8 includes, some optimizations for speed there and some tweaks for PIC18F mcus.There was really a good jump from 1.30 to 1.31.. 1.30 does have a lot of useless MOVLB and CLRF counter instructions (mostly) which don't show on 1.31 anymore.Here's the usage to compare...Code:Microchip MPLAB XC8 C Compiler (Free Mode) V1.30Copyright (C) 2014 Microchip Technology Inc.License type: Node Configuration:: warning: (1273) Omniscient Code Generation not available in Free modeMemory Summary:Program space used CAFh ( 3247) of 4000h words ( 19.8%)Data space used 87h ( 135) of 400h bytes ( 13.2%)EEPROM space None availableData stack space used 0h ( 0) of 2A7h bytes ( 0.0%)Configuration bits used 2h ( 2) of 2h words (100.0%)ID Location space used 0h ( 0) of 4h bytes ( 0.0%)Running this compiler in PRO mode, with Omniscient Code Generation enabled,produces code which is typically 40% smaller than in Free mode.The MPLAB XC8 PRO compiler output for this code could be 1089 words smaller.See http://microchip.com for more information.---Microchip MPLAB XC8 C Compiler (Free Mode) V1.32Part Support Version: 1.32 (A)Copyright (C) 2014 Microchip Technology Inc.License type: Node Configuration:: warning: (1273) Omniscient Code Generation not available in Free modeMemory Summary:Program space used C7Eh ( 3198) of 4000h words ( 19.5%)Data space used 80h ( 128) of 400h bytes ( 12.5%)EEPROM space None availableData stack space used 0h ( 0) of 2AEh bytes ( 0.0%)Configuration bits used 2h ( 2) of 2h words (100.0%)ID Location space used 0h ( 0) of 4h bytes ( 0.0%)

author: SirNick
author_rank: Frequent Contributor
timestamp: June 13, 2014, 01:32:19 am
content: I've looked at PICs a couple of times but there wasn't really anything compelling to draw me away from AVRs. Having read how much of a fiasco the compiler situation is, I'm apparently not missing much. The MCU market is pretty much a commodity at this point.Not much new to add really, but I echo these sentiments: I can use GCC for x86. I can use it for AVR8 and Xmega. I can use it for Cortex M. I can use any IDE (or not) that I want for any of the above, and have no concerns over missing out on optimizations, or how many computers I can legally install the compiler on. In many cases, there are a lot of pre-written libraries available too. Those vendors have worked in-house, and with the OSS community, to make free, optimized tools available so I can focus my resources on the application.Chip vendors are starting to make it as easy and inexpensive as possible to evaluate, learn, and build with their hardware. I think that's worth noting. For sure, Microchip isn't obligated to offer their premium compiler (compilers, which is just baffling) for free, but if they could instead recoup their development cost by charging a couple cents more per chip (or harness the OSS community to do itforthem, in exchange for no more than open communication and well documented specs), then it could be much better in the long run than sticking to old business models.Times have changed. It may not be fair, or logical, but if you throw the hobbyests or product architects a bone, your chip is the first they'll think of to solve some problem. The resulting product may or may not ultimately end up in high-volume production, butsomewill. That has the potential to be far more lucrative than a relatively small number of $1k license fee sales.Remove barriers anywhere you can. That's what all the free compilers, free libraries, low-cost development / eval boards, low-cost programmers, low-cost debuggers, app notes, seminars, YouTube videos, vendor-sponsored forums, and tradeshow presences are all about.

author: dannyf
author_rank: Super Contributor
timestamp: June 13, 2014, 01:49:59 pm
content: QuoteI have XC8 1.12 and some benchmarking I have done (against PICC9.60std and 9.65pro) suggests that the free mode is faster than the std and closer to the pro.

author: dannyf
author_rank: Super Contributor
timestamp: June 13, 2014, 01:55:02 pm
content: QuoteIt is very difficult to justify using a low-end PIC (12/16/18f parts) on new designs: there are simply more superior alternatives out there.The AVRs offer a better interrupt controller, faster speed, and more consistent peripherals. But they are more expensive as well.The STM8 is cheaper and more capable, some of them offer a better roadmap to 32-bit chips, at a lower price point. They have however an uncertain future.The CM0/1 chips are really attractive, particularly if you already have the code base migrated. They post a considerable threat on new designs. But the learning curve can be steep.

author: WarSim
author_rank: Frequent Contributor
timestamp: June 13, 2014, 02:29:35 pm
content: Quote from: linux-works on April 29, 2014, 02:21:50 pmI have made many PIC based projects, but I have never posted on hack-a-day. Most likely I never would. I use the right processor for the task. I do not distinguish a project by the uC used. My projects are defined by what they do not by what they use.All my DIY projects with PICs used the free compiler versions. Optimizers are not required to produce excellent code. Optimizers are just a tool to make it easier/faster. In my opinion the only people that need optimizers are corporate users where time is money or needed to even out the various skill levels.Nobody should start a project with picking a uC. The uC supplies the required functions not the other way around. My DIY uC selection is based on package and capabilities. It really doesn't matter who makes the uC as long as they have a free tool chain. Even better if it is MacOS friendly.I have never used PICs in school. 30 years ago PIC wasn't used in schools.Call me a pro if you wish but I don't use Microchips expensive tools for my DIY projects. The only reason work has the optimized licences is because government is disqualified from using the free tools.The only thing I see is there is a resurgence of Atmel users and they want to show off their projects. I don't know a single PIC user that has the desire to post their projects on what I consider a vanity site.Sent from my iPad using Tapatalk

author: andersm
author_rank: Super Contributor
timestamp: June 13, 2014, 04:00:54 pm
content: Quote from: dannyf on June 13, 2014, 01:49:59 pmCongratulations, now explain how that is in any way relevant to the effect of a specific change made in XC8 version 1.32.

author: dannyf
author_rank: Super Contributor
timestamp: June 13, 2014, 04:53:40 pm
content: QuoteThink so too.

author: SirNick
author_rank: Frequent Contributor
timestamp: June 13, 2014, 06:34:02 pm
content: That's probably true, but so what? The web has always had its share of vanity. You know this if your eyes have ever been assaulted by a personal home page with an animated Under Construction GIF. Yeah, all these project sites are almost entirely fluff, but that's OK. Some of those enthusiastic engineer-larva will eventually mature to something interesting. Most will not, but such is life. I doubt that's distinct to AVR fans, although they are perhaps a bit more accessible, therefore lowering the bar a smidge.What this has to do with the greater scheme of things is beyond me. I really hope it's not an attempt to bash a perfectly good architecture on the sole basis of its trendiness. (If so, shall we also shun the 555, TL071, LM7805, BC549, and 1N4148?)The PIC line is too quirky for my taste, but as Danny pointed out, there is good value there. I would like to see MC step up, sort out their development hassles, make it trivial to evaluate and design with their parts, and let the hardware run at its potential best. Even in the hands of amateurs.

author: WarSim
author_rank: Frequent Contributor
timestamp: June 13, 2014, 08:06:05 pm
content: Quote from: mojo-chan on June 13, 2014, 04:14:57 pmThat is a very odd thing to say to a Systems Analyst. The people who create the optimizers for compilers.Sent from my iPad using Tapatalk

author: dannyf
author_rank: Super Contributor
timestamp: June 13, 2014, 08:50:16 pm
content: I did a comparison between 1.12 and 1.32, on a piece of code I have. The stats below are the total code size and execution of the main loop:1.12 free: 2759 bytes / 5194 ticks;1.12 pro+space: 1832 bytes / 5385 ticks;1.12 pro+speed: 2114 bytes / 5323 ticks;1.32 free: 2497 bytes / 7725 ticks.

author: miguelvp
author_rank: Super Contributor
timestamp: June 16, 2014, 08:34:23 am
content: All programmers take systems analysis and design, so we are all systems analysts, it's part of the curriculum.So the people that make compilers are system analysts but not all system analysts make compilers. Also all system analysts write code unless you are on a big corporation and you are director of technology but even then you tend to write code as well, not as much but more critical stuff and/or mentor others. So unless you went to full management you still write code or at least review the code of your team.As far as the computer titles go, system analyst as a title is about the lowest you can get. That was my title on my first job ever system analyst I.

author: WarSim
author_rank: Frequent Contributor
timestamp: June 16, 2014, 01:19:21 pm
content: Quote from: miguelvp on June 16, 2014, 08:34:23 amVery true. Only a Programer Analyst or Entry Clerk is lower. The former works on a module and may never see how it fits onto the larger scheme. The latter may never program at all, if they do it would likely be scripting.Sent from my iPad using Tapatalk

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: June 21, 2014, 10:55:09 pm
content: since were talking microchip compilers in hereupgrading to xc32 v1.32, the good old 'return 2' xclm trick no longer works... just an FYI.The source for v1.32 has not been released yet,http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.htmlchanging the 1.31 download link to 32 works.http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.32-source.zip

author: Rufus
author_rank: Super Contributor
timestamp: June 22, 2014, 04:54:25 am
content: Quote from: BloodyCactus on June 21, 2014, 10:55:09 pmMicrochip complier development is managed by loons.The trivially easy to bypass licensing scheme got slightly harder. Paying customers as well as having the hassle of activation and/or running license servers get to wait a bit longer as every compiler invocation now generates an SHA256 hash of the 900kB licensing executable.What I found interesting in the 1.32 source archive was a document containing thisQuoteRegarding .info files which decouple processor specific information from the compiler executables.Why the hell do Microchip produce compilers at all if it isn't to support sales of their processors and here we see a 'philosophy' which requires customers to pay extra (through the annual HPA maintenance crap) if they want to use new parts. Support for new parts isn't improved functionality it is a basic requirement to use those parts and the last thing Microchip should be doing (if they want to sell) is placing financial barriers between customers and those parts.

author: andersm
author_rank: Super Contributor
timestamp: June 22, 2014, 07:40:53 am
content: Quote from: BloodyCactus on June 21, 2014, 10:55:09 pmIt seems they're now verifying the SHA256 checksum of the license manager executable. The hardcoded checksum string is present in the cc1, cc1plus and lto1 binaries.

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: June 22, 2014, 02:29:06 pm
content: yep. whats worse, every platform has a different sha256, so someone had to build xclm, sha256 it, paste it into the build and then build gcc/binutils/etc.then you see its plain ascii embedded into the files. lol. ohwell.worse to me, all the plib stuff has been deprecated and your supposed to use harmony, which does not come with the compiler, and so far, each release totally breaks everything from the last release. aargh. so were supposed to migrate to some shit that they have not even finished OR TESTED, damn, their own forum is full of bugs and things not implemented.I like using pic32 but damn they should get the replacement lib working fully before trying to force us over, why the hell is the harmony lib 170mb download WITHOUT HELP FILES? oh thats another 24mb..

author: dannyf
author_rank: Super Contributor
timestamp: June 22, 2014, 11:32:52 pm
content: QuoteIt seems to me that if someone makes a product that you like, the right thing to do is to reward them, or at least not punish them.The fact that Microchip got bad marks because they made their products less easy to hack speaks volume about some users than Microchip.

author: nctnico
author_rank: Super Contributor
timestamp: June 22, 2014, 11:50:37 pm
content: The thing is that with most software it is easier to use the hacked version than the version you buy from the manufacturer. I'm running hacked versions exclusively even though I have all the original disks. It is just too much hassle to deal with online activation schemes, dongles, moving node locked licenses to a new PC, entering endless sequences of keys, etc, etc.

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: June 23, 2014, 01:21:03 am
content: so I should pay 1000$ usd to to turn on 'optimisations' that are built into gcc? microchip didnt fund those gcc optimisations, but I really should pay for them right? since its open source, they can charge whatever they want, but since it is open source, I can recompile then as I see fit. Thats power of open source.

author: Rufus
author_rank: Super Contributor
timestamp: June 23, 2014, 01:42:08 am
content: Quote from: dannyf on June 22, 2014, 11:32:52 pmSeems to me that if someone rewards you for your product the right thing to do is not punish them with obnoxious licensing and activation schemes and slower compile times.....And I don't really like their product anyway, XC8 in particular has been riddled with bugs and product support is abysmal.

author: Mechatrommer
author_rank: Super Contributor
timestamp: June 23, 2014, 02:13:18 am
content: Quote from: BloodyCactus on June 23, 2014, 01:21:03 amyes thats the power of free dish. implemetation of a OS code in a product doesnt necesarily means the product should be free as well. you want free go for command line or find someone that can spoonfeed you well. even fun, becomes a daddy or a professional programmer.

author: true
author_rank: Frequent Contributor
timestamp: June 23, 2014, 06:05:57 am
content: Quote from: Mechatrommer on June 23, 2014, 02:13:18 amThis is a compiler. AGPLlicensed compiler. The product, by definition, IS free, in the RMS / "free software" / "as in speech" meaning of the word. The product can still be sold, but the license grants recipients the right to modify and redistribute, so Microchip does not hold absolute control.IANAL go consult your ownBesides, in context of this discussion, your "command line" remark doesn't make any sense. I simply don't get the "spoonfeed" remark. Even fun, even.I wrote a patch for this new thing before I noticed someone else did. But I am curious; what is in the "Top" patch collection? Sounds more involved than it needs to be. His old xclm was less encompassing than mine. I am curious to see wtf this xclm of his that wants the old xclm is...

author: dannyf
author_rank: Super Contributor
timestamp: June 23, 2014, 09:32:27 am
content: QuoteIt is up to you if you should or shouldn't do it.But you punish people for producing things that you want, sooner or later, no one will be producing things that you want.

author: nctnico
author_rank: Super Contributor
timestamp: June 23, 2014, 11:14:14 am
content: Quote from: dannyf on June 23, 2014, 09:32:27 amThere is tons of open source software which prove this statement is absolutely wrong.

author: andersm
author_rank: Super Contributor
timestamp: June 23, 2014, 02:05:32 pm
content: Quote from: mojo-chan on June 23, 2014, 10:38:25 amIf you look at the development history of GCC, the overwhelmingly largest amount of work has been commercial. It's also incorrect to say that Microchip have done "nothing". They've added extra support for their chips, extended ISR support, added features to the linker and so on. And for many, just providing precompiled binaries is a service worth paying for.With all the hand-wringing about open source you'd expect someone would have actually done something by now.

author: WarSim
author_rank: Frequent Contributor
timestamp: June 23, 2014, 03:45:23 pm
content: Which platform specifically? Here is my reason for asking.When I consider a new product I search their site for a question to ask. I ask this question three times ever 2 weeks for 6 weeks. For every month waiting for a reply, I am less likely to use any of their products. After a year they are never considered again, unless I hear of many great experiences.Sent from my iPad using Tapatalk

author: nctnico
author_rank: Super Contributor
timestamp: June 23, 2014, 03:49:20 pm
content: Quote from: andersm on June 23, 2014, 02:05:32 pmI find it hard to believe Microchip added features to GCC which improved MIPS support in general. Even though MIPS is not a general purpose core (only a few big companies use MIPS) GCC's MIPS support is pretty decent. I think Microchip added features to make it easier to port existing PIC source code to PIC32.

author: Mechatrommer
author_rank: Super Contributor
timestamp: June 23, 2014, 05:26:49 pm
content: Quote from: nctnico on June 23, 2014, 11:14:14 amand there are tons of open source software which prove this statement is absolutely wrong. if you are accustomed to quality softwares, you know its not with most of this so called FOSS. one good example is the "famous and mentioned everywhere" KiCAD. time needed to improve it, is exponential of the complexity (or quality) of the software to the power of 10, aka it will take eternity to get really usable just as the paid EDA version of today. you may argue its the thing that does what "you want", but well.... after installing most FOSS around, i wish there is a paid version, if its too expensive, i wish i can do it myself. most FOSS is a "crippled" (or crawling) version of an otherwise another famous jargon "portable code" running in M$ Wind***. so... my english can be broken.

author: Mechatrommer
author_rank: Super Contributor
timestamp: June 23, 2014, 05:32:02 pm
content: well to be fair, it is true some FOSS are usable and good, but some.... ehhhh.

author: nctnico
author_rank: Super Contributor
timestamp: June 23, 2014, 06:33:59 pm
content: Quote from: Mechatrommer on June 23, 2014, 05:26:49 pmIt is always possible to name one example where something doesn't turn out well. Open source electronics software has been lagging behind in general. It just takes a party with enough interest to pick up the pace. CERN has big plans for Kicad.Then again there are many open source software packages which work really well. Linux in general, GCC, Gimp, Apache, PHP, Firefox, Eclipse, Wireshark to name a few.In general there is more crappy software than good software whether it is free or you pay for it.

author: andersm
author_rank: Super Contributor
timestamp: June 23, 2014, 06:38:00 pm
content: Quote from: nctnico on June 23, 2014, 03:49:20 pmPartly that, partly chip support, and partly chip-specific features like configuration bits. I don't know if the ISR handlers for the external interrupt controller is completely Microchip's work (their toolchain is based on CodeSourcery's/Mentor's tree), but they have definitely extended it.

author: neslekkim
author_rank: Super Contributor
timestamp: June 23, 2014, 08:16:24 pm
content: Quote from: andersm on June 23, 2014, 02:05:32 pmIs the sources for xc16 and xc32 complete?, so if you compile it yourself, you get the pro compilers, is that is?

author: miguelvp
author_rank: Super Contributor
timestamp: June 23, 2014, 09:05:39 pm
content: Not sure if complete but here is the page where to get the sources (search for "Source Archives" within this page)http://www.microchip.com/pagehandler/en-us/devtools/dev-tools-parts.html

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: June 23, 2014, 09:18:45 pm
content: Quote from: neslekkim on June 23, 2014, 08:16:24 pmdont know about x16, but it is for x32. the compiler is 'complete' the 'pro' is just a switch that enables existing parts of gcc. the cpp compiler is exactly that too, a switch.

author: miguelvp
author_rank: Super Contributor
timestamp: June 23, 2014, 10:08:58 pm
content: If you have the source you can tell to use that switch regardless of what the IDE passes.

author: Mechatrommer
author_rank: Super Contributor
timestamp: June 24, 2014, 02:54:51 am
content: Quote from: nctnico on June 23, 2014, 06:33:59 pmi hate to mention it since that is another famous name here. good? usable and it can do the job? yes! but usable with comfort? i dont think so. imho, if they have to, the developers should learn from MSVisualStudioExpress (i guess, since its the next thing to the MSVisual6 i'm currently using) i know one can bash on nonportable MSVS, but its not about portability or not, its about comfort and one big help file as reference without going online looking the earth. and importantly without finding another chunk of binaries to make it work.Quote from: nctnico on June 23, 2014, 06:33:59 pmagreed, the problem is not whether its free or not, its the finger behind the scene. does anyone really serious, motivated or commited spending thousands of hours for a"quality"FOSS? let alone making a effort to make it work at the first install in any type of OS targetted at. frankly i havent seen one, like KiCAD it will be like, bye bye my dear (i have enough) hope someone can take care of you soon, gladly CERN took it. as for the paid version, they are commited, they are even commited pushing their product to the edge, edge of what? you define it.

author: nctnico
author_rank: Super Contributor
timestamp: June 24, 2014, 11:09:33 am
content: There is very little to argue with opinionEclipse has been developed by big companies like IBM to create a very good IDE. I have been using it exclusively for all my software development for about 10 years now. It does take some getting used to in the beginning but I'm pretty productive with it especially since I can use it for C, C++, PHP and VHDL. I really don't want to go back to MSVS

author: dannyf
author_rank: Super Contributor
timestamp: June 24, 2014, 11:31:21 am
content: QuoteFor such an "expert" on Eclipse, you seem to have more than your fair share of troubles getting CoIDE (=Eclipse) to work.

author: BloodyCactus
author_rank: Frequent Contributor
timestamp: June 24, 2014, 12:33:20 pm
content: eclipse is great if you stay away from plugins.Im a netbeans guy over eclipse, so I really like that Microchip picked it for MPLABX.

author: nctnico
author_rank: Super Contributor
timestamp: June 24, 2014, 01:21:46 pm
content: Quote from: dannyf on June 24, 2014, 11:31:21 amI think you are mistaken me for someone else. I never tried, used or mentioned trying / using CoIDE.

author: westfw
author_rank: Super Contributor
timestamp: June 25, 2014, 12:12:20 am
content: Quote

author: SirNick
author_rank: Frequent Contributor
timestamp: June 25, 2014, 01:11:01 am
content: Quote from: Mechatrommer on June 24, 2014, 02:54:51 amYes. While anyone can come up with a laundry list of crappy (free or commercial) programs, let's not forget that many devices (PC and non-PC) use Linux or BSD as the kernel, run a BSD network stack, use an HTML rendering engine based on KHTML (which became WebKit, which became Chrome and Safari), use OpenSSL for transport layer encryption, and were compiled with GCC.There are significant efforts put behind FOSS, and some of the most prolific software in use at this time is, in fact, FOSS. Or uses it to do considerable work behind the scenes. The smart hardware vendors take advantage of that fact, publish their specifications, and let the eager code monkeys take on the lion's share of developmentfor free. Coders get a fun project and working hardware, vendors get free development, users get free tools. I really can't understand how this model leaves anything to complain about?Quote from: Mechatrommer on June 24, 2014, 02:54:51 amOne of the most user-unfriendly installs I've ever had to work my way through was for Oracle's database product. Let's just say, it's not quite a free product. MySQL (also now under Oracle's care, but a FOSS product) on the other hand is much easier to install and configure. Now these two products aren't exactly equivalent, but hey if we're throwing around generalisms with regard to the polished-ness of software...Quote from: Mechatrommer on June 24, 2014, 02:54:51 amKiCAD is crap. On behalf of the OSS community, "We're sorry about that." Who knows, it may turn into a brilliant project some day. At least for now, forget KiCAD. There's just a lot of buzz right now because the market is aching for a decent tool that can be made ubiquitous without any financial consideration. It's a void that is collecting matter, and KiCAD was the first piece of detritus to show up. It will get better. (The situation. Not KiCAD necessarily, as it is crap. Currently.)

author: Mechatrommer
author_rank: Super Contributor
timestamp: June 25, 2014, 06:49:03 am
content: Quote from: SirNick on June 25, 2014, 01:11:01 ambut users dont get free iphone or samsung galaxy. that was my point as i saw someone moan about paying 1K for mplab whatever just to get the optimized gcc unleashed, you are paying for mplab not gcc. Al-tee-um is crazy expensive like a car, even 5K yearly just to get bug fix support, understood, its closed source delphi. mplab is part close and part open source is 1K?, yeah what we are compaining about? carry on, economy will balance itself.

author: westfw
author_rank: Super Contributor
timestamp: June 25, 2014, 10:54:43 am
content: Quote"Invasive species" - killing off a bunch of smallish sw vendors who sold sw. I start to worry a bit about platforms that have only gcc as assembler/compiler. They're some starry-eyed dreamer's whim away from having an unsupported mess on their hands.

author: nctnico
author_rank: Super Contributor
timestamp: June 25, 2014, 11:16:21 am
content: Open Source software is never unsupported. You have all the sources available so you can provide your own support or (more common) pay someone to make the changes you want.

author: mrflibble
author_rank: Super Contributor
timestamp: June 25, 2014, 11:19:49 am
content: Quote from: westfw on June 25, 2014, 10:54:43 amMmmh, that's a valid concern yes. But I think that if it really came to that unsupported mess (because said dreamer did something whimsical) then you would no doubt have a fork in no time. Same as on the commercial side of things where "Oracle buys X", followed by "Oracle fucks up X", followed by "X development is forked".

author: westfw
author_rank: Super Contributor
timestamp: June 26, 2014, 02:41:58 am
content: QuoteHaving source available so that you can "fix it yourself" or "hire someone to fix it" is certainly much better than NOT having the source available, but I still claim that it is "unsupported."Consider, say, "WinAVR"; the package including avr-gcc and associated tools for windows cli use.The last "release" was in 2010, based on avr-gcc 4.5 (I think.) If I were somehow dependent on that version, I would be very nervous. (Sound far-fetched? Arduino was in exactly this position - they were based on 4.3.x Crosspack/WinAVR, and very version of avr-gcc between that and 4.7.2 or so had some signficantly-disabling bug WRT Arduino. They're still agonizing over 4.8.x (there's no winavr package, but the Atmel command line tools are almost equivalent.))If windows 8.2 stops supporting 2010-era MinGW command line utilities (which seems "possible"), then I could be quite screwed in a couple of years.(Not that the situation with commercial compiler vendors is any better, should they make choices that conflict with my desires. But having only ONE compiler does make it worse.)

author: andersm
author_rank: Super Contributor
timestamp: June 26, 2014, 04:16:03 am
content: Quote from: westfw on June 26, 2014, 02:41:58 amAtmel hired the WinAVR maintainer to make the Atmel command-line tools.