Importance of GO language in embedded systems

Go To Last Post
15 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi friends,

 

Can u please suggest up some instances in embedded systems where GO LANGUAGE (GOLANG) is considered useful and necessary ? 

gud day

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

GOLANG? That sound like a dish you order in a Thai restaurant.

 

Never heard of it anyway.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

What's your motivation for asking?

 

First of all, you need to define what you mean by, "embedded system".

 

From a quick look at Wikipedia and https://golang.org/doc/faq it looks like it is aimed at relatively large systems - running on major operating systems like Linux, et al.

In other words, not the sort of small  "embedded system" that we would generally discuss on this particular forum.

More like stuff that needs an ARM Cortex-A or larger - processor.

 

So, if you really want to know, this is probably not the best place to ask!

 

http://www.lmgtfy.com?q=golang+e...

 

The Wikipedia page gives some examples of where it has been used.

 

I've never looked into it, so have no idea where it would be useful.

 

I have never heard of anything where it is necessary.

 

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
Last Edited: Thu. Apr 27, 2017 - 06:43 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

venkatrajpravin wrote:
embedded systems
First say what you mean by "embedded systems". That can be anything from a 4 bit micro running at 200kHz up to 64 bit multicore processors running at several GHz.

 

You have posted on a message board for 8bit micros that are typically 16..32MHz 8bit with 1K to about 256K of program memory.

 

Reading golang.org, as Andy observes, it seems like this is a very high level language for application proccessors (running Windows or Linux) and nothing at all to do with embedded micros. How, for example, would you flash an LED connected to a PORT pin on an AVR using the language?

 

So your post is misplaced here.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Go was invented by Google to write their Cloud Containers Management system (Kubernetes).

It is a language aimed to write complex, concurrent and distributed systems in an easier way than Java and C++.

I wrote some code with it, it's nice and powerful.

 

If you're looking at 8-bit microcontrollers, I doubt its features would be useful as the architectures of those MCUs don't allow multithreading, concurrent programming etc. but most of all don't work with an OS underneath. Naturally, if a Go compiler for AVR MCUs would be writte, it would not allow certain language feature and Go would not be exploited. Better stick to C at this point. Or C++ if you really want an OO language.

 

Other platforms like R-Pi could be good targets - as they e.g. run Linux and can leverage Go features.

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Sorry clawson and awneil if i had made you tensed using the term "embedded systems",, actually i meant with "processors" as you guys said and its my fault that i misplaced the term...SORRY

gud day

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

spassig wrote:
platforms like R-Pi could be good targets

 

http://embd.kidoman.io/

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

venkatrajpravin wrote:
i meant with "processors"

I think you missed the point:  "embedded processors" is no less vague that "embedded systems" - is it?

 

After all, an  "embedded processor" is just one that's used in an "embedded system" - isn't it?!

 

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 1

awneil wrote:

spassig wrote:

platforms like R-Pi could be good targets

 

 

http://embd.kidoman.io/

 

Interesting. I may add it to the (almost endless) list of things to try :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Bottom line - the language seems to be intended for a hosted operating system (Windows, Linux, BSD, that kind of thing). It clearly is not intended for use with micro-controllers which is the subject of this message board.

 

Now whether your Windows/Linux or your small 8bit AVR based system is "embedded" or not is a whole different question.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If you are wanting my opinion on the validity, utility or value of some interpretation to the meaning of your question, I have none to give. I'd upvote spassig's response.

 

If you want me to google for you and present some filtered search results based on a few key words from your question, that I can do.

 

https://gobot.io/

http://embd.kidoman.io/

 

Related to your question, but not directly addressing it, Go could be useful for quickly writing application code that interfaces with your microcontroller project while residing on a hosted system, such as an android app, windows app etc.

Always starting way behind.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thread title said "in embedded systems" not "attached to embedded systems" though?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:

Thread title said "in embedded systems" not "attached to embedded systems" though?

What part of a system is not "in" if attached?

Always starting way behind.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

perehama wrote:
What part of a system is not "in" if attached?

Now that sounds like an interesting philosophical discussion for a separate thread ...

Top Tips:

  1. How to properly post source code - see: https://www.avrfreaks.net/comment... - also how to properly include images/pictures
  2. "Garbage" characters on a serial terminal are (almost?) invariably due to wrong baud rate - see: https://learn.sparkfun.com/tutorials/serial-communication
  3. Wrong baud rate is usually due to not running at the speed you thought; check by blinking a LED to see if you get the speed you expected
  4. Difference between a crystal, and a crystal oscillatorhttps://www.avrfreaks.net/comment...
  5. When your question is resolved, mark the solution: https://www.avrfreaks.net/comment...
  6. Beginner's "Getting Started" tips: https://www.avrfreaks.net/comment...
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

spassig wrote:
Other platforms like R-Pi could be good targets - as they e.g. run Linux and can leverage Go features.
Raspberry Pi and BeagleBone are some of the small targets for the Serial Port JSON Server that's implemented in Go.

Windows 10 IoT Core is a zero price Windows 10 variant that runs on Raspberry Pi and a few other relatively small SBC.

LattePanda has SBC that run Windows 10.

spassig wrote:
Or C++ if you really want an OO language.
Ada (Ada95 and subsequent) is another OOPL.

 


https://github.com/chilipeppr/serial-port-json-server

Serial Port JSON Server is a websocket server for your serial devices. It compiles to a binary for Windows, Mac, Linux, Raspberry Pi, or BeagleBone Black that lets you communicate with your serial port from a web application. This enables web apps to be written that can communicate with your local serial device such as an Arduino, CNC controller… http://chilipeppr.com

https://www.websocket.org/

https://developer.microsoft.com/en-us/windows/iot/Explore/deviceoptions

http://www.lattepanda.com/

https://www.avrfreaks.net/forum/i-didnt-know-you-could-get-ada-avr

 

"Dare to be naïve." - Buckminster Fuller