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