Bit-banding là gì?


16

Tôi đang đọc hướng dẫn tham khảo ARM Cortex M3 và xuất hiện các khái niệm "bit-band", "vùng băng tần bit" và "bí danh dải bit".

Bit-banding là gì?


Tôi đã dành riêng một trang github để giải thích dải bit là gì, cách thức hoạt động và cách sử dụng nó. Tôi tin rằng nó trả lời hầu hết các câu hỏi về dải bit, hãy thoải mái (xem lại) nó.

Đây là phần giới thiệu hữu ích về tính năng tạo dải bit trong ARM Cortex M3 atadiat.com/en/articles/iêu
yahya tawil

Câu trả lời:


8

Các trung tâm thông tin ARM đề cập đến bit dải trong Cortex-M3 của họ và -M4 tài liệu hướng dẫn, tài liệu trình biên dịch, và một vài nơi khác, như Trang chủ> Các lập trình viên Model> Bit-dải . Từ Trang chủ> Phát triển phần mềm cho Cortex-M3> Dải bit :

Dải bit ánh xạ một từ hoàn chỉnh của bộ nhớ vào một bit trong vùng dải bit. Ví dụ, viết vào một trong những từ bí danh sẽ đặt hoặc xóa bit tương ứng trong vùng bitband.

Nó dường như là một cách để có được hoạt động nguyên tử bit đơn.

Khi ghi vào các vùng bí danh, bit 0 của từ 32 bit được sử dụng để đặt giá trị ở vùng dải bit. Đọc từ địa chỉ bí danh sẽ trả về giá trị từ vùng băng bit ở bit 0 và các bit khác sẽ bị xóa.


Bạn có biết làm thế nào các hoạt động dải bit được thực hiện trong nội bộ, và những gì đảm bảo thực sự liên quan đến nguyên tử? Tôi đã thiết kế một con chip để tạo điều kiện cho các hoạt động thiết lập bit nguyên tử hoặc bit rõ ràng, tôi sẽ sử dụng hai trong số các bit địa chỉ trên để chọn giữa 'truy cập bình thường' (00), 'ghi' (01) và 'ghi số 0' (1x). Ngoài ra, tôi sẽ có CPU đảo ngược đầu ra dữ liệu của nó khi các bit địa chỉ đó là 0x11. Theo cách đó, các bit có thể được thiết lập hoặc xóa trong một chu kỳ mà không cần đọc-sửa đổi-ghi. Ngay cả khi các bit sẽ được đặt bằng phần cứng đồng thời với ghi, ...
supercat

1
Chỉ cần theo các liên kết, ya bums.
tyblu

1
@AlKepp, Viết một chút về nhiều hệ thống tôi đã sử dụng thực sự là nguyên tử với một hướng dẫn duy nhất để thực hiện hành động không thể bị gián đoạn.
Kortuk

1
@AlKepp, tôi đã không cố gắng ám chỉ rằng có những hệ thống không thể làm điều này với một hướng dẫn nguyên tử. Bạn nói, "Viết một chút không thể thực sự là nguyên tử." Tôi đã không đồng ý với yêu cầu này. Tôi đã sử dụng nhiều hệ thống trong đó nó là nguyên tử và chúng tồn tại.
Kortuk

3
@AlKepp, Cortex M3 là một ví dụ về nhiều vi điều khiển. Điều quan trọng với tôi là bạn không thể nói các hướng dẫn nguyên tử không tồn tại nếu chúng thường làm. Nhiều người ở đây thực hiện các hệ thống nhúng có tài nguyên đủ thấp mà bộ nhớ là nội bộ, nó thực sự là hệ thống duy nhất tôi thích mã hóa. Điều đó sang một bên, nói với ai đó nó không tồn tại khi nó tồn tại và thường được sử dụng có thể đánh lừa.
Kortuk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.