ARM彙編基礎之基於MDK創建純彙編語言的STM32工程

本文基於MDK 5.26軟件,在stm32f103上進行彙編語言的實驗測試;

1 新建工程

雙擊打開MDK5.26,啓動界面如下所示;

在這裏插入圖片描述
點擊菜單欄的Project,如下圖所示;

在這裏插入圖片描述
在彈出的窗口點擊選項New uVision Project,創建新的工程;具體如下圖所示;

在這裏插入圖片描述
在彈出的窗口分別設置;

  1. 設置項目工程的路徑
  2. 設置項目工程的名稱,這裏使用TEST
  3. 點擊保存;

具體如下圖所示;

在這裏插入圖片描述

2 配置環境

2.1 選擇設備

設置工程的目標環境,本文基於STM32F103ZET6,因此在彈出的窗口選擇相應的選項,點擊保存即可;具體如下圖所示;
在這裏插入圖片描述
如果無法找到該窗口,可以在工具欄點擊魔術棒圖標;如下圖所示;

在這裏插入圖片描述

或者在菜單欄點擊project,然後選擇Options for Target即可,具體如下圖所示;

在這裏插入圖片描述

2.2 選擇運行環境

ARMCMSIS已經把開發所需要的軟件組件都封裝好了,因此直接選擇即可;

  1. CMSIS下選擇CORE
  2. DeviceStartup,其中包含了啓動文件;

具體如下圖所示;

在這裏插入圖片描述

2.3 添加源文件

鼠標右鍵單擊Source Group 1,具體如下圖所示;

在這裏插入圖片描述

選擇Add New Item to Group,具體如下圖所示;

在這裏插入圖片描述

添加源文件,因爲創建彙編項目;

  1. 選擇 Asm File (.s) ,創建彙編文件;
  2. 設置源文件的名稱;
  3. 點擊保存;

具體如下圖所示;

在這裏插入圖片描述

最後完成如下圖所示;

在這裏插入圖片描述

3 測試代碼

3.1 源碼

編譯並調試如下代碼;

 AREA MYDATA, DATA
	
 AREA MYCODE, CODE
	ENTRY
	EXPORT __main

__main
	MOV R0, #10
	MOV R1, #11
	MOV R2, #12
	MOV R3, #13
	;LDR R0, =func01

	BL	func01
	;LDR R1, =func02
	BL	func02
	
	BL 	func03
	LDR LR, =func01
	LDR PC, =func03
	B .
		
func01
	MOV R5, #05
	BX LR
	
func02
	MOV R6, #06
	BX LR
	
func03
	MOV R7, #07
	MOV R8, #08	
	BX LR

3.2 仿真器設置

設置硬件仿真器爲J-LINK,具體根據自己的實際情況進行選擇,如下圖所示;

在這裏插入圖片描述

設置仿真器的模式;

  1. 設置爲JTAG接口,另外還有SWD,可以根據自己的實際情況進行選擇;
  2. 設置完成,會看到2處有相應的設備信息;

如下圖所示;

在這裏插入圖片描述

3.3 編譯調試

按照下圖所示,編譯工程並進入調試模式;

在這裏插入圖片描述

最後可以看到,結果符合預期,寄存器R5R6R7R8的值和程序設置一致,具體如下圖所示;

在這裏插入圖片描述

4 總結

編程的學習需要實踐,後面可以配合硬件,把每一條指令過一遍,從而加深理解,基本都是體力活,在這裏記錄一下。如果對您有所幫助,請幫忙點個贊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章