Sto leggendo il manuale di riferimento di ARM Cortex M3 e i concetti di “banda di bit” Vengono visualizzati “,” bit-band region “e” bit-band alias “.
Che cosè il bit-band?
Commenti
- Ho dedicato una pagina github per spiegare cosè il bit-banding, come funziona e come usarlo. Credo che risponda alla maggior parte delle domande sul bit-banding, sentiti libero di (ri) visualizzarlo.
- Questa è una pratica introduzione sulla funzione di bit-band in ARM Cortex M3 atadiat.com/en/articles/…
Risposta
Il centro informazioni ARM fa riferimento al bit-banding nella documentazione Cortex-M3 e -M4, nei documenti del compilatore e in pochi altri luoghi, come Home> Modello di programmatori> Bit-banding . Da Home> Sviluppo di software per Cortex-M3> Bit-banding :
Il banding di bit mappa una parola di memoria completa su un singolo bit nella regione di banda di bit. Ad esempio, la scrittura di una delle parole alias imposterà o cancellerà il bit corrispondente nella regione della banda di bit.
Sembra essere un modo per ottenere un singolo operazione atomica a bit.
Quando si scrive nelle regioni alias, il bit 0 della parola a 32 bit viene utilizzato per impostare il valore nella regione di banding di bit. La lettura dellindirizzo alias restituirà il valore dalla regione della banda di bit nel bit 0 e gli altri bit verranno cancellati.
Commenti
- Hai idea di come vengono eseguite internamente le operazioni a bande di bit e quali sono le garanzie reali riguardo allatomicità? Se stessi progettando un chip per facilitare le operazioni atomiche di bit set o bit-clear, utilizzerei due dei bit di indirizzo superiori per selezionare tra ' accesso normale ' (00), ' scrivi quelli ' (01) e ' scrivi zeri ' (1x). Inoltre, ' fare in modo che la CPU inverta i suoi dati in uscita quando quei bit di indirizzo erano 0x11. In questo modo, i bit potrebbero essere impostati o cancellati in un ciclo, senza bisogno di lettura-modifica-scrittura. Anche se i bit venissero impostati dallhardware simultaneamente alla scrittura, …
- Segui i link, ya bums.
- @AlKepp, Scrivendo un po su molti dei sistemi che ho hanno usato è veramente atomico con una singola istruzione per eseguire latto che non può essere interrotto.
- @AlKepp, non stavo cercando di implicare che esistessero sistemi che non potevano farlo con unistruzione atomica. Hai detto, " La scrittura di un bit non può essere veramente atomica. " Non ero daccordo con questa affermazione. Ho usato molti sistemi in cui è atomico ed esistono.
- @AlKepp, Il Cortex M3 è un esempio di più di un microcontrollore. Limportanza per me è che non si può dire che le istruzioni atomiche non esistono se lo sono spesso. Molte persone qui fanno sistemi incorporati con risorse sufficientemente basse da contenere la memoria interna, in realtà è lunico sistema su cui mi piace scrivere codice. A parte questo, dire a qualcuno che non esiste quando esiste ed è comunemente usato può fuorviare.