1.新建工程
2.選擇配置
①選擇晶元型號,這裡我的晶元是f103c8t6
②選擇啟動檔案與核心**
3.新增彙編檔案
①右鍵source group新建彙編檔案
②複製下列**
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
②編譯結果顯示
5.**測試
6.hex檔案檢視
第乙個位元組表示本行資料的長度;建立專案過程與上面一樣(不需要新增啟動檔案和核心檔案配置時什麼都不勾選)第二、三位元組表示本行資料的起始位址;
第四位元組 表示資料型別;
彙編檔案**
led0 equ 0x422201b4
rcc_apb2enr equ 0x40021018
gpioc_crh equ 0x40011004 ;預定義
stack_size equ 0x00000400
area stack, noinit, readwrite, align=3
stack_mem space stack_size
__initial_sp
area reset, data, readonly
__vectors dcd __initial_sp ; top of stack
dcd reset_handler ; reset handler
area |.text|, code, readonly ;開始**段
;支援thumb指令,**段按8位元組對齊
thumb
require8
preserve8
entry ;宣告整個程式的入口
reset_handler
bl led_init
mainloop bl led_on
bl delay
bl led_off
bl delay
b mainloop
led_init
push
;將r0,r1,lr入棧
ldr r0,=rcc_apb2enr
orr r0,r0,#0x04
ldr r1,=rcc_apb2enr
str r0,[r1]
ldr r0,=gpioc_crh
bic r0,r0,#0xff0fffff ;配置為模擬輸入模式
ldr r1,=gpioc_crh
str r0,[r1]
ldr r0,=gpioc_crh
orr r0,r0,#0x00300000 ;配置為通用推挽輸出模式,最大速度為50mhz
ldr r1,=gpioc_crh
str r0,[r1]
mov r0,#1 ;將立即數1送入r0.
ldr r1,=led0 ;將pc13 bit-bond的位址送入r1.
str r0,[r1]
;將r0的值,也就是1,送給r1中的值所指向的位址中
pop
;將r0,r1,pc出棧
led_on
push
mov r0,#0
ldr r1,=led0
str r0,[r1]
pop
led_off
push
mov r0,#1
ldr r1,=led0
str r0,[r1]
pop
delay
push
movs r0,#0
movs r1,#0
movs r2,#0
delayloop0
adds r0,r0,#1 ;加法,r0=r0+1
cmp r0,#330 ;計算r0-330的值,r0<330,則c=0;否則c=1。
bcc delayloop0 ;若是c=0,則跳到delayloop0,若是c=1,則不跳轉
movs r0,#0
adds r1,r1,#1
cmp r1,#330
bcc delayloop0
movs r0,#0
movs r1,#0
adds r2,r2,#1
cmp r2,#15
bcc delayloop0
pop
nopend
執行結果
參考文件
arm彙編基礎之基於mdk建立純彙編stm32專案
彙編專案實現點亮led燈
STM32彙編程式設計
1.實驗環境 1.野火stm32指南者 stm32f103vet6 2.keil5 2.環境搭建新建工程 新增原始檔 s 連線開發板,開始debug 生成的hex檔案 原始碼led0 equ 0x40010c00 rcc apb2enr equ 0x40021018 gpioa crh equ 0x...
STM32空白專案的搭建和燒錄
環境的重要性 安裝環境是開發者為開發產品的第一步,其過程是繁瑣枯燥的。長時間地專注於開發專案以及快速上手帶來的快樂會使我們忽視學習配置開發環境的重要性,但其實理解並記憶配置自己的環境會給我們的開發來帶更多的便利和意想不到的創造力。為了便於理解記憶,以下我以我建立的工程的目錄檔案樹做出解釋。上圖中,l...
STM32彙編LED工程
要移植作業系統,彙編是道不得不跨過去的坎。所以承接上篇的思路,我準備用彙編寫乙個簡單的閃爍led燈的程式。以此練習彙編,為作業系統做準備。第一步,還是和上篇一樣,建立乙個空的資料夾。第二步,因為是要用彙編來寫程式,所以不需要啟動 這裡選擇否。第三步,建立乙個.s檔案,並把檔案新增到工程中。第四步,在...