Consider adding declarative macros in `cortex-m-rt`

Aperta
#473 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
rust
Ambito
embedded-iot

Direzione di ricerca

Inizia esaminando le macro entry ed exception esistenti in cortex-m-rt e l’approccio di pin-project-lite citato nell’issue. Chiarisci se dovrebbe trattarsi di una nuova crate cortex-m-rt-lite o di una feature di cortex-m-rt, quindi definisci come funzionerebbero gli esempi mostrati di entry! ed exception! senza dipendenze proc-macro.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

It would be great to have a "lite" version of the macros in cortex-m-rt which are written without proc-macro and related dependencies. For smaller applications which do not have a lot of crates in their dependency graphs this would be a nice way to reduce compile times a bit.

This would be a similar to what pin-project-lite is to pin-project. There is probably a discussion around whether this warrants a new crate (such as cortex-m-rt-lite) or simply a feature flag in cortex-m-rt to swap between procedural and declarative macro implementations.

This would allow users to write code like:

#![no_main]
#![no_std]

extern crate panic_halt;

use cortex_m_rt_lite::{entry, exception};

entry! {
    fn main() -> ! {
        // init...

        loop {
            // app logic...
        }
    }
}

exception! {
    fn SysTick() {
        // ...
    }
}

If you broadly agree with the change I'd be happy to implement it and submit a PR.

Lingua principale
Rust
Stelle
1k
Fork
203
Merge medio
1g 4h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di rust-embedded/cortex-m

Tutte le issue di rust-embedded/cortex-m

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.