STM32 定址最大為4G

2021-08-09 01:57:49 字數 757 閱讀 4995

你的演算法沒問題,你的理解有問題!32位的作業系統理論上最多支援4gbytes是沒問題的。

1bytes(位元組)=8bits(字位)也是沒問題的。你存在概念性錯誤,你的計算方案應該是以cup的32位數來計算就只有2^32bits= 512mbyte,然而2^32byte=4gb。

首先你要區分32位作業系統和32位的處理器(cpu)的區別和聯絡。

(一)32位cpu每次可以處理32個字位,即32bits=4bytes。每乙個位元組都有乙個位址,其中包含了8個字位。32位cpu有32跟位址線,位址線決定了定址範圍的能力。每一根線都決定0和1兩個位址,那麼兩根線就會決定00,01,10,11這四個位址,依次類推,32根線總共會決定出2^32次方個位置。這樣計算是沒有問題的。每乙個位置都是1byte,這是記憶體的基本單位,所以32位作業系統配32位cpu,理論上可以尋找4gb的位址。由於硬體等原因,系統顯示會不到4g。

(二)32位作業系統與64位cpu的搭配。64位cpu有64根位址匯流排,理論支援2^32/1024^3 g的記憶體,這是乙個很大的數字,但是實際上我們市場的電腦目前遠遠達不到這個理論記憶體的萬分之一。目前64位也就是能支援120g的記憶體。但是如果64位cpu和32位作業系統搭配,也僅僅會支援4g的記憶體。因為在32位系統下,僅有32根位址線工作。

(三)定址範圍是由位址線個數確定的,而不是cpu位數確定的。cpu的位址匯流排根數決定了能找到多少個位元組(byte),資料匯流排的寬度決定了能夠一次傳送多少個二進位制位(bit) 。希望你能明白其中的關係,不要把位址線直接和字位(bit)聯絡在一起。

STM32開發 4G模組開發詳解(4)

前面用了三篇來講基礎知識,根據這些東西可以簡單的實現4g模組的通訊了。但是離專案要求還遠遠不夠的。接下來看一下,的邏輯架構。前面有講到at指令的操作,那它們該怎麼使用呢?1 聯網階段 首先將4g連線tcp伺服器這個過程,分為幾個階段。define poweroff u8 0 define power...

STM32開發 4G模組開發詳解(1)

這部分一直再看,資料都已經整理好了,但是一直沒有彙總。接下來就詳細的看一下,gsm這部分是怎麼實現的。依照我總結的慣例,需要先簡單的看一下硬體原理圖和晶元手冊。我使用的型號為l506 的4g模組。首先是要區分一下gsm gprs 4g模組的。比如,正點原子的開發板搭配的是sim900a為工業級雙頻g...

STM32開發 4G模組開發詳解(3)

上面兩篇文章,基本上把軟硬體部分講完了。接下來我們就看一下收發資料這部分該怎麼處理。首先明確一下,我們一共使用了4個串列埠 4g模組 usart1 gps usart2 ble usart3 debug uart4 也就是說,4g模組資料的收發是usart1,串列埠除錯工具debug是uart4 之...