How do I get into Embedded programming?

How do I get into Embedded programming?

Attached: girls.png (4760x4986, 638K)

Other urls found in this thread:

github.com/Stephane-D/SGDK
archive.fo/c9hvX
twitter.com/SFWRedditGifs

P-pls respond, only web cucks here?

>buy micro controller
>install tool chain
>read datasheet

1. define requirements
2. select appropriate hardware
3. install RTOS if not preinstalled
4. program software that meet requirements

buy a plc, some altera fpga shit and a decade (or more) old computer, then start tinkering with ladder logic, (v)hdl, assembly and serial/parallel i/o

Buy a microcontroller kit and learn C
If you are in Europe Olimex makes good ones for cheap

Buy a micro controler and learn assembly.

Learn assembly coding.

Fuck you, this pic crashed my phone

github.com/Stephane-D/SGDK

Attached: SEGA_DEVKIT.png (648x507, 11K)

I googled "primeCheckUgly" and found the reason that people who write code like this graduate on literal fucking reddit.
archive.fo/c9hvX

You don't need assembly for 99% of embedded tasks nowadays unless it's some legacy shit. I've used it maybe three times in two decades and it was all on ancient MCUs that nobody has used for new projects since the 90s like C167 and MC68332.

t. embedded dev

Depends on what your doing.I use assembly for simple things.

You buy one of the hundreds of books on embedded programming.

If you already know assembly and can write simple stuff faster than with C, fair enough. But there's no reason to learn assembly just to do simple things (especially given how different assembly is across MCU architectures)

Get a STM32 Discovery or Nucleo board and start hacking

...it to pieces

machine code everything
assembly and anything higher is bloat

A cheap STM32F0/STM32F1 board (e.g. the "Blue Pill") and a ST-Link clone from aliexpress are more or less the same hardware, just 4 times cheaper and with less I/O pins.

Attached: 1 HNJ5N6dRBL2iVwQF6bYv1w.jpg (1600x1087, 474K)

Attached: I wish.png (249x419, 198K)

I would really like a job in the field but im not really sure where to start.
I've played with a few microcontrollers and done a few of my own projects but nothing that feels serious.

What do I need to learn for a job?

just design you own CPU inside a FPGA

Learn to write in an HDL, use a simulator and co-simulation tools (direct VPI/VHPI programming, SystemVerilog+UVM, or cocotb), and the basics of digital design: building blocks like FF, FIFOs, handshaking, and state machines; timing and resource constraints; designing for the hardware leveraging pipelining, massive parallelism, and high-throughput communication buses/xbars like AXI.

I've written assembly a number of times porting RTOSs to new architectures. But you're right, I mostly use C++.

It's more than likely generated code, and if you didn't recognize it as a 2,3,5,7,11,13-wheel factored prime check, you're a dumb.

Sure, but there's a lot of example projects for the Discovery boards

you mean FEWER I/O pins

This hurt me

If you want microcontrollers:
- General MCU architecture (what are Harvard/von Neumann architectures, core and peripheral registers, float and fixed point math, what are interrupts, timers, peripheral and memory-to-memory DMA, PLL, watchdog).
- I/O types (GPIO, UART, I2C, SPI, I2S, CAN, ADC/DAC etc, port multiplexing).
- Differences between most common MCU types (AVR, 8051, PIC16, Cortex-M, Cortex-A, ESP8266). I've seen many people with baby duck syndrome for Arduino desperately try to make it do stuff it's not suitable for, like driving high resolution displays or 3-phase motors.
- C, plus optionally assembly and C++.
- Some experience with manufacturer's HAL for at least one MCU, and with programming via direct register access for comparison. Then make a project with an OS like FreeRTOS to learn threading.

A useful start might be to make some home automation - it requires a few different I/O types (e.g. temperature sensors = ADC, relays = GPIO, motors = PWM or external chips via SPI/I2C, etc) plus an interface to an external system via e.g. UART to Wi-Fi, or direct Ethernet, with some kind of high level protocol. Having this on your resume, or even in your pocket when going to a job interview, can appease an employer who insists on job experience.

There are also FPGAs, jobs dealing with those tend to pay more, but they're also rare as fuck. FPGAs are a completely different can of worms with different skills (hardware logic, VHDL, signal timings) required.

>Because this is America goddamn it. Everyone deserves A's no matter how much effort they put in.
Literally >American education
I'm ashamed

Uh, dude, no one ever hires people off the street with those skills. OP is asking "how do I drive a car" and you're suggesting to learn the skills of a F1 pilot.

Phone?? It nearly snowcrashed my brane.

> // good luck

kek

Most of my work was on legacy platforms with very limited RAM. Assembly was needed both for speed and memory footprint. The platforms even included a 6502, just to give you a hint of the age.

Agreed.

An interrupt routine copying data from port X to buffer Y is in many cases easier done in assembly than in C. Then you are sure there is no funny word size or alignment issues coming up.

People do this, complete with tool chain.

Agreed, for learning the community is more important than the cost or even performance of the board.

>An interrupt routine copying data from port X to buffer Y is in many cases easier done in assembly than in C.

I don't know of any modern MCU where this can be more problematic than something like a[i++] = *pUART1_RX. That is, if you even need to write this at all instead of using DMA or HAL functions.

You think so? Well I guess that's why we are short 30 positions rn. But seriously we cant even find college graduates from good CE programs that have ever taking ANY FPGA programming classes, or at most one class at the depth where they can't even explain setup and hold time, cross-clock domain synchronization, how handshaking works, or even one of the above. Universities are absolutely slacking. 50% of the college hires where I works are from 2 universities that actually focus on FPGAs in their curriculum.