-
Rust Fundamentals: Quick intro to core concepts
35 Lessons-
StartHow Rust ensures memory safety compared to C/C++ part 1
-
StartVariables and numerical data types
-
StartByte literal
-
StartChar and unicode representation
-
StartStatics
-
StartConstants
-
StartHow Rust ensures memory safety compared to C/C++ part 2
-
StartArrays
-
StartReferences
-
StartBorrow(&T and &mut T)
-
StartCan you help us?
-
Startslice data type
-
Startif..else as a statement and expression
-
Startmatch statement
-
Startif..let statement
-
StartHow Rust ensures memory safety compared to C/C++ part 3
-
StartComparison and logical operators
-
StartBitwise operators
-
StartStrings
-
StartUTF8 encoded string
-
StartString literal type(&str)
-
StartFunction declaration and parameters
-
StartStructures
-
StartPrinting the structure
-
StartInitializing struct with defaults
-
StartPassing struct variables to functions
-
StartCreating methods for a struct
-
StartAssociated functions(Constructor) of struct
-
StartEnums
-
StartMethods and associated functions of an enum type
-
StartOption T
-
StartResult T, E
-
StartError handling using Result type
-
StartError propagation using ?
-
StartGenerics.
-
-
Cross compilation
6 Lessons-
StartAbout the hardware
-
StartIntro to cross compilation for target architecture
-
StartExercise 001: Generating ELF file for the very basic rust program part 1
-
StartGenerating ELF file for the very basic rust program part 2
-
StartAbout Type 'never'(!)
-
StartInspecting ELF file using cargo-binutils
-
-
Writing start-up code and linker script for bare metal Rust program
13 Lessons-
StartWriting start-up code part-1
-
StartAbout Linker, Linker flags and Linker script
-
StartWriting linker script from scratch part 1 [MEMORY]
-
StartDifferent types of data in a program
-
StartWriting linker script from scratch part 2 [SECTIONS]
-
StartWriting linker script from scratch part 3
-
StartWriting start-up code part-2 [Vector table]
-
StartWriting start-up code part-3 [extern "C"]
-
StartWriting start-up code part-4 [Default_Handlers]
-
StartWriting start-up code part-5 [Reset_Handler]
-
StartRaw pointers in Rust
-
StartWriting start-up code part-6 [Reset_Handler]
-
StartCan you help us?
-
-
Exercise 002: Bare metal Rust application to handle LEDs using Interrupts
18 Lessons-
StartIntroduction
-
StartExercise Implementation Part 1
-
StartExercise Implementation Part 2
-
StartExercise Implementation Part 3
-
StartExercise Implementation Part 4
-
StartExercise Implementation Part 5
-
StartExercise Implementation Part 6
-
StartExercise Implementation Part 7 and Testing LED module
-
StartUnsafe block vs Unsafe fn
-
StartCommenting and generating documentation part 1 [/// Outer documentation]
-
StartCommenting and generating documentation part 2 [//! Inner documentation]
-
StartExercise Implementation Part 8; Writing button module
-
StartExercise Implementation Part 9; Coding for button interrupt
-
StartExercise Implementation Part 10
-
StartExercise Implementation Part 11
-
StartExercise Implementation Part 12
-
StartExercise Implementation Part 13
-
StartExercise Implementation Part 14: Testing button interrupt
-
-
Exercise 003: Using external crate cortex-m-rt and cortex-m
9 Lessons-
StartWhat is a crate?
-
StartImportant crates for embedded systems
-
StartExercise introduction
-
StartCortex-m-rt crate explanation
-
StartCrate version number syntax
-
StartPanic handling crates
-
StartSystick time base generation using cortex-m crate
-
StartTesting Systick time base generation
-
StartCan you help us?
-
-
Rust Foreign Function Interface(FFI)
9 Lessons-
StartSteps involved in dealing with Rust and Foreign language code
-
StartTypes mapping between Rust and C
-
StartRust equivalent of C's void and void pointer
-
StartRust equivalent of C's void and void pointer contd.
-
StartRust representation of C's String
-
StartRust accepting and processing Strings from 'C' (core::ffi::Cstr)
-
StartRust sending Strings to 'C' (std::ffi::CString)
-
StartStruct memory layout: Rust Vs C
-
StartPassing struct from Rust to C
-
-
Exercise 005: Flappy Bird game implementation (Rust + C)
37 Lessons-
StartIntroduction to Flappy bird application
-
StartImplementation part 1 : Generating 'C' MCU driver files using STM32CubeIDE
-
StartCompiling 'C' source files from Rust project: How it works?
-
StartWriting build.rs part 1
-
StartWriting build.rs part 2
-
StartWriting build.rs part 3
-
StartWriting build.rs part 4
-
StartWriting build.rs part 5
-
StartTesting project for systick interrupt generation
-
StartImplementation part 2 : Peripheral configuration and code generation
-
StartCopy driver files into the project
-
StartAnalysing the issue related to weak symbol linkage
-
StartFixing issue related to weak symbol linkage and testing project
-
StartGame feature : Start screen implementation part-1
-
StartGame feature : Start screen implementation part-2
-
StartGame feature : Start screen implementation part-3
-
StartGame feature : Start screen implementation part-4
-
StartGame feature : Start screen implementation part-5
-
StartGame feature : Start screen implementation part-6
-
StartGame feature : Start screen implementation part-7
-
StartGame feature : Start screen implementation part-8
-
StartGame feature : Start screen implementation part-9
-
StartGame feature : Start screen implementation part-10
-
StartGame feature : Start screen implementation part-11
-
StartGame feature : Start screen implementation part-12
-
StartGame feature : Start screen implementation part-13
-
StartGame feature: Obstacle movement implementation part-1
-
StartGame feature: Obstacle movement implementation part-2
-
StartGame feature: Obstacle movement implementation part-3
-
StartGame feature: Obstacle movement implementation part-4
-
StartGame feature: Obstacle movement implementation part-5
-
StartGame feature: Obstacle movement implementation part-6
-
StartGame feature: Player movement implementation part-1
-
StartGame feature: Player movement implementation part-2
-
StartGame feature: Collision detection implementation part-1
-
StartGame feature: Collision detection implementation part-2
-
StartGame feature: Collision detection implementation part-3
-
-
Creating hardware agnostic device driver using embedded-hal
11 Lessons-
StartAbout hardware agnostic driver development
-
StartMPU6050 driver crate implementation part-1
-
StartMPU6050 driver crate implementation part-2
-
StartMPU6050 driver crate implementation part-3
-
StartMPU6050 driver crate implementation part-4
-
StartMPU6050 driver crate implementation part-5
-
StartMPU6050 driver crate implementation part-6
-
StartMPU6050 driver crate implementation part-7
-
StartMPU6050 driver crate implementation part-8
-
StartMPU6050 driver crate implementation part-9
-
StartAdding [features] to driver crate
-
-
Exercise 005: Flappy Bird game implementation (Rust + C) contd.
7 Lessons