STM32彙編程式設計

2021-10-13 15:19:03 字數 2724 閱讀 3508

1.實驗環境

1.野火stm32指南者(stm32f103vet6)

2.keil5

2.環境搭建新建工程

新增原始檔(.s)

連線開發板,開始debug

生成的hex檔案

原始碼

led0 equ 0x40010c00

rcc_apb2enr equ 0x40021018

gpioa_crh equ 0x40010804

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

require8

preserve8

entry

reset_handler

bl led_init

mainloop bl led_on

bl delay

bl led_off

bl delay

b mainloop

led_init

push

ldr r0,=rcc_apb2enr

orr r0,r0,#0x04

ldr r1,=rcc_apb2enr

str r0,[r1]

ldr r0,=gpioa_crh

bic r0,r0,#0x0f

ldr r1,=gpioa_crh

str r0,[r1]

ldr r0,=gpioa_crh

orr r0,r0,#0x03

ldr r1,=gpioa_crh

str r0,[r1]

mov r0,#1

ldr r1,=led0

str r0,[r1]

pop

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

cmp r0,#330

bcc delayloop0

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

; nop

end

STM32彙編LED工程

要移植作業系統,彙編是道不得不跨過去的坎。所以承接上篇的思路,我準備用彙編寫乙個簡單的閃爍led燈的程式。以此練習彙編,為作業系統做準備。第一步,還是和上篇一樣,建立乙個空的資料夾。第二步,因為是要用彙編來寫程式,所以不需要啟動 這裡選擇否。第三步,建立乙個.s檔案,並把檔案新增到工程中。第四步,在...

stm32程式設計學習

今天學習了stm 32程式設計引用按鍵 按鍵 如下 ifndef key h define key h include sys.h define key0 gpio readinputdatabit gpioe,gpio pin 4 讀取按鍵0 define key1 gpio readinputd...

幾個簡單的stm32匯程式設計序

例1,用組合語言完成1 10的加法 stack top equ 0x00002000 sp初始值,常數 area reset,code dcd stack top 棧頂 msp的 dcd start 復位向量 entry 指示程式從這裡開始執行start 初始化暫存器 mov r0,10 載入迴圈變...