I need help learning

I need help/ assistance understanding embedded systems engineering (both the software and hardware).

My goals are best summarised in these points.

  1. I want to know how to manipulate hardware devices, not just arduino boards that do all the works for you (setting up the clock, serial comm) but any other microcontrollers, fpga or asic.

  2. I want to learn the c programming language and how to use c for embedded systems. Not just using the boring arduino ide.

  3. I want to know how to write libraries for implementing functions on different hardware devices .

Please i could use help, in form of videos, text, roadmap, lecture series, audio, books, Whatever i can consume

going to an engineering school for this could be a good idea...
it's probably a few years of studies and countless hours of hands on...

2 Likes

Lol, i just graduated from one and i don't know these.

I want to know, that's why I'm seeking these on my own

You will learn best by practise on a proper hardware system. Such as an arduino.

Like direct access to registers? Arduino.

C has many dialects. The arduino version is a good place to start

Plenty of examples you can study with the advantage you can test them and they are already debugged.

1 Like

Can't i learn outside the arduino ide.
I found out that industries don't use arduino ide to design and build embedded device.

The arduino is geared for learners/ beginners

Also, i don't know the c language that much.

I'm a beginner by the way

I assume that you know that the Arduino is programmed in C++ using the Arduino IDE and that you can write and use your own libraries

What is boring about that ?

1 Like

Loads of 3rd-party resources; eg,

https://learn.sparkfun.com/

https://learn.adafruit.com/

1 Like

Doing it from the arduino ide.

What is it about the Arduino IDE that you find boring ?

1 Like

Go to the Microchip website and click on the explore button.

1 Like

:thinking: may be wrong one then (or you learnt to learn)

can we assume you understand programming in C/C++? what else did you study?

I'd say if you have the minimum software engineering background, pick a platform and dive in. Arduino makes it easy to get started and keep it motivating.

Everything is setup for you.
I don't hate the arduino board or ide, but i want to know exactly how to interact with the device. The arduino uno and ide does the heavy lifting already.

My knowledge in c and c++ is shaky. Just the basics.

I've actually been using the arduino platform for a while now (~2 years). I just want to move beyond this point

Here's some microcontroller 'Getting started' tips for you:

https://www.avrfreaks.net/s/topic/a5C3l000000UYGFEA4/t145493?comment=P-1392529

Of course it's possible to learn using other tools!

But you've come to the Arduino forum - so there's obviously going to be ab Arduino focus here!

How did you find that out?

But all IDEs cover the same basic stuff - so, if you understand the principles behind what you're doing, that knowledge will be transferrable to other tools.

But you say you are a beginner? You have to start somewhere!

Aduino uses C++ - so where's the problem?

There are loads of resources for learning C; eg,

http://blog.antronics.co.uk/2011/08/08/so-youre-thinking-of-starting-with-c/

and yet you say you've "graduated" from an engineering school? :thinking:

2 Likes

For the AVR based Arduino, The Arduino IDE is just a text editor and a wrapper around ‘standard’ GNU tools ( GCC etc ), and the avrdude programmer.

You can use any text editor you prefer, (I use notepad ++), and compile and link then upload at your leisure. For other processors, you choose the tool chain you need.

As such, you’re not bound to the IDE, and can flex any way that takes your fancy.

2 Likes

Okay I'm not a "beginner" , but i consider myself a beginner compared to the level i want to reach

This sounds interesting.

But ...

They don't have to do any more "lifting" than you want. For instance, just because the Arduino environment allows you to set the state of a pin using a function that the environment provides it does not mean that you can't do it directly using the ports of the chip if you want to

How bare bones do you want to go ? You can even use the IDE to program in Assembly language if you want

3 Likes

Please, what are we contemplating about??