|
发表于 2008-12-16 10:34:18
|
显示全部楼层
参照书中的代码,写了个流水灯的例子,没有|reset|入口,mdk 3.20编译器不干。用c库,觉得比看寄存器还头疼。
程序没有使用延时,得单步调试。
有心攻克thumb-2汇编的朋友,我们不妨把现有的c程序,用汇编改写一遍,再弄个图形化配置界面。要不要参考的信息量,可是有点大。
哦,对了,用的开发板是STM32V100评估板。我的联系方式: fanguang2003@163.com
STACK_TOP EQU 0x00000400
AREA |reset|, CODE
DCD STACK_TOP
DCD Start
ENTRY
Start
ldr r2, =0x40021018 ; 加载rccapb2enr(外设时钟使能寄存器)地址
mov r3,#0x10
str r3, [r2] ;使能portc的时钟
ldr r0, =0x40011000 ;加载GPIOxCRL(端口配置低寄存器)地址
ldr r1, =0x22000000
str r1, [r0] ;将portc的端口6和7配置为2M推挽输出
add r0,#4 ;计算GPIOxCRL(端口配置高寄存器)地址 ()
ldr r1, =0x00000022
str r1, [r0] ;将portc的端口8和9配置为2M推挽输出
add r0,#0x8 ;计算GPIOxODR(端口输出数据寄存器)地址
loop2
mov r2,#0x40 ;用port6的输出点亮对应的LED6
str r2, [r0]
lsl r2, #1
str r2, [r0] ;点亮LED7
lsl r2, #1
str r2, [r0] ;点亮LED8
lsl r2, #1
str r2, [r0] ;点亮LED9
b loop2
end |
|