久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1715|回復: 0
打印 上一主題 下一主題
收起左側

基于stm32官方3.5庫文件所建立工程并做仿真

[復制鏈接]
跳轉到指定樓層
樓主
一. 需要準備的資料及環境:

    1.STM32固件庫,我們使用的固件庫為STM32F10x_StdPeriph_Lib_V3.5.0,可在st官方下載

    2.MDK開發環境(我們使用的版本為MDK4.7A)。

二. 新建工程
    1.打開MDK ,然后選擇菜單 Project->Close Project,關掉已存在的工程!這樣整個MDK就是一個空的了,接下來我們將建立工程。
    2.在建立工程之前,建議用戶在電腦的某個目錄下面建立一個文件夾,后面所建立的工程都可以放在這個文件夾下面,這里我們建立一個文件夾為: STM32_IAP.在該文件夾下再創建CORE、OBJ、STM32F10x_FWLib、USER等文件夾,USER用來保存工程,CORE用來存放核心文件和啟動,OBJ是用來存放編譯過程文件以及 hex 文件,STM32F10x_FWLib 文件夾用來存放ST 官方提供的庫函數源碼文 官方提供的庫函數源碼文 官方提供的庫函數源碼文 官方提供的庫函數源碼件。

    3.點擊Keil的菜單:Project –>New Uvision Project ,然后將目錄定位到剛才建立的文件夾STM32_IAP之下,把工程文件保存到USER文件夾下面。工程命名為IAP-Bootloader ,點擊保存

   4.接下來會出現一個選擇Device的界面,我們選擇STM32F103C8(如果是其他芯片,請選擇對應的型號)。

5.彈出對話框“ Copy STM32 Startup Code to project  ….”,詢問是否添加啟動代碼到工程中,選擇“否”,”,因為使用的 ST 固件庫文件已經包含了啟動文件。

6.下面我們要將官方的固件庫包里的源碼文件復制到我們的工程目錄文件夾下面。

    打開官方固件庫包,定位到我們之前準備好的固件庫包的目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\STM32F10x_StdPeriph_Driver下面,將目錄下面的src,inc文件夾copy到我們剛才建立的STM32F10x_FWLib文件夾下面。src存放的是固件庫的.c文件,inc存放的是對應的.h文件。

    7.將固件庫包里面相關的啟動文件復制到我們的工程目錄CORE之下。     打開官方固件庫包,定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport下面,將文件core_cm3.c和文件core_cm3.h 復制到CORE下面去。然后定位到目錄STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下面,將里面所有的文件同樣復制到CORE下面

    8.定位到目錄:STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x,將里面的三個文件stm32f10x.h,system_stm32f10x.c,system_stm32f10x.h,復制到我們的USER目錄之下。然后將STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template下面的4個文件main.c,stm32f10x_conf.h,stm32f10x_it.c,stm32f10x_it.h復制到USER目錄下面。

    9.前面的步驟,我們將需要的固件庫相關文件復制到工程目錄下面,下面我們將這些文件加入我們的工程中去。右鍵點擊Target1,選擇Manage Components

    10.Project Targets一欄,我們將Target名字修改為IAP-Bootloader,然后在Groups一欄刪掉一個,建立三個Groups:USER,CORE,FWLIB.點擊OK.可以看到我們的Target名字以及Groups情況。

    11.往Group里面添加我們需要的文件。我們按照步驟10的方法, 右鍵點擊點擊IAP-Bootloader,選擇選擇Manage Components.然后選擇需要添加文件的Group,這里第一步我們選擇FWLIB,然后點擊右邊的Add Files,定位到我們剛才建立的目錄STM32F10x_FWLib/src下面,選擇需要的文件,然后點擊Add,然后Close.可以看到Files列表下面包含我們添加的文件。

    12.用同樣的方法,將Groups定位到CORE和USER下面,添加需要的文件。這里我們的CORE下面需要添加的文件為core_cm3.c,startup_stm32f10x_md.s,USER目錄下面需要添加的文件為main.c,stm32f10x_it.c,system_stm32f10x.c.這樣我們需要添加的文件已經添加到我們的工程中去了,最后點擊OK,回到工程主界面。

13.點擊魔術棒,出來一個菜單,然后點擊 c/c++選項.然后點擊Include Paths右邊的按鈕。彈出一個添加path的對話框,然后我們將圖上面的3個目錄添加進去。記住,keil只會在一級目錄查找,所以如果你的目錄下面還有子目錄,記得path一定要定位到最后一級子目錄。然后點擊OK.

14.配置一個全局的宏定義變量。按照步驟13,定位到c/c++界面,然后copy “STM32F10X_MD,USE_STDPERIPH_DRIVER”到 Define里面。這里解釋一下,如果你用的是大容量那么STM32F10X_MD修改為STM32F10X_HD,小容量修改為STM32F10X_LD。

15.配置Output選項。定位到Output界面,點擊Select Folder For Obiects...將目標文件選擇到OBJ文件夾下。然后勾上下三個選項。其中Create HEX file是編譯生成hex文件,Browser Information是可以查看變量和函數定義

16..配置Debug選項。定位到Debug界面,選擇ST-Link Debugger(按實際用的工具選擇),勾選Use,點擊右邊的Setting選項,在彈出的Cortex-MTarget Driver Setup窗口中選擇SW(按實際選擇),選擇確定。

17.配置Utilities選項。(1)定位到Utilities界面;(2)選擇ST-Link Debugger(按實際用的工具選擇);(3)點擊右邊的Setting選項;(4)在彈出的Cortex-MTarget Driver Setup窗口按下圖紅框4選擇;(5)點擊下方ADD;(6)在彈出的Add Flash Programming Algorithm菜單中選擇STM32F10X Med-density Flash(按實際對應芯片選擇);(7)選擇完后點擊Add;(8)選擇確定,回到上一菜單后再次選擇確定,回到主界面。

18.編寫簡單main函數,點擊進行編譯,編譯完成后在OBJ文件夾中生成.hex文件

19.用ST Link將MCU與PC連接好后,點擊將.hex文件下載到MCU中。

仿真設置


在使用模擬器調試時,出現以下錯誤提示,導致不能連續運行:

*** Error 65: Access violation at 0x40000004 : No 'write' permission

解決措施
將以下內容保存為debug_Cortex-M_use_simulator.ini腳本文件,并根據CPU的外設地址更改map指令后面的參數。

配置選擇為初始化文件:

/* Usage: Project ==> Options for Target ==> Debug:
/====================================================================\
|  (●) Use Simulator                                                 |
|                                                                    |
+--------------------------------------------------------------------+
|                                                                    |
|  Initialization File:                                              |
|  +------------------------------------+    +-----+    +---------+  |
|  | .\debug_Cortex-M_use_simulator.ini |    | ... |    | Edit... |  |
|  +------------------------------------+    +-----+    +---------+  |
|                                                                    |
|                                                                    |
|                                                                    |
|                                                                    |
\====================================================================/
*/


// S32K1xx Series Reference Manual, Chapter 3: Memory Map
map 0x40000000,0x40080000 read write        // Peripheral
map 0x400FF000,0x40100000 read write        // GPIO controller
map 0x50000000,0x50070000 read write
map 0xA0000000,0xA0080000 read write

STM32_IAP - 副本.7z

643.89 KB, 下載次數: 7, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产高清免费 | 毛片网站免费观看 | 在线观看视频一区 | 91天堂| 成人黄色av网址 | 国产欧美一区二区精品久导航 | 欧美精品一区二区三区在线播放 | 天天综合永久 | 免费国产网站 | 中文字幕在线观看第一页 | 国产在线一区二 | 久久精品99国产精品日本 | 国产欧美精品区一区二区三区 | 欧美国产91 | 国产一区视频在线 | 91资源在线播放 | 成人激情免费视频 | 韩日一区二区三区 | 最新国产精品精品视频 | 狠狠插狠狠操 | 成人午夜免费福利视频 | 夜夜爽99久久国产综合精品女不卡 | 日韩精品视频一区二区三区 | 欧美国产日韩精品 | 午夜影院在线观看 | 久草电影网 | 91文字幕巨乱亚洲香蕉 | av资源在线看 | 日韩专区中文字幕 | 999久久| 91精品国产91久久久久久最新 | 国产乱码高清区二区三区在线 | 色婷婷久久久久swag精品 | 免费中文字幕日韩欧美 | 亚洲在线| 免费在线一区二区三区 | 青青久久 | 欧美在线国产精品 | 久久久久久国产 | 亚洲视频区 | 欧美a级成人淫片免费看 |