#1,102 in Computers & technology books
Use arrows to jump to the previous/next product

Reddit mentions of Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC

Sentiment score: 3
Reddit mentions: 3

We found 3 Reddit mentions of Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC. Here are the top ones.

Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC
Buying options
View on Amazon.com
or
    Features:
  • Lifeline's 50/50 double wall growler is vacuum-insulated to keep liquids hot or cold all day
  • Double wall technology also prevents condensation from forming on the exterior of the bottle as well as preventing any kind of temperature transfer to occur
  • Constructed from lightweight, high quality, food grade 18/8 stainless steel that is 100 percent recyclable
  • Stainless steel construction requires no liner and will not retain tastes or odors
  • All components, including plastic lid, are completely BPA free
Specs:
Height10 inches
Length7.01 inches
Number of items1
Release dateJune 2018
Weight1.80117668054 Pounds
Width0.98 inches

idea-bulb Interested in what Redditors like? Check out our Shuffle feature

Shuffle: random products popular on Reddit

Found 3 comments on Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC:

u/winston_orwell_smith · 8 pointsr/embedded

Here is a breakdown of what you need to do/know as an Embedded Developer (STM32 based):

1- Understand your tools.

Understand how to use embedded development tools such as compilers, debuggers (hardware and software) and built environements. You can go the GCC-ARM+Make+openOCD/texane_stlink route but this is a time-consuming process and though I do recommend it, it is not necessary. Almost all vendors have a free development IDE available nowadays. For STM32, have a look at their System workbench IDE developed along with AC6. It is eclipse based and includes compiler and integrated openOCD for debugging. The STM32CubeMX code generator is also a very nice tool.

For debuggers, there are plenty of official and unofficial STLink debuggers that can be bought for anywhere between $5-$200. The cheaper ones work great. All ST-Nucleo boards come with built-in debuggers. If you intend to use other ARM chips have a look at the JLink debugger. It's more expensive but worth every penny.

For simply programming the STM32, you can use the STLink debugging hardware, ST-Nucleo drag and drop programmer, or the bootloader. All STM32s come with builtin USB/Serial bootloaders that can be activated via changing voltage levels on the BOOT0 and reset pins. This is a really neat feature that all STM32 developers need to be familiar with.

​

2 - Understand your hardware.

Read the reference manual for whatever chip that you are interested in. Know the chips memory map. You also need to understand how to perform bitwise manipulations in C. Specifically you need to be able to:

- set/clear & toggle one or more bits in a register

- test the state of a particular bit or group of bits in a register

You should leverage the information in the reference manual and knowledge of bitwise manipulation to write your own simple GPIO and Serial driver functions (polling based). Same goes for simple peripherals including SPI, I2C, ADC, DAC, Timers, PWM, and even the onboard DMA.

You also need to be familiar with the CPU's/SOC's Interrupt architecture i.e. how to enable/disable interrupts globally, locally and write your own Interrupt subroutines.

If you can do this then you understand the hardware enough to bend it to your will. You do not need to know the CPU architecture i.e. pipelining, caching e.t.c though it does not hurt and will occasionally come in handy.

​

3 - Understand how to use the hardware vendor's provided API.

Writing your own drivers is great but the hardware vendor's API provides better portability and is `usually` better tested and supported than custom drivers. Also writing custom drivers for more advanced peripherals such as USB, Ethernet, SD card interface e.t.c. can be quite a challenge. It's better to utilize the available vendor API instead for those big boy peripherals . Don't try to jump directly to the Vendor API for all peripherals though. Understand the hardware and at least build and test a couple of simple custom drivers as mentioned in step 2.

​

4- Understand how to use an RTOS.

Nowadays more and more projects rely on a real-time operating system(RTOS). FreeRTOS is a very good and popular choice. Learn how to use it. RTOS knowledge and use is essential for large embedded developer projects.

​

Books:

- Carmine Novello's Mastering STM32

- Muhammamd Ali Mazidi's STM32 Arm Programming for Embedded Systems

- Jim Cooling's Real-time Operating Systems Book 2 - The Practice: Using STM Cube, FreeRTOS and the STM32 Discovery Board

- Warren Gay's Beginning STM32

Good luck

u/jabjoe · 5 pointsr/embedded

https://www.amazon.com/Beginning-STM32-Developing-FreeRTOS-libopencm3/dp/1484236238

Also check out ESP32 with it's own great SDK. They made a POSIX like layer for FreeRTOS and have a load of ported light libs for it. All just GCC and Make so nice and simple. (Big thing in the POSIX layer is a PThreads implementation with all the standard Threads, Mutexs and Conditionals, etc)

All very Unix/POSIX/Linux command line but I always recommend developers to be able to at least get by in that environment. Saying that often get down voted here, but I stand by it.

I'd also recommend Linux'ing up to, with a Pi (or other cheap ARM thing) or an old machine.

Anyway, hope those snippets help. Have fun! :-)

u/Mojo_Ryzen · 3 pointsr/stm32f4

Heh I'm pretty much in the same boat, i even bought the same Discovery board. It's kind of overwhelming even knowing where to start.

I did get the book Beginning STM32, but it's all focused on the Blue Pill. I thought it'd be a good way to get started at least. - https://www.amazon.com/Beginning-STM32-Developing-FreeRTOS-libopencm3/dp/1484236238