簡體   English   中英

處理器字大小? 8位處理器= 8位字?

[英]Processor word size? 8bit processor = 8 bit word?

我想如果我有一個AVR 8位微控制器,則字數為8位/ 1字節? 但在數據表中,它表​​明大多數AVR處理器都有16位字。 但它沒有說具體的處理器有這個。 通常在特定數據表中陳述一些內容很奇怪。

但是什么是8位32位MCU,如果這不是字大小?

如果wordsize = 2個字節,那么這在C中是原子的:U16位置;

位置= 1000;

但是,如果該字是1字節,我應該在寫入此變量時禁用中斷(中斷使用此變量)? 禁用中斷的速度有多慢?

傳統的AVR系列(即ATtiny,ATmega,ATxmega,而非AVR32)是8位MCU,用於8位寄存器/累加器,但有一些16位指令,例如通過地址對處理指針時。

遺憾的是,沒有普遍接受的“單詞”定義。 在這種情況下,我懷疑作者只是將16位值稱為字,而不是8位字節或32位雙字。

所以,不,你不能指望以原子方式訪問的16位變量。 值得慶幸的是一些最重要的I / O寄存器,例如定時器,其中有重要的內部鎖存器來隱藏事實,但你需要注意與中斷共享的RAM變量。

臨時禁用中斷非常快,每個都是CLI / SEI指令的循環。 某些編譯器的問題(ImageCraft浮現在腦海中)是在函數中使用這樣的內聯匯編可能會禁用優化,因此實際成本可能會更高一些。 考慮僅禁用有爭議的爭議中斷以避免此問題並減少延遲。

請注意,與其他一些MCU不同,原子位訪問通常僅限於最低I / O端口范圍內的一小部分寄存器,通常是幾個PORT和通用寄存器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM