建立MDK4 專案

2021-06-22 02:09:39 字數 1722 閱讀 1921

mdk上可以為多種處理器開發,除錯軟體。因此在生成專案的時候,需要知道目標處理器,除錯工具。

目前將要開發的控制器使用的是 st32l1xx,stlink開發板。

可以直接在晶元search 框中輸入目標控制器的型號,然後選擇乙個比較接近的控制器。

這個時候,如果是新專案,那麼會把目標startup.s檔案複製到專案目錄下。

在debug目錄下選擇除錯工具。如果是 st-link,還需要選擇是jtag還是sw。st的develop板使用的是sw 方式。

新增main函式

這個時候編譯時不能通過的。在編譯後會提示說找不到_main。

.\testl.axf: error: l6218e: undefined symbol systeminit (referred from startup_stm32l1xx_md.o).

新增 systeminit

在網上搜尋了一通,發現該函式是乙個需要使用者實現的函式,用於設定乙個基本的暫存器。可以從例子中把這個函式複製過來直接使用。

**如下:

void systeminit (void)

新增巨集定義 use_stdperiph_driver stm32l1xx_mdp

加入這個函式後,又出現如下錯誤**:

對比了例子**後,在c/c++ define 中加入 如下巨集定義 use_stdperiph_driver stm32l1xx_mdp

新增stm32l1xx_conf.h 以及驅動標頭檔案

然後又出現了錯誤**:

c:\keil\arm\inc\st\stm32l1xx\stm32l1xx.h(6638): error:  #5: cannot open source input file "stm32l1xx_conf.h": no such file or directory

在 stm32l***.h中,當需要使用外設的時候,需要這個標頭檔案

#ifdef use_stdperiph_driver

#include "stm32l1xx_conf.h"

#endif

可能keil認為各個處理器的外設的暫存器位址的定義是不同的,因此不在內部定義這個標頭檔案了,而改為使用者自己定義這個標頭檔案。在這個標頭檔案中需包含各個外設的暫存器位址定義。在從例子中加入了這個標頭檔案,並加入了外設定義目錄後再次編譯。

要注意的是光把這個檔案複製到專案目錄下還不行,還得把這個檔案新增到專案中去才是有效的。

除了這個檔案外,還要把例子中的stm32l1xx_stdperiph_driver複製到專案目錄,並新增到專案中才行。

新增 vect_tab_offset

繼續編譯,又出現如下錯誤:

main.c(36): error:  #20: identifier "vect_tab_offset" is undefined

scb->vtor = flash_base | vect_tab_offset; /* vector table relocation in internal flash. */

從例子中找到了這個巨集定義,新增到我的**中

#define vect_tab_offset  0x0 /*!< vector table base offset field.

this value must be a multiple of 0x200. */

終於完成了乙個main函式的編譯。

新建立的專案是無法燒寫的,把專案設定檔案按照例子抄一遍就可以了。我也不記得哪個引數是關鍵引數,總之抄過去就對了。

建立ionic4專案

一 搭建ionic環境,建立ionic專案 1 必須安裝nodejs 最新穩定版本 2 npm i g cordova ionic cnpm i g cordova ionic node v 12.18.2 npm v 6.14.5 cordova v 8.1.1 ionic v 4.10.2 安裝...

第4周專案4

煙台大學計算機學院 檔名稱 xm.cpp 完成日期 2017年9月24日 問題描述 一群猴子,編號是1,2,3 m,這群猴子 m個 按照1 m的順序圍坐一圈。從第1只開始數,每數到第n個,該猴子就要離開此圈,這樣依次下來,直到圈中只剩下最後乙隻猴子,則該猴子為大王。輸入m和n,輸出為大王的猴子是幾號...

第4周專案1 建立單鏈表

完成日期 2015年9月21日 版 本 號 v1.0 問題描述 定義單鏈表儲存結構,用頭插法和尾插法建立單鏈表,並顯示建立好以後的結果。輸入描述 無 程式輸出 輸出頭插法尾插發鍊錶 include include typedef int elemtype typedef struct lnode 定...