在當(dāng)下這個(gè)芯片緊張的時(shí)期,市面上用的最多的ST芯片缺貨嚴(yán)重,價(jià)格漲的離譜,只能找替代芯片滿(mǎn)足產(chǎn)品的生產(chǎn)需求,好在國(guó)內(nèi)出現(xiàn)的一批替代ST芯片的廠商,比如我將要使用的AT32系列芯片的廠商雅特力,能夠較好的兼容ST的芯片。
移植背景是由于我之前項(xiàng)目上使用的是STM32F103C8T6,但有新需求需要增加新功能,而STM32F103C8T6的RAM在之前使用中被用的所剩無(wú)幾,無(wú)法滿(mǎn)足新需求,需要找新的芯片進(jìn)行替代,正好其他項(xiàng)目上有用AT32F403ACGT7,正好PIN對(duì)PIN是兼容的,盡管flash和RAM都大很多,但此項(xiàng)目用的不多也就沒(méi)必要再買(mǎi)其他型號(hào)的了,芯片確定了,剩下就是代碼移植工作了。
理論上移植過(guò)程適用于全部AT32F403A系列型號(hào)
移植準(zhǔn)備工作:
1. 一份STM32F103C8T6工程源碼(標(biāo)準(zhǔn)庫(kù))
2.在雅特力官網(wǎng)的AT32F403A系列目錄下下載Datasheet;Reference Manual;BSP;Pack;Tool;Application Note (應(yīng)用手冊(cè))等文件
廠家為幫助用戶(hù)能夠很好的由STM32移植到AT32,提供了Application Note (應(yīng)用手冊(cè)),在移植前還-要將廠商提供的文檔《AT32F403A_入門(mén)指南》和MG0007這兩個(gè)文件好好看看,里面介紹的比較全面,本篇文章的重點(diǎn)是介紹每一步移植過(guò)程的細(xì)節(jié)和遇到的問(wèn)題,在《AT32F403A_入門(mén)指南》里介紹了BSP 與 PACK 的選擇,但本文實(shí)際對(duì)應(yīng)關(guān)系不在官方文檔的描述內(nèi)。
具體移植工程如下:
1. 安裝AT32 Pack,本文是MDK篇,所以安裝MDK的Pack
2. 打開(kāi)STM32的MDK工程,編譯原工程,確認(rèn)原工程沒(méi)問(wèn)題
3. 更改芯片型號(hào)為AT32F403ACGT7,并暫時(shí)將FPU功能關(guān)閉,按實(shí)際芯片的flash和RAM修改相關(guān)參數(shù)(部分工程的相關(guān)參數(shù)需要在分散加載文件內(nèi)修改)
4. 再次編譯文件,并接上仿真器,配置好仿真器設(shè)置(我使用的是ST-LINK,可根據(jù)自己情況修改不同的仿真器),進(jìn)入仿真模式,如果進(jìn)入正常,說(shuō)明我們芯片切換的第一部分完成了。
5.接線來(lái)我們?yōu)榱梭w現(xiàn)出AT32系列M4內(nèi)核的優(yōu)勢(shì),我們要將FPU功能打開(kāi),詳細(xì)過(guò)程如下:
將AT32BSP中對(duì)應(yīng)芯片型號(hào)的內(nèi)核支持文件拷貝到要原來(lái)STM32工程的內(nèi)核文件路徑下
將STM32工程內(nèi),core_cm3.c去掉
將stm32f10x.h內(nèi)的#include "core_cm3.h"
改為 #include "core_cm4.h",
并添加宏定義 #define __FPU_PRESENT 1U
在system_stm32f10x.c的void SystemInit (void)函數(shù)內(nèi)添加
#if defined (__FPU_USED) && (__FPU_USED == 1U)
SCB->CPACR |= ((3U << 10U * 2U) |? ? ? ? ?
* set CP10 Full Access */
(3U << 11U * 2U)? );??????
/* set CP11 Full Access */
#endif
在魔術(shù)棒設(shè)置內(nèi)開(kāi)啟FPU
這里有個(gè)需要注意的地方
上述操作完成后,實(shí)際上FPU已經(jīng)開(kāi)啟,但在MDK編輯器內(nèi)顯示的相關(guān)宏定義依然是灰色的,這是編輯器的問(wèn)題,可以進(jìn)到仿真環(huán)境下,看先關(guān)代碼是否被執(zhí)行來(lái)確認(rèn)FPU是否真的開(kāi)啟了。
由于AT32F403A是寄存器級(jí)兼容STM32F103系列的,至此,在使用外部晶振情況下,將STM32F103工程遷移到AT32F403A系列的初始過(guò)程就介紹完了,并將M4內(nèi)核的FPU功能開(kāi)啟了,實(shí)現(xiàn)地性能的提高。后續(xù)我還會(huì)針對(duì)AT32的其他提升特性和注意事項(xiàng)進(jìn)行介紹,希望本篇文章對(duì)有遷移到AT32F403A系列芯片的工程師有幫助。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5359瀏覽量
120846 -
STM32
+關(guān)注
關(guān)注
2270文章
10918瀏覽量
356847 -
移植
+關(guān)注
關(guān)注
1文章
382瀏覽量
28155 -
STM32F103
+關(guān)注
關(guān)注
33文章
478瀏覽量
63742 -
MDK
+關(guān)注
關(guān)注
4文章
209瀏覽量
32107
原文標(biāo)題:STM32F103移植到AT32F403A之MDK(一)
文章出處:【微信號(hào):創(chuàng)易棧,微信公眾號(hào):創(chuàng)易棧】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論