2019-07-21 06:03发布
georgemxx 发表于 2017-2-7 12:14 您好,我想在linux环境下开发stm32,请问启动代码和中断向量这两个汇编代码怎么写
georgemxx 发表于 2017-2-11 17:02 我这两天弄出来了,主要是makefile,startup.s,link script,vectors.S,这些弄好后就可以像在ide中那样 ...
最多设置5个标签!
你可以参考startup.h里面的向量表部分,把你的向量表定义好,在编译链接的时候吧对应的目标文件映射到芯片flash的起始地址(把向量表的起始地址设置为程序的入口)应该就可以了,linux下我只玩过AVR stm32没搞过 估计套路应该一样吧
应该有专门的工具,以前搞AVR的时候有个叫avrdude的东西,直接把命令写到makefile里面,然后直接下载的,stm32没搞过 不太清楚,好像有个stm32flash的工具 可以用串口下载
joy0_W ;4016 手柄1+选通
;----------------------------------------------------------------------------
tst r0,#1
orr lr,#0x01 ;lr最低位置1防止进入arm状态
bxne lr
ldr r0,=0x40011408 ; 端口输入数据寄存器(GPIOD_IDR)0x40011408 按键端口
ldr r0,[r0] ; PD9 11 12 13 14 15设置成的输入 按下为0
; key 6 1 2 3 4 5
; ((右 <<7)|(左 <<6)|(下 <<5)|(上 <<4)|Start<<3)|Select<<2)|(B <<1)| A )
; 5 3 1 2 4 按键编号
lsr r0,r0,#8 ;>>8 只要高8位
rsb r0,r0,#0xff ; R0 = #0xff-R0 反向减法? 取反 nes需要按下为1
; 76543210
; 54321 6 按键编号
; 11111010 8位数据
and r2,r0,#0x80 ;按键5 在对应位
and r1,r0,#0x20 ;按键3
orr r2,r1,lsl#1 ; <<1
and r1,r0,#0x8 ;按键1
orr r2,r1 ;按键1 在对应位
and r1,r0,#0x10 ;按键2
orr r2,r1,lsr#2 ; >>2
and r1,r0,#0x40 ;按键4
orr r2,r1,lsr#6 ; >>6 r2是键值
orr r2,r2,#0x100000 ;20位表示控制器在位
str r2,joy0serial
; orr lr,#0x01 ;lr最低位置1防止进入arm状态
bx lr
一周热门 更多>