All Projects → probe-rs → Cargo Embed

probe-rs / Cargo Embed

Licence: other
a cargo extension for working with microcontrollers

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Cargo Embed

Cargo Flash
a cargo extension for programming microcontrollers
Stars: ✭ 134 (+34%)
Mutual labels:  arm, cargo, embedded, flash, debugging
Platformio Core
PlatformIO is a professional collaborative platform for embedded development 👽 A place where Developers and Teams have true Freedom! No more vendor lock-in!
Stars: ✭ 5,539 (+5439%)
Mutual labels:  arm, embedded
Eclipse Plugins
The Eclipse Embedded CDT plug-ins for Arm & RISC-V C/C++ developers (formerly known as the GNU MCU Eclipse plug-ins). Includes the archive of previous plug-ins versions, as Releases.
Stars: ✭ 507 (+407%)
Mutual labels:  arm, embedded
Paddle Lite
Multi-platform high performance deep learning inference engine (『飞桨』多平台高性能深度学习预测引擎)
Stars: ✭ 5,808 (+5708%)
Mutual labels:  arm, embedded
Distortos
object-oriented C++ RTOS for microcontrollers
Stars: ✭ 354 (+254%)
Mutual labels:  arm, embedded
Qpc
QP/C real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 379 (+279%)
Mutual labels:  arm, embedded
F9 Kernel
An efficient and secure microkernel built for ARM Cortex-M cores, inspired by L4
Stars: ✭ 596 (+496%)
Mutual labels:  arm, embedded
gdbstub
An ergonomic and easy-to-integrate implementation of the GDB Remote Serial Protocol in Rust, with full no_std support.
Stars: ✭ 158 (+58%)
Mutual labels:  debugging, embedded
Spiffs
Wear-leveled SPI flash file system for embedded devices
Stars: ✭ 1,105 (+1005%)
Mutual labels:  embedded, flash
Stm32l4xx Hal
A Hardware abstraction layer for the stm32l432xx series chips written in rust.
Stars: ✭ 65 (-35%)
Mutual labels:  arm, embedded
Daplink
Stars: ✭ 1,162 (+1062%)
Mutual labels:  arm, embedded
Trezor Mcu
🔒 Don't use this repo, use the new monorepo instead:
Stars: ✭ 315 (+215%)
Mutual labels:  arm, embedded
Tock
A secure embedded operating system for microcontrollers
Stars: ✭ 3,258 (+3158%)
Mutual labels:  arm, embedded
Embedded Notes
嵌入式linux软件开发、嵌入式linux驱动开发、c语言、单片机开发、IOT开发等面试要点记录
Stars: ✭ 487 (+387%)
Mutual labels:  arm, embedded
drone-cortexm
ARM® Cortex®-M platform crate for Drone, an Embedded Operating System.
Stars: ✭ 31 (-69%)
Mutual labels:  arm, embedded
Pyocd
Open source Python library for programming and debugging Arm Cortex-M microcontrollers
Stars: ✭ 550 (+450%)
Mutual labels:  arm, embedded
Easyflash
Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB
Stars: ✭ 1,236 (+1136%)
Mutual labels:  embedded, flash
m3forth
m3forth is a forth cross-compiler for cortex-m3 ARM microcontrollers
Stars: ✭ 16 (-84%)
Mutual labels:  debugging, arm
cortex-uni-startup
Unified startup code and link scripts for Cortex-M microcontrollers
Stars: ✭ 33 (-67%)
Mutual labels:  arm, embedded
Mylinux
myLinux is a small UNIX like OS for embedded systems based on Westermo NetBox
Stars: ✭ 53 (-47%)
Mutual labels:  arm, embedded

cargo-embed

crates.io documentation Actions Status chat

This crate provides a cargo subcommand to work with embedded targets.

It can flash targets, just like cargo-flash but can do much more, such as logging RTT output from the target, opening a GDB server connected to the target, and much more functionality such as ITM to come!

Various chip families including but not limited to nRF5x, STM32 and LPC800 can be worked with using DAPLink, ST-Link or J-Link. It supports all the targets & probes probe-rs supports.

Support

If you think cargo-embedded makes your embedded journey more enjoyable or even earns you money, please consider supporting the project on Github Sponsors for better support and more features.

Installation

You can install this utility with cargo:

cargo install cargo-embed

Usage

You can use it like any cargo command would be used

cargo embed <args>

which will then build your binary and download the contents onto the connected target.

Configuration

You can configure cargo-embed with a file called Embed.toml (or .embed.toml) in your project directory. That file should be added to your git history.

For local-only configuration overrides, you can create an Embed.local.toml (or .embed.local.toml) file and add that to your .gitignore.

Config file precedence:

  1. Embed.local.*
  2. .embed.local.*
  3. Embed.*
  4. .embed.*
  5. Default configuration

Instead of a TOML file, you can also use a JSON or YAML file. Choose what suits you best!

You can find all available options in the default.toml. Commented out options are the ones that are None by default.

Building

cargo-embed can be built using cargo, after installing the necessary prerequisites. See the list below for your operating system.

FTDI Support

FTDI support is optional. You can enable it with the ftdi feature. You also need the correct prerequisites from the next section installed.

Prerequisites

cargo-embed depends on the libusb and optionally on libftdi libraries, which need to be installed to build cargo-embed.

Linux

On Ubuntu, the following packages need to be installed:

> sudo apt install -y pkg-config libusb-1.0-0-dev libftdi1-dev

Windows

On Windows you can use vcpkg to install the prerequisites:

# dynamic linking 64-bit
> vcpkg install libftdi1:x64-windows libusb:x64-windows
> set VCPKGRS_DYNAMIC=1

# static linking 64-bit
> vcpkg install libftdi1:x64-windows-static-md libusb:x64-windows-static-md

macOS

On macOS, homebrew is the suggested method to install libftdi:

> brew install libftdi

Sentry logging

We use Sentry to record crash data. This helps us trace crashes better. No data will ever be transmitted without your consent! All data is transmitted completely anonymously. This is an OPT-IN feature. On crash, cargo-embed will ask you whether to transmit the data or not. You can also set whether to do this for all times with an environment variable to omit the message in the future. If you do not wish to have sentry integrated at all, you can also build cargo-embed without sentry by using --no-default-features.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].