Author Topic: New Complete Hardware+Software Kit for C Cortex-M Programming  (Read 36359 times)

0 Members and 1 Guest are viewing this topic.

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #75 on: October 09, 2015, 12:55:46 am »
But still, one question I tried to answer before, how efficient is the compiler compared to others?

Say, GCC is not as efficent as Keil based on what people say, for me, it would be important to be able to compile this: https://github.com/NETMF/netmf-interpreter
and still be able to use it on the mcu used on Netduino Go etc, but so far, you only say how long people have been using it, nothing about how the compiled code compares to other compilers.
For me, as hobbyist, I would like an compiler+ide that works well, and lets me compile to this kind of hobbyist platform, the problem is that microsoft and netduino people, doesn't seem to care much about hobbyists, and compile their code with very expensive compilers, and that means we cannot do much on our own..

I address that a few times, but perhaps a link to the site might also help:
https://c4everyone.com/index.php/technologies/our-technologies

In brief: our compiler is optimizing per statement/expression level. So we don't generate "stupid" code. We do register allocation, optimal instruction selection using bottom up rewrite systems. We even generate the IT block. Switches are handled via jump table or if-else depending on the density.

Function level optimizations are performed in the PRO version, no "whole program optimizations" for the Cortex target.

So roughly between GCC -O1 and -O2. Keep in mind:
  • IAR/Keil charge $7000-$8000+
  • GCC has over the years, many smart people working on the optimizers


If utmost optimization is a goal, which it is, we will move toward another framework that took another team of very smart engineers to design and implement taking many years, namely, the LLVM. We will work on that in 2016. Now imagine a line of products: $99 to get you started, $249 to get you going for most commercial needs, $499 to get extra 10-15% performance, and then $1499 (in the future with LLVM) for a compiler equals or better than IAR/Keil. All with our current level of support and ease of use. That's our goal for end of 2016.

However, just because we price our intro tools at $99 including hardware and a book, it does not mean that our stuff is a toy. Many products have been made and shipped with our compilers.
Still I wonder if your primary differentiator is in the libraries and surrounding environment why not just use GCC? GCC for ARM is maintained by ARM nowadays and every version produces slightly more compact code. Many of your competitors have already moved to GCC instead of their own (often less performing) compiler. Using GCC is also good for source code compatibility since many examples and libraries are developed for/using GCC (with GCC attributes). In other words: GCC is a defacto standard. I see no reason to put resources into creating yet another compiler. Also note that a lot of algorithm development & unit testing is done on a PC prior to running the code on a microcontroller. When using GCC the source code running on the PC can be 100% identical to that on the target. I know that C should be portable but that is just theory. In reality it is common to need compiler specific code extensions (pragma's, attributes) so using the same brand of compiler on various targets saves time and ensures what has been tested on a PC also works on the microcontroller.

For example: How easy would it be to compile commonly used libraries/projects like FreeRTOS, Elua, Lwip, uIP, Fatfs or NXP's USB stack using your compiler?
« Last Edit: October 09, 2015, 12:59:51 am by nctnico »
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #76 on: October 09, 2015, 01:35:37 am »
Still I wonder if your primary differentiator is in the libraries and surrounding environment why not just use GCC? GCC for ARM is maintained by ARM nowadays and every version produces slightly more compact code. Many of your competitors have already moved to GCC instead of their own (often less performing) compiler. Using GCC is also good for source code compatibility since many examples and libraries are developed for/using GCC (with GCC attributes). In other words: GCC is a defacto standard. I see no reason to put resources into creating yet another compiler. Also note that a lot of algorithm development & unit testing is done on a PC prior to running the code on a microcontroller. When using GCC the source code running on the PC can be 100% identical to that on the target. I know that C should be portable but that is just theory. In reality it is common to need compiler specific code extensions (pragma's, attributes) so using the same brand of compiler on various targets saves time and ensures what has been tested on a PC also works on the microcontroller.

For example: How easy would it be to compile commonly used libraries/projects like FreeRTOS, Elua, Lwip, uIP, Fatfs or NXP's USB stack using your compiler?

GCC does have some advantages, however, there are disadvantages. The primary one for a commercial compiler vendor is "how do we justify charging money for it?" There are different ways:

  • The Rowley model: their own IDE and debugger - charges $1500
  • The CoCox model: "we have no idea how to make money!" - free for now, until they can't afford the raising rents any more?
  • The Atollic model: own IDE, own super-high end widget-thing - $6000

All of the above has to answer the question: "why not just go to gnuarm and build your own with Eclipse?

So why our own compilers? We could have switched for the Cortex-M market, better control sums it up:
  • We know our compiler. If a user runs into a compiler problem, we know how to track it down.
  • We can evolve our debugger in step with our compiler.
  • On the AVR, we added __flash, whereas AVRGCC still uses prgmem() and such
  • We added MISRA checks. Do GCC people care about MISRA check? Don't know
  • Better error and warning messages.
  • Faster to load and run.

BUT the biggest answer really is: it takes time to move to GCC, and if we are going to do that, we will use LLVM.

// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #77 on: October 09, 2015, 01:40:50 am »
Further, in fact from a suggestion of an EEVBlog user, we are going to push up the schedule to implement fixed point. There is a long story but it is on our plate for a while. So early 2016 is what we are aiming for.

Similarly, we will probably add "Embedded C" (yes I know, it's not a commonly accepted standard) feature of memory space. Does GCC support it? I don't know but I don't think so. Is it a good idea for embedded programming? Looking at the spec, it looks good. By controlling our compilers, we can add new features easier.

// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline danringer

  • Contributor
  • Posts: 11
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #78 on: October 09, 2015, 03:51:58 am »
Kit received. Looks good, well made packed and shipped. Even the mock ups of the pre professional docs looks good. Concerned about the lack of Mac or Linux support. I'll need to reread the past few pages to catch up. Thank you again. Will report back once. I get a chance to play :)
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #79 on: October 09, 2015, 05:11:43 am »
You've got to love that keyboard slip : 'ruins beautifully on my Mac'  >:D

It's the swipe keyboard on my phone. It is very opinionated and doesn't always obey.
« Last Edit: October 09, 2015, 05:15:13 am by zapta »
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 17816
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #80 on: October 09, 2015, 06:52:12 am »
I originally posted this on the Microcontroller + FPGA subforum, but a member (karel) told me to post this here.  :o

technically it should not be posted at all! This section of the forum is for the occasional sale of personal stuff or a comoany shedding it's gear for a good price. Not to advertise new products from a company. That is what the advert banners are for.

Alternatively send dave your product for reveiew in the mail bag segment and he will relate any offer you have.

Posting comercial posts in the uC section would be deemed as spam.

Sorry to sound like a party pooper but if everyone did this we would just has a classified list instead of a forum.
 

Offline Mr.B

  • Supporter
  • ****
  • Posts: 1237
  • Country: nz
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #81 on: October 09, 2015, 09:15:19 am »
Simon, I think you are being a bit harsh here...
I know the intention of this area of the forum is to advertise personal items, however please look at the facts...
Franky has a very good thread here that gives a number of people opportunities to purchase good quality stuff from China...
What is he doing here? Simple - Sales and marketing...
Frankys thread continues without any complaints about its intention, even though it is clearly of a commercial nature.
Richard Man is not spamming the forum, quite the opposite, he has presented a product that he is selling and is allowing the informed experts of the forum to judge it by its merits.
There are many posts querying the validity of his offering... Cool, as EEs we are obliged to clarify the claims and challenge those claims.
I have purchased his promoted product and await its delivery...
I will evaluate it.
If it is crap, I will post here
If it is good, I will post here.
I think you are over-reacting by saying that "technically it should not be posted at all!"
...
I approach the thinking of all of my posts using AI in the first instance. (Awkward Irregularity)
 

Offline Simon

  • Global Moderator
  • *****
  • Posts: 17816
  • Country: gb
  • Did that just blow up? No? might work after all !!
    • Simon's Electronics
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #82 on: October 09, 2015, 11:42:19 am »
I've unlocked the Frankies thread after a discussion with Dave as it seems they have an arrangement. I'm usually weary of low post counts posting products. I've left this here to give it the benefit of the doubt but genuinly if this products wants a good launch it would be far better to send dave one and it will get all the publicity it needs.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #83 on: October 09, 2015, 02:40:52 pm »
Similarly, we will probably add "Embedded C" (yes I know, it's not a commonly accepted standard) feature of memory space. Does GCC support it? I don't know but I don't think so. Is it a good idea for embedded programming? Looking at the spec, it looks good. By controlling our compilers, we can add new features easier.
True but it also locks your users into your product. One of the things I ran into when using less common (proprietary) formats/tools is that at some point you reach the limit. Just like the list with libraries I posted earlier; will they compile with your tool out of the box? IIRC there is a GUI library which is free to use for certain NXP microcontrollers. This library is distributed in binary form. If you use a toolchain which cannot link that binary then you are basically back to square one. In todays world microcontrollers do much more than just put some text on an alphanumeric display and blink a few leds. In order to make a product you need to rely on existing code written for a different target platform and third party libraries because you can't re-invent the wheel over and over again (BTW one of the things I forgot to mention are algorithms used to secure data). The biggest asset of a company which does product development is the software (source code) because it takes most of the time to create. Such an asset needs to be carefully looked after. For example check to see if it can keep up with future trends and whether it has a good portability. Having all the firmware locked into a toolchain which does not line up with a widely adopted standard is a very bad idea because at some point you need to waste time to change it. Also using standards which aren't common like 'embedded C' and 'C with classes' does not appeal to me. It greatly limits the portability of code between platforms/tools and could reduce the lifespan of the source code.

Time for a true story: About 15 years ago I attended a conference call with a supplier of DSP boards. The company I worked for wanted to investigate if it would be wise to buy a license for the software and implement it on our own boards. It turned out all the DSP software was written in assembler specifically for the (nearly obsolete) Motorola DSP they used. It became clear to us quickly that their DSP code was worth nothing at all because it was as obsolete as the DSPs they wrote it for.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline tggzzz

  • Super Contributor
  • ***
  • Posts: 19508
  • Country: gb
  • Numbers, not adjectives
    • Having fun doing more, with less
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #84 on: October 09, 2015, 03:02:12 pm »
I've unlocked the Frankies thread after a discussion with Dave as it seems they have an arrangement. I'm usually weary of low post counts posting products. I've left this here to give it the benefit of the doubt but genuinly if this products wants a good launch it would be far better to send dave one and it will get all the publicity it needs.
While understanding your caution, it is not clear to me that it would be possible for Dave to do a sensible review of the product. Given his chosen formant, he could "do a Jerry Pournelle" and "see if it installs" and "comment on the colour scheme and compilation time" - but I hope he wouldn't since his reviews are usually more interesting than that.

With compilers (especially C/C++ compilers) and IDEs the devil is very much in the details and requires knowledge of where skeletons are typically buried and pain points in system software integration. (For a wry, accurate, starting point for such considerations, read between the lines of the FQA (sic) at http://yosefk.com/c++fqa/ and look out for phrases such as "some compilers").
« Last Edit: October 09, 2015, 03:06:06 pm by tggzzz »
There are lies, damned lies, statistics - and ADC/DAC specs.
Glider pilot's aphorism: "there is no substitute for span". Retort: "There is a substitute: skill+imagination. But you can buy span".
Having fun doing more, with less
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #85 on: October 09, 2015, 07:10:26 pm »
Dear nctnico: you made some good points, but not all users use the same criterions as you do. As I said many times: there is a whole swath of users between "GCC even if it is not free" and "IAR/Keil even if they cost more". The biggest blocking factor of potential move from AVR/PIC is the lack of an easy to use API (and probably an initialization config tool, which we touched upon already) so our primary goal is to solve that.

Indeed your criticisms apply equally as well if a user uses a "config tool" similar to what free_electron offered, or CubeMX or Visual Studio from Atmel. In fact, Atmel's Studio locks the users so tight that one cannot even get the library code out at all!!

re: Dave/EEVBlog - I will offer him a complementary kit and see if it accepts it.

Any case, thank you for the feedback and comments.
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #86 on: October 09, 2015, 07:19:35 pm »
A single package install of tool chain, IDE and board specific libs with a great out of the box experience are very valuable IMO.

One solution is to package lpcxpresso and mbed libraries. This week run on the three OSs and will have smooth rampup while using standard tools and libs.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #87 on: October 09, 2015, 08:19:31 pm »
A single package install of tool chain, IDE and board specific libs with a great out of the box experience are very valuable IMO.
I agree. Such a tool is great to start with. But... at some point you need to fly out of the nest and at that moment it is very dissapointing to find out someone clipped your wings!  ;)
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #88 on: October 09, 2015, 10:48:19 pm »
I agree. Such a tool is great to start with. But... at some point you need to fly out of the nest and at that moment it is very dissapointing to find out someone clipped your wings!  ;)

They are not clipped, they keep growing and you become bigger  stronger and faster.  :)

 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #89 on: October 10, 2015, 12:14:41 am »
I agree. Such a tool is great to start with. But... at some point you need to fly out of the nest and at that moment it is very dissapointing to find out someone clipped your wings!  ;)
They are not clipped, they keep growing and you become bigger  stronger and faster.  :)
I'm talking about tools/environments which follow their own standards... I think it is a bit like Arduino. Great to dabble a little bit with programming but if you need to build something serious you find out you need to learn something entirely different.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline retrolefty

  • Super Contributor
  • ***
  • Posts: 1648
  • Country: us
  • measurement changes behavior
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #90 on: October 10, 2015, 12:24:44 am »
I agree. Such a tool is great to start with. But... at some point you need to fly out of the nest and at that moment it is very dissapointing to find out someone clipped your wings!  ;)
They are not clipped, they keep growing and you become bigger  stronger and faster.  :)
I'm talking about tools/environments which follow their own standards... I think it is a bit like Arduino. Great to dabble a little bit with programming but if you need to build something serious you find out you need to learn something entirely different.

 I'm sorry but that sounds a little elitist to me. Every project application is serious to the developer working on it, regardless of which chip/tools/environment selected. I've seen a open source Arduino/AVR 328P based quadcoper video that I for one would consider certainly a serious project.

 But then it may just be your definition of serious (project) in not the same as mine. Have you examples of what you consider serious projects?
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #91 on: October 10, 2015, 12:37:49 am »
Something that needs to go in series production, must pass EMC compliance testing, must work in an industrial environment, can be maintained/repaired for the next 10 years, adhere to standards (a quadcopter is likely to be subject to various regulatory requirements), etc, etc.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline zapta

  • Super Contributor
  • ***
  • Posts: 6190
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #92 on: October 10, 2015, 02:30:51 am »
Something that needs to go in series production, must pass EMC compliance testing, must work in an industrial environment, can be maintained/repaired for the next 10 years, adhere to standards (a quadcopter is likely to be subject to various regulatory requirements), etc, etc.

Different projects have different needs but I don't understand the wring clipping part. It's wrong to pick the wrong tool for the job but this works in both directions.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26906
  • Country: nl
    • NCT Developments
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #93 on: October 10, 2015, 01:17:57 pm »
Vendor lock in = clipped wings
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline mubes

  • Regular Contributor
  • *
  • Posts: 238
  • Country: gb
  • Do Not Boil
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #94 on: October 10, 2015, 11:44:06 pm »
What is the licence for the use of the API?  It may have already been discussed, but if it has I've missed it...

Regards

DAVE
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #95 on: October 11, 2015, 01:20:32 am »
What is the licence for the use of the API?  It may have already been discussed, but if it has I've missed it...

Regards

DAVE

Dave, there is no separate license for the API - it is tied to the compiler license. So if you have the NC (Non-Commercial) license, then you cannot use it for commercial products. If you have a commercial license, then there is no separate license fees for the API and you may use it for any number of products.

// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline neslekkim

  • Super Contributor
  • ***
  • Posts: 1305
  • Country: no
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #96 on: October 12, 2015, 08:41:01 am »
Dave, there is no separate license for the API - it is tied to the compiler license. So if you have the NC (Non-Commercial) license, then you cannot use it for commercial products. If you have a commercial license, then there is no separate license fees for the API and you may use it for any number of products.

And the license is not tied to one given supplier?, you can compile to TI, ST, and so on?
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #97 on: October 12, 2015, 07:02:01 pm »

And the license is not tied to one given supplier?, you can compile to TI, ST, and so on?

Correct. The compiler and the basic libraries are vendor neutral. We have TI and NXP users.

Currently, the JumpStart API is working for STM32F0xx series. We are porting it to the F4xx series now (blinking light is working :-) ). After we cover all the STM series, we will work on other vendors. Not sure which ones yet. Most likely NXP? But may be TI. Atmel locks their software very tight and it might be difficult to extract what we need. We will see.

Thanks for your interest.
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 

Offline ez24

  • Super Contributor
  • ***
  • Posts: 3082
  • Country: us
  • L.D.A.
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #98 on: October 12, 2015, 09:16:21 pm »
Where is Here?

Quote
{ Comparison and Screenshots of Debugger Here }

on page

http://c4everyone.com/index.php?option=com_opencart&Itemid=118&route=product/product&path=17&product_id=57

I am trying to find out if there is a debugger with the $99 version

thanks
YouTube and Website Electronic Resources ------>  https://www.eevblog.com/forum/other-blog-specific/a/msg1341166/#msg1341166
 

Offline richardmanTopic starter

  • Frequent Contributor
  • **
  • Posts: 427
  • Country: us
Re: New Complete Hardware+Software Kit for C Cortex-M Programming
« Reply #99 on: October 13, 2015, 09:38:38 am »
Where is Here?

Quote
{ Comparison and Screenshots of Debugger Here }

on page

http://c4everyone.com/index.php?option=com_opencart&Itemid=118&route=product/product&path=17&product_id=57

I am trying to find out if there is a debugger with the $99 version

thanks

I will fix the page. This is a new site (we are not new, we have been around since 1994 - this incarnation of the website is new :-) )

The debugger requires a separate license, although you can use it during the 45 day demo period.

I will consider making it limited functioning. Let me talk to the team.
// richard http://imagecraft.com/
JumpStart C++ for Cortex (compiler/IDE/debugger): the fastest easiest way to get productive on Cortex-M.
Smart.IO: phone App for embedded systems with no app or wireless coding
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf