Ich lese das ARM Cortex M3 Referenzhandbuch und die Konzepte „Bitband“ „,“ Bitband-Region „und“ Bitband-Alias „werden angezeigt.
Was ist Bitbanding?
Kommentare
- Ich habe eine Github-Seite eingerichtet, um zu erklären, was Bitbanding ist, wie es funktioniert und wie es verwendet wird. Ich glaube, es beantwortet die meisten Fragen zum Bitbanding. Sie können es gerne (erneut) anzeigen.
- Dies ist eine praktische Einführung in die Bitbanding-Funktion in ARM Cortex M3 atadiat.com/de/articles/…
Antwort
Das ARM-Info-Center bezieht sich auf Bitbanding in der Cortex-M3- und -M4-Dokumentation, in Compiler-Dokumenten und einigen anderen Orte wie Home> Programmierermodell> Bitbanding . Von Home> Entwickeln von Software für Cortex-M3> Bitbanding :
Bitbanding ordnet ein vollständiges Speicherwort einem einzelnen Bit im Bitbandbereich zu. Wenn Sie beispielsweise in eines der Aliaswörter schreiben, wird das entsprechende Bit im Bitbandbereich gesetzt oder gelöscht.
Es scheint eine Möglichkeit zu sein, Single zu werden Bitatomoperation.
Beim Schreiben in die Aliasbereiche wird Bit 0 des 32-Bit-Wortes verwendet, um den Wert im Bitbandbereich festzulegen. Das Lesen von der Alias-Adresse gibt den Wert aus dem Bitbandbereich in Bit 0 zurück und die anderen Bits werden gelöscht.
Kommentare
- Haben Sie eine Vorstellung davon, wie Bitband-Operationen intern ausgeführt werden und welche tatsächlichen Garantien hinsichtlich der Atomizität bestehen? Würde ich einen Chip entwerfen, um atomare Bit-Set- oder Bit-Clear-Operationen zu erleichtern, würde ich zwei der oberen Adressbits verwenden, um zwischen ' normalem Zugriff (00), ' schreibe diejenigen ' (01) und ' schreibe Nullen ' (1x). Außerdem muss die CPU bei ' ihre Datenausgabe invertieren, wenn diese Adressbits 0x11 waren. Auf diese Weise könnten Bits in einem Zyklus gesetzt oder gelöscht werden, ohne dass ein Lesen, Ändern, Schreiben erforderlich ist. Selbst wenn die Bits gleichzeitig mit dem Schreiben von der Hardware gesetzt würden, …
- Folgen Sie einfach den Links, ya bums.
- @AlKepp, Schreiben Sie ein bisschen auf viele der Systeme I. habe verwendet ist wirklich atomar mit einer einzigen Anweisung, um die Handlung auszuführen, die nicht unterbrochen werden kann.
- @AlKepp, ich wollte nicht implizieren, dass es Systeme gab, die dies nicht mit einer atomaren Anweisung tun konnten. Sie sagten: " Das Schreiben eines Bits kann nicht wirklich atomar sein. " Ich war mit dieser Behauptung nicht einverstanden. Ich habe viele Systeme verwendet, in denen es atomar ist und die es gibt.
- @AlKepp, Der Cortex M3 ist ein Beispiel für einen Mikrocontroller. Die Bedeutung für mich ist, dass man nicht sagen kann, dass atomare Anweisungen nicht existieren, wenn sie es oft tun. Viele Leute hier machen eingebettete Systeme, die so wenig Ressourcen haben, dass der Speicher intern ist. Es ist tatsächlich das einzige System, auf dem ich gerne codiere. Abgesehen davon kann es irreführend sein, jemandem zu sagen, dass es nicht existiert, wenn es existiert und häufig verwendet wird.