0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F103移植到AT32F403A之MDK(一)

創(chuàng)易棧 ? 來(lái)源:創(chuàng)易棧 ? 2023-01-14 11:25 ? 次閱讀

STM32F103移植到AT32F403A詳細(xì)教程

在當(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è))等文件

51643476-934f-11ed-bfe3-dac502259ad0.png

517b7c80-934f-11ed-bfe3-dac502259ad0.png

51bee236-934f-11ed-bfe3-dac502259ad0.png

廠家為幫助用戶(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)。

51efe3ae-934f-11ed-bfe3-dac502259ad0.png

具體移植工程如下:

1. 安裝AT32 Pack,本文是MDK篇,所以安裝MDK的Pack

5222a9b0-934f-11ed-bfe3-dac502259ad0.png

2. 打開(kāi)STM32的MDK工程,編譯原工程,確認(rèn)原工程沒(méi)問(wèn)題

523de1bc-934f-11ed-bfe3-dac502259ad0.png

3. 更改芯片型號(hào)為AT32F403ACGT7,并暫時(shí)將FPU功能關(guān)閉,按實(shí)際芯片的flash和RAM修改相關(guān)參數(shù)(部分工程的相關(guān)參數(shù)需要在分散加載文件內(nèi)修改)

525492e0-934f-11ed-bfe3-dac502259ad0.png

527d8fc4-934f-11ed-bfe3-dac502259ad0.png

4. 再次編譯文件,并接上仿真器,配置好仿真器設(shè)置(我使用的是ST-LINK,可根據(jù)自己情況修改不同的仿真器),進(jìn)入仿真模式,如果進(jìn)入正常,說(shuō)明我們芯片切換的第一部分完成了。

52b39092-934f-11ed-bfe3-dac502259ad0.png

52ca4ae4-934f-11ed-bfe3-dac502259ad0.png

52e02512-934f-11ed-bfe3-dac502259ad0.png

530123f2-934f-11ed-bfe3-dac502259ad0.png

530123f2-934f-11ed-bfe3-dac502259ad0.png

5332c2f4-934f-11ed-bfe3-dac502259ad0.png

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)核文件路徑下

53a35c44-934f-11ed-bfe3-dac502259ad0.png

53cc4654-934f-11ed-bfe3-dac502259ad0.png

53e523b8-934f-11ed-bfe3-dac502259ad0.png

540236ec-934f-11ed-bfe3-dac502259ad0.png

將STM32工程內(nèi),core_cm3.c去掉

5505e55c-934f-11ed-bfe3-dac502259ad0.png

將stm32f10x.h內(nèi)的#include "core_cm3.h"

改為 #include "core_cm4.h",

并添加宏定義 #define __FPU_PRESENT 1U

552733a6-934f-11ed-bfe3-dac502259ad0.png

5553fb02-934f-11ed-bfe3-dac502259ad0.png

556f72f6-934f-11ed-bfe3-dac502259ad0.png

在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

556f72f6-934f-11ed-bfe3-dac502259ad0.png

在魔術(shù)棒設(shè)置內(nèi)開(kāi)啟FPU

55d56106-934f-11ed-bfe3-dac502259ad0.png

這里有個(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)啟了。

55fbd0ca-934f-11ed-bfe3-dac502259ad0.png

5622b92e-934f-11ed-bfe3-dac502259ad0.png

564ed16c-934f-11ed-bfe3-dac502259ad0.png

由于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系列芯片的工程師有幫助。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 寄存器
    +關(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
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    AT32F403A如何使用DMA彈性映射?

    ,固定映射的存在,主要的目的是為了兼容STM32F103,彈性映射則提供了更為靈活的通道與數(shù)據(jù)流的選擇下圖是AT32F403A的DMA 1的請(qǐng)求表,這種方式和我們之前熟悉的STM32F103的DMA
    發(fā)表于 11-25 19:18

    為什么項(xiàng)目代碼無(wú)法移植AT32F403A芯片上呢

    AT32F403A這款芯片據(jù)說(shuō)和STM32樣的,最近在將項(xiàng)目代碼直接移植這款芯片是出現(xiàn)
    發(fā)表于 01-21 12:43

    如何使用MDK5.0建立STM32F103工程

    如何使用MDK5.0建立STM32F103工程
    發(fā)表于 07-20 08:55 ?0次下載

    盤(pán)古STM32F103開(kāi)發(fā)板移植uCGUI教程

    盤(pán)古STM32F103開(kāi)發(fā)板移植uCGUI教程
    發(fā)表于 09-29 09:21 ?21次下載
    盤(pán)古<b class='flag-5'>STM32F103</b>開(kāi)發(fā)板<b class='flag-5'>移植</b>uCGUI教程

    STM32F103使用總結(jié)

    STM32F103使用總結(jié)
    發(fā)表于 10-24 10:22 ?152次下載

    stm32f103移植

    stm32f103移植
    發(fā)表于 10-27 09:03 ?43次下載
    <b class='flag-5'>stm32f103</b><b class='flag-5'>移植</b>

    stm32f030和stm32f103功能差異

    stm32f030和stm32f103功能差異主要表現(xiàn)在哪?
    的頭像 發(fā)表于 07-22 09:35 ?2.2w次閱讀

    TencentOS tiny 移植STM32F103全教程(基于標(biāo)準(zhǔn)庫(kù))

    TencentOS tiny 移植STM32F103全教程(基于標(biāo)準(zhǔn)庫(kù))
    發(fā)表于 11-23 18:06 ?16次下載
    TencentOS tiny <b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>STM32F103</b>全教程(基于標(biāo)準(zhǔn)庫(kù))

    在GD32F103移植STM32F103代碼

    在GD32F103移植STM32F103代碼使用相同F(xiàn)LASH和管腳數(shù)量相同的芯片,例如GDF103C8T6移植
    發(fā)表于 12-02 15:21 ?23次下載
    在GD32<b class='flag-5'>F103</b><b class='flag-5'>移植</b><b class='flag-5'>STM32F103</b>代碼

    GD32F103STM32F103的區(qū)別 2021.6.2

    GD32F103STM32F103區(qū)別介紹關(guān)鍵詞Key words:GD32F103、STM32F103摘要Abstract:本文主要是GD32F
    發(fā)表于 12-08 11:06 ?83次下載
    GD32<b class='flag-5'>F103</b>與<b class='flag-5'>STM32F103</b>的區(qū)別 2021.6.2

    華為L(zhǎng)iteOS系統(tǒng)移植STM32F103開(kāi)發(fā)板(基于MDK環(huán)境)

    華為L(zhǎng)iteOS系統(tǒng)移植STM32F103開(kāi)發(fā)板(基于MDK環(huán)境)
    發(fā)表于 12-08 14:21 ?48次下載
    華為L(zhǎng)iteOS系統(tǒng)<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>STM32F103</b>開(kāi)發(fā)板(基于<b class='flag-5'>MDK</b>環(huán)境)

    RT-Thread系統(tǒng)移植STM32f103

    RT-Thread系統(tǒng)移植STM32f103
    發(fā)表于 12-09 12:51 ?26次下載
    RT-Thread系統(tǒng)<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>STM32f103</b>

    STM32F103移植AT32F403AMDK(二)

    不是,由于技術(shù)和工藝問(wèn)題,前些年的MCU還無(wú)法完全擺脫外部晶振,而近幾年的MCU才算真正能夠擺脫外部晶振,STM32F103系列和AT32F403A系列正好代表了這兩個(gè)階段的產(chǎn)品。
    的頭像 發(fā)表于 01-29 15:09 ?1790次閱讀

    用于stm32f103 A/D信號(hào)采集的處理

    用于stm32f103 A/D信號(hào)采集的處理
    發(fā)表于 08-01 18:13 ?5次下載

    AT32F403A系列 數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《AT32F403A系列 數(shù)據(jù)手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 01-22 10:06 ?7次下載