STM32中AHB總線、APB2總線、APB1總線這些是什么?
一直不明白有STM32中AHB總線、APB2總線、APB1總線這些是是什么??
所謂地址映射,就是將芯片上的存儲(chǔ)器 甚至I/O等資源與地址建立一一對(duì)應(yīng)的關(guān)系。如果某地址
對(duì)應(yīng)著某寄存器,我們就可以運(yùn)用C語(yǔ)言的指針來(lái)尋址并修改這個(gè)地址上的內(nèi)容,從而實(shí)現(xiàn)修改該寄存器的內(nèi)容。
正是因?yàn)?reg52.h>頭文件中有了對(duì)于各種寄存器和I/O端口的地址映射,我們才可以在51單片機(jī)
程序中方便地使用P2^0 =0xFF; TMOD =0xFF等賦值句子對(duì)寄存器進(jìn)行配置,從而控制單片機(jī)。
其實(shí)地址總線就是就是用來(lái)存放地址的,Cortex-M3的地址映射也是類似的,Cortex-M3有32根地址線,所以它的尋址空間大小為2^32
bit=4GB。(這里什么32跟地址線不需要去糾結(jié)了,只要知道配置成了4G的地址就行)
然后APB2總線就是指特定的一段地址,如:0x4001 0000—XXXX
具體的解釋見(jiàn)\STM32 神舟\神舟III號(hào)\第5集 流水燈實(shí)驗(yàn) \LED流水燈實(shí)驗(yàn).pdf上的詳解
拓展:
計(jì)算機(jī)硬件設(shè)備有傳輸數(shù)據(jù)和地址的線路,有的計(jì)算機(jī)數(shù)據(jù)線和地址線是公用的,就要采用分時(shí)處理的方式,有的計(jì)算機(jī)實(shí)際地址線路數(shù)少于集成電路的地址線路數(shù),就要采用分段尋址的方式。
因?yàn)橐灿茫越锌偩(bus)有數(shù)據(jù)總線和地址總線。
總線有控制總線,數(shù)據(jù)總線和地址總線,控制總線是發(fā)送控制信號(hào)的,地址總線是傳送地址信號(hào)的,CPU要訪問(wèn)內(nèi)存,必須首先在地址總線上給出內(nèi)存的地址,所謂32位的地址總線是指根CPU相連的地址線有32條,每一條可以給出兩個(gè)不同的符號(hào)(0和1)那么就可以訪問(wèn)2的32次方的空間的內(nèi)存。數(shù)據(jù)總線是傳輸數(shù)據(jù)的,CPU要從內(nèi)存或者緩存中讀取數(shù)據(jù),必須通過(guò)數(shù)據(jù)總線進(jìn)行,32位的數(shù)據(jù)總線對(duì)應(yīng)的是跟CPU相連的32根數(shù)據(jù)線。一條數(shù)據(jù)線傳送一個(gè)二進(jìn)制數(shù),32位數(shù)據(jù)總線一次就可以傳送2個(gè)字節(jié)的數(shù)據(jù)。
CPU中的位指的是CPU運(yùn)算一次處理數(shù)據(jù)量的能力,32位CPU一次可以處理32位的數(shù)據(jù),64位CPU一次可以處理64位的數(shù)據(jù)。
64位CPU不一定對(duì)應(yīng)64位數(shù)據(jù)總線和地址總線,如果是32位的總線,可以采取分兩次傳送的措施,一般總線的位數(shù)大于等于CPU的位數(shù)
總結(jié):學(xué)習(xí)單片機(jī)還得腳踏實(shí)地 打好基礎(chǔ) 搞清楚
編輯:admin 最后修改時(shí)間:2018-05-18