如上圖:
SOC中包含了CPU,Flash,串口和內存
在嵌入式平臺工作時,編譯好的二進制文件先放在flash裏面(暫存作用),開機的時候,CPU把二進制文件從flash拷貝到內存運行。
總線:地址總線和數據總線
CPU說的32位就是數據總線的位數爲32位,單次通信數量爲2的32次方
注意:
CPU的位數指的是數據總線位數,而決定最大支持內存的則是地址總線位數。
舉例:
內存爲4G,地址總線位數爲32,2exp32 = 4G,說明4G內存都可以尋址得到,內存可以充分被利用。
如果地址總線位數爲16,則內存不能被充分利用。
在地址總線和數據總線相同的前提下,32位CPU(數據總線爲32位)的最大支持尋址空間爲2^32,即最大支持4G內存。所以在32位CPU中,編程用到的數據類型,如整型,應優先使用int,一個int佔4字節,一個字節爲8bit,總共32bit,一次完成傳輸需要32位數據總線。而比int佔用更小的數據類型,如short int,在32位CPU中要完成一次傳輸也是需要32位數據總線。
SoC中的CPU主要構成:寄存器+運算器+控制器,Flash,串口和內存。其中Flash是存放程序和數據,內存是程序的運行。但需要CPU中的寄存器作爲臨時搬運工。CPU向Flash提出命令, 然後通過地址總線找到該處地址,在通過數據總線將該數據傳輸到CPU的寄存器中。後通過數據總線傳送到內存中運行。