對于正點原子開發(fā)開發(fā)指南這個串口下載不是很理解,簡單看了下手冊。
STM32可以分為三種其啟動模式,1:從主Flash啟動 ; 2:從系統(tǒng)存儲器啟動(其實就是ROM);3:從嵌入式SRAM啟動(其實就是常規(guī)的RAM)。三種模式根據(jù)BOOT0 和BOOT1的管腳電平來決定。具體參考STM32手冊。STM32上電或者復位后,代碼區(qū)始終從0x00000000開始,三種啟動模式其實就是將各自存儲空間的地址映射到0x00000000中。
1:從Flash啟動,將主Flash地址0x08000000映射到0x00000000,這樣代碼啟動之后就相當于從0x08000000開始。
2:從RAM啟動,將RAM地址0x20000000映射到0x00000000,這樣代碼啟動之后就相當于從0x20000000開始。
3:從系統(tǒng)存儲器啟動,開發(fā)指南上所講就是這種啟動模式。首先控制BOOT0 BOOT1管腳,復位后,STM32與上述兩種方式類似,從系統(tǒng)存儲器地址0x1FFF F000開始執(zhí)行代碼。系統(tǒng)存儲器存儲的其實就是STM32自帶的bootloader代碼,在bootloader中提供了UART1的接口,通過此接口可以將用戶所需的程序代碼下載到主Flash中(具體見手冊:http://www.st.com/content/ccc/resource/technical/document/application_note/b9/9b/16/3a/12/1e/40/0c/CD00167594.pdf/files/CD00167594.pdf/jcr:content/translations/en.CD00167594.pdf)。下載完畢后,此時程序代碼已經(jīng)存儲咋主Flash當中,這時切換啟動模式(從主Flash啟動),復位后所執(zhí)行的就是剛剛下載到Flash中的代碼了。