.thumb
.syntax unified
.section .data
.equ STACKINIT, 0x20000300
.equ zhengxianbiaozhizhen, 0x20000500
zhengxianbiao: .int 0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9c,0x9d,0x9e,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xda,0xdb,0xdc,0xdd,0xde,0xde,0xdf,0xe0,0xe1,0xe2,0xe2,0xe3,0xe4,0xe5,0xe6,0xe6,0xe7,0xe8,0xe9,0xe9,0xea,0xeb,0xec,0xec,0xed,0xee,0xef,0xef,0xf0,0xf1,0xf2,0xf2,0xf3,0xf4,0xf5,0xf5,0xf6,0xf7,0xf7,0xf8,0xf9,0xf9,0xfa,0xfb,0xfb,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0x100,0x101,0x101,0x102,0x103,0x103,0x104,0x105,0x105,0x106,0x106,0x107,0x108,0x108,0x109,0x109,0x10a,0x10b,0x10b,0x10c,0x10c,0x10d,0x10d,0x10e,0x10f,0x10f,0x110,0x110,0x111,0x111,0x112,0x112,0x113,0x113,0x114,0x114,0x115,0x115,0x116,0x116,0x117,0x117,0x118,0x118,0x119,0x119,0x119,0x11a,0x11a,0x11b,0x11b,0x11c,0x11c,0x11c,0x11d,0x11d,0x11e,0x11e,0x11e,0x11f,0x11f,0x120,0x120,0x120,0x121,0x121,0x121,0x122,0x122,0x122,0x123,0x123,0x123,0x124,0x124,0x124,0x124,0x125,0x125,0x125,0x126,0x126,0x126,0x126,0x127,0x127,0x127,0x127,0x128,0x128,0x128,0x128,0x128,0x129,0x129,0x129,0x129,0x129,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12b,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x12a,0x129,0x129,0x129,0x129,0x129,0x128,0x128,0x128,0x128,0x128,0x127,0x127,0x127,0x127,0x126,0x126,0x126,0x126,0x125,0x125,0x125,0x125,0x124,0x124,0x124,0x123,0x123,0x123,0x123,0x122,0x122,0x122,0x121,0x121,0x120,0x120,0x120,0x11f,0x11f,0x11f,0x11e,0x11e,0x11d,0x11d,0x11d,0x11c,0x11c,0x11b,0x11b,0x11b,0x11a,0x11a,0x119,0x119,0x118,0x118,0x117,0x117,0x116,0x116,0x116,0x115,0x115,0x114,0x114,0x113,0x113,0x112,0x112,0x111,0x110,0x110,0x10f,0x10f,0x10e,0x10e,0x10d,0x10d,0x10c,0x10b,0x10b,0x10a,0x10a,0x109,0x109,0x108,0x107,0x107,0x106,0x106,0x105,0x104,0x104,0x103,0x102,0x102,0x101,0x100,0x100,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xf9,0xf8,0xf8,0xf7,0xf6,0xf6,0xf5,0xf4,0xf3,0xf3,0xf2,0xf1,0xf1,0xf0,0xef,0xee,0xee,0xed,0xec,0xeb,0xeb,0xea,0xe9,0xe8,0xe7,0xe7,0xe6,0xe5,0xe4,0xe4,0xe3,0xe2,0xe1,0xe0,0xe0,0xdf,0xde,0xdd,0xdc,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd7,0xd6,0xd5,0xd4,0xd3,0xd2,0xd2,0xd1,0xd0,0xcf,0xce,0xcd,0xcc,0xcc,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf,0xbe,0xbe,0xbd,0xbc,0xbb,0xba,0xb9,0xb8,0xb7,0xb6,0xb6,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xac,0xac,0xab,0xaa,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x96,0x95,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x60,0x5f,0x5e,0x5d,0x5c,0x5b,0x5a,0x5a,0x59,0x58,0x57,0x56,0x55,0x55,0x54,0x53,0x52,0x51,0x50,0x50,0x4f,0x4e,0x4d,0x4c,0x4c,0x4b,0x4a,0x49,0x48,0x48,0x47,0x46,0x45,0x45,0x44,0x43,0x42,0x41,0x41,0x40,0x3f,0x3e,0x3e,0x3d,0x3c,0x3b,0x3b,0x3a,0x39,0x39,0x38,0x37,0x36,0x36,0x35,0x34,0x34,0x33,0x32,0x32,0x31,0x30,0x2f,0x2f,0x2e,0x2d,0x2d,0x2c,0x2c,0x2b,0x2a,0x2a,0x29,0x28,0x28,0x27,0x26,0x26,0x25,0x25,0x24,0x23,0x23,0x22,0x22,0x21,0x21,0x20,0x1f,0x1f,0x1e,0x1e,0x1d,0x1d,0x1c,0x1c,0x1b,0x1a,0x1a,0x19,0x19,0x18,0x18,0x17,0x17,0x16,0x16,0x16,0x15,0x15,0x14,0x14,0x13,0x13,0x12,0x12,0x11,0x11,0x11,0x10,0x10,0xf,0xf,0xf,0xe,0xe,0xd,0xd,0xd,0xc,0xc,0xc,0xb,0xb,0xa,0xa,0xa,0x9,0x9,0x9,0x9,0x8,0x8,0x8,0x7,0x7,0x7,0x7,0x6,0x6,0x6,0x6,0x5,0x5,0x5,0x5,0x4,0x4,0x4,0x4,0x4,0x3,0x3,0x3,0x3,0x3,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x2,0x2,0x2,0x2,0x2,0x2,0x2,0x3,0x3,0x3,0x3,0x3,0x4,0x4,0x4,0x4,0x4,0x5,0x5,0x5,0x5,0x6,0x6,0x6,0x6,0x7,0x7,0x7,0x8,0x8,0x8,0x8,0x9,0x9,0x9,0xa,0xa,0xa,0xb,0xb,0xb,0xc,0xc,0xc,0xd,0xd,0xe,0xe,0xe,0xf,0xf,0x10,0x10,0x10,0x11,0x11,0x12,0x12,0x13,0x13,0x13,0x14,0x14,0x15,0x15,0x16,0x16,0x17,0x17,0x18,0x18,0x19,0x19,0x1a,0x1a,0x1b,0x1b,0x1c,0x1c,0x1d,0x1d,0x1e,0x1f,0x1f,0x20,0x20,0x21,0x21,0x22,0x23,0x23,0x24,0x24,0x25,0x26,0x26,0x27,0x27,0x28,0x29,0x29,0x2a,0x2b,0x2b,0x2c,0x2d,0x2d,0x2e,0x2e,0x2f,0x30,0x31,0x31,0x32,0x33,0x33,0x34,0x35,0x35,0x36,0x37,0x37,0x38,0x39,0x3a,0x3a,0x3b,0x3c,0x3d,0x3d,0x3e,0x3f,0x40,0x40,0x41,0x42,0x43,0x43,0x44,0x45,0x46,0x46,0x47,0x48,0x49,0x4a,0x4a,0x4b,0x4c,0x4d,0x4e,0x4e,0x4f,0x50,0x51,0x52,0x52,0x53,0x54,0x55,0x56,0x57,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5d,0x5e,0x5f,0x60,0x61,0x62,0x63,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x90,0x91,0x92,0x93,0x94,0x95,0x96,
.section .text
vectors:
.word STACKINIT
.word _start + 1
.word _nmi_handler + 1
.word _hard_fault + 1
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word _svc_handler +1
.word 0
.word 0
.word _pendsv_handler +1
.word 0 @_systick +1 @ 15
.word 0 @ _wwdg +1 @ 0
.word 0 @_pvd +1 @ 1
.word 0 @_rtc +1 @ 2
.word 0 @_flash +1 @ 3
.word 0 @ _rcc + 1 @ 4
.word 0 @_exti0_1 +1 @ 5
.word 0 @ _exti2_3 +1 @ 6
.word 0 @_exti4_15 +1 @ 7
.word 0 @ 8
.word 0 @_dma1_1 +1 @ 9
.word 0 @_dma1_2_3 +1 @ 10
.word 0 @_dma1_4_5 +1 @ 11
.word 0 @_adc1 +1 @ 12
.word 0 @_tim1_brk_up +1 @ 13
.word 0 @ _tim1_cc +1 @ 14
.word 0 @_tim2 +1 @ 15
.word 0 @_tim3 +1 @ 16
.word 0 @ 17
.word 0 @ 18
.word _tim14 +1 @ 19
.word 0 @ 20
.word 0 @_tim16 +1 @ 21
.word 0 @_tim17 +1 @ 22
.word 0 @_i2c +1 @ 23
.word 0 @ 24
.word 0 @_spi +1 @ 25
.word 0 @ 26
.word 0 @_usart1 +1 @ 27
_start:
shizhong:
ldr r0, = 0x40021000 @ rcc
ldr r2, = 0x40022000 @FLASH访问控制
movs r1, # 0x32
str r1, [r2] @FLASH缓冲 缓冲开启
ldr r1, = 0x110002 @HSE-PLL 6
str r1, [r0, # 0x04]
ldr r1, = 0x1090001
str r1, [r0]
dengrc:
ldr r1, [r0]
lsls r1, # 30
bpl dengrc
dengjingzhen:
ldr r1, [r0]
lsls r1, # 14
bpl dengjingzhen
dengpll:
ldr r1, [r0]
lsls r1, # 6
bpl dengpll
@0x34时钟控制寄存器 2 (RCC_CR2)
movs r1, # 0x01
str r1, [r0, # 0x34] @ HSI开14M时钟
dengdai14mshizhongwending:
ldr r1, [r0, # 0x34]
lsls r1, r1, # 30 @ 左移30位
bpl dengdai14mshizhongwending @ 等待14M时钟稳定
chushihuaneicun: @ 设置内存里的变量
ldr r0, = zhengxianbiaozhizhen @ 正弦波指针
movs r1, # 0
str r1, [r0]
waisheshizhong: @ 外设时钟
@+0x14 #0(DMA),2(SRAM),4(FLITF),6(CRC),17(PA)
@18(PB),19(PC),20(PD),22(PF)
@+0x18 #0(SYSCFG),5(USART6),9(ADC),#11(TIM1)
@12(SPI), @14(USART1),16(TIM15),17(TIM16),
@18(TIM17),22(DBGMCU)
@+0X1C # 1(TIM3),4(TIM6),5(TIM7),8(TIM14),11(WWDG),
@14(SPI2),17(USART2),18(USART3),19(USART4),20(USART5)
@21(I2C1),22(I2C2),23(USB),28(PWR)
ldr r0, = 0x40021000
ldr r1, = 0x60005
str r1, [r0, # 0x14]
ldr r1, = 0x100
str r1, [r0, # 0x1c]
waishezhongduan: @外设中断
@0xE000E100 0-31 写1开,写0没效
@0XE000E180 0-31 写1关,写0没效
@0XE000E200 0-31 挂起,写0没效
@0XE000E280 0-31 清除, 写0没效
ldr r0, = 0xe000e100
movs r1, # 0x01
lsls r1, # 19 @ tim14
str r1, [r0]
tim14chushihua:
ldr r0, = 0x40002000
movs r1, # 3
str r1, [r0, # 0x28]
ldr r1, = 300
str r1, [r0, # 0x2c]
ldr r1, = 0x60
str r1, [r0, # 0x18]
ldr r1, = 0x01
str r1, [r0, # 0x20]
[url=home.php?mod=space&uid=43626]@ldr[/url] r1, = 65535
[url=home.php?mod=space&uid=96593]@str[/url] r1, [r0, # 0x34]
movs r1, # 0x01
str r1, [r0, # 0x0c]
ldr r1, = 0x81
str r1, [r0]
io_she_zhi:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@a(0x48000000)b(0x48000400)c(0x48000800)d(0x48000c00)f(0x48001400)
@ 输入(00),通用输出(01),复用功能(10),模拟(11)
@偏移0x4 = 端口输出类型 @ (0 推挽),( 1 开漏)
@偏移0x8 = 输出速度 00低速, 01中速, 11高速
@偏移0xC = 上拉下拉 00无上下拉, 01 上拉, 10下拉
@偏移0x10 = 输入数据寄存器
@偏移0x14 = 输出数据寄存器
@偏移0x18 = 端口开 0-15置位
@偏移0x28 = 端口关
@0X20 = 复用低
@GPIO口0(0-3位)每个IO口占用4位
@ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
@ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
@0x24 = 复用高
@GPIO口8 (0-3位)每个IO口占用4位
@ AF0 = 0X0000, AF1 = 0X0001, AF2 = 0X0010 AF3 = 0X0011, AF4 = 0X0100
@ AF5 = 0X0101, AF6 = 0X0111, AF7 = 0X1000
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ldr r0, = 0x48000000 @ gpio_a
ldr r1, = 0x28000200 @ pa4
str r1, [r0]
ldr r1, = 0x40000
str r1, [r0, # 0x20]
zhengxuanbo:
b zhengxuanbo
_nmi_handler:
bx lr
_hard_fault:
bx lr
_svc_handler:
bx lr
_pendsv_handler:
bx lr
_tim14:
tim14ting:
push {r0-r7,lr}
ldr r0, = zhengxianbiao
ldr r2, = zhengxianbiaozhizhen
ldr r5, = 0x40002000
ldr r3, [r2]
ldr r1, [r0, r3]
str r1, [r5, # 0x34]
ldr r4, = 4092
cmp r3, r4
bcc tim14fanhui
movs r3, # 0
b tim14fanhui
tim14fanhui:
adds r3, r3, # 4
tim14fanhui1:
str r3, [r2]
movs r0, # 0
str r0, [r5, # 0x10]
pop {r0-r7,pc}