到官網(wǎng)下載Datasheet文檔發(fā)現(xiàn)居然還是中文版的,有那么點(diǎn)點(diǎn)小驚喜,突然感覺(jué)中國(guó)真的強(qiáng)大了。話不多說(shuō),直接玩起來(lái),相信大家玩M3或M4的板子大多應(yīng)該是參考正點(diǎn)原子或者野火來(lái)的吧,所以就有那么點(diǎn)習(xí)慣按照正點(diǎn)或野火的目錄結(jié)構(gòu)來(lái)建工程,在建工程之前還是介紹一下GD32F407的性能。
1、系統(tǒng)及存儲(chǔ)器架構(gòu)
GD32F4xx系列器件是基于ARM® Cortex?-M4處理器的32位通用微控制器。ARM® Cortex?-M4處理器包括三條AHB總線分別稱(chēng)為I-CODE總線、D-Code總線和系統(tǒng)總線。Cortex?-M4處理器的所有存儲(chǔ)訪問(wèn),根據(jù)不同的目的和目標(biāo)存儲(chǔ)空間,都會(huì)在這三條總線上執(zhí)行。存儲(chǔ)器的組織采用了哈佛結(jié)構(gòu),預(yù)先定義的存儲(chǔ)器映射和高達(dá)4 GB的存儲(chǔ)空間,充分保證了系統(tǒng)的靈活性和可擴(kuò)展性。
2、ARM Cortex-M4處理器
Cortex?-M4處理器是一個(gè)具有浮點(diǎn)運(yùn)算功能、低中斷延遲時(shí)間和低成本調(diào)試特性的32位處理器。高集成度和增強(qiáng)的特性使Cortex?-M4處理器適合于那些需要高性能和低功耗微控制器的市場(chǎng)領(lǐng)域。Cortex?-M4處理器基于ARMv7架構(gòu),并且支持一個(gè)強(qiáng)大且可擴(kuò)展的指令集,包括通用數(shù)據(jù)處理I/O控制任務(wù)、增強(qiáng)的數(shù)據(jù)處理位域操作、DSP(數(shù)字信號(hào)處理)和浮點(diǎn)運(yùn)算指令。下面列出由Cortex?-M4提供的一些系統(tǒng)外設(shè):
內(nèi)部總線矩陣,用于實(shí)現(xiàn)I-Code總線、D-Code總線、系統(tǒng)總線、專(zhuān)用總線(PPB)以及調(diào)試專(zhuān)用總線(AHB-AP)的互聯(lián);
嵌套式向量型中斷控制器 (NVIC);
閃存地址重載及斷點(diǎn)單元 (FPB);
數(shù)據(jù)觀測(cè)點(diǎn)及跟蹤單元(DWT);
指令跟蹤宏單元 (ITM);
嵌入式跟蹤宏單元 (ETM);
串行線和JTAG調(diào)試接口 (SWJ-DP);
跟蹤端口接口單元 (TPIU);
內(nèi)存保護(hù)單元 (MPU);
浮點(diǎn)運(yùn)算單元 (FPU)。
個(gè)人感覺(jué)對(duì)于浮點(diǎn)運(yùn)算感覺(jué)還是不太行,我在函數(shù)里面做浮點(diǎn)計(jì)算直接卡機(jī),有待提高啊
Cortex?-M4結(jié)構(gòu)框圖
3、系統(tǒng)架構(gòu)
GD32F4xx系列器件采用32位多層總線結(jié)構(gòu),該結(jié)構(gòu)可使系統(tǒng)中的多個(gè)主機(jī)和從機(jī)之間的并行通信成為可能。多層總線結(jié)構(gòu)包括一個(gè)AHB互聯(lián)矩陣、兩個(gè)AHB總線和兩個(gè)APB總線。
GD32F4xx器件的系統(tǒng)架構(gòu)示意圖
非常重要的一張圖,可以看到每個(gè)設(shè)備掛載在那個(gè)時(shí)鐘下,這樣配置時(shí)鐘就一目了然了
4、片上SRAM存儲(chǔ)器
GD32F4xx系列微控制器可以提供高密度片上FLASH存儲(chǔ)器,按以下分類(lèi)進(jìn)行組織:
高達(dá)3072KB主FLASH存儲(chǔ)器;(非常奢侈豪華啊)
高達(dá)30KB引導(dǎo)裝載程序(boot loader)信息塊存儲(chǔ)器;
高達(dá)512B OTP(一次性可編程)存儲(chǔ)器;
器件配置的選項(xiàng)字節(jié)。
5、引導(dǎo)配置
GD32F4xx系列微控制器提供了三種引導(dǎo)源,可以通過(guò)BOOT0和BOOT1引腳來(lái)進(jìn)行選擇,詳細(xì)說(shuō)明見(jiàn)表1-3. 引導(dǎo)模式。該兩個(gè)引腳的電平狀態(tài)會(huì)在復(fù)位后的第四個(gè)CK_SYS(系統(tǒng)時(shí)鐘)的上升沿進(jìn)行鎖存。用戶(hù)可自行選擇所需要的引導(dǎo)源,通過(guò)設(shè)置上電復(fù)位和系統(tǒng)復(fù)位后的BOOT0和BOOT1的引腳電平。一旦這兩個(gè)引腳電平被采樣,它們可以被釋放并用于其他用途。
引導(dǎo)模式表:
一定要注意這個(gè)上電引導(dǎo)選擇,不然讓你折騰半天都找不到,深坑預(yù)警
上電序列或系統(tǒng)復(fù)位后,ARM®Cortex?-M4處理器先從0x00000000地址獲取棧頂值,再?gòu)?x00000004地址獲得引導(dǎo)代碼的基地址,然后從引導(dǎo)代碼的基地址開(kāi)始執(zhí)行程序。所選引導(dǎo)源對(duì)應(yīng)的存儲(chǔ)空間會(huì)被映射到引導(dǎo)存儲(chǔ)空間,即從0x0000 0000開(kāi)始的地址空間。如果片上SRAM(開(kāi)始于0x20000000的存儲(chǔ)空間)被選為引導(dǎo)源,用戶(hù)必須在應(yīng)用程序初始化代碼中通過(guò)修改NVIC異常向量表和偏移地址將向量表重置到SRAM中。當(dāng)主FLASH存儲(chǔ)器被選擇作為引導(dǎo)源,從0x0800 0000開(kāi)始的存儲(chǔ)空間會(huì)被映射到引導(dǎo)存儲(chǔ)空間。由于主FLASH存儲(chǔ)器的Bank0或Bank1均可映射到地址0x0800 0000(通過(guò)配置SYSCFG_CFG0寄存器的FMC_SWP控制位),所以,微控制器可以使用該方法從Bank0或Bank1中啟動(dòng)。
引導(dǎo)裝載程序在GigaDevice生產(chǎn)器件的過(guò)程中已經(jīng)被編程,用于通過(guò)以下其中一個(gè)通信接口重新編程主FLASH存儲(chǔ)器:USART0(PA9和PA10)、USART2 (PB10和PB11或PC10 and PC11)。
一般我們都是使用主FLASH,畢竟資源優(yōu)勢(shì)擺在那
6、搭建簡(jiǎn)易工程項(xiàng)目
目錄結(jié)構(gòu)如圖: