Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.84/73: Рейтинг темы: голосов - 73, средняя оценка - 4.84
dork_riodir
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 115
1

Как помигать светодиодом на STM32 на ассемблере?

07.05.2016, 19:11. Просмотров 13233. Ответов 26
Метки нет (Все метки)

Здравствуйте!
Наткнулся на статью habrahabr.ru/post/274579/
Сделал всё тоже самое для своего контроллера. У меня STM32F100C4T6B
Переправил согласно RM на 100 серию, но ничего не заработало (не мигает, даже не зажигается).
Помогите найти ошибку, пожалуйста.
код
Код
@GNU AS

@ Настройки компилятора
.syntax unified    @ тип синтаксиса
.thumb                @ тип используемых инструкций Thumb
.cpu cortex-m3   @ микроконтроллер

.include "STM32F100.INC"   @ файл определений микроконтроллера

@ макрос псевдокоманды MOV32, пока просто используем, не вникая как, что и почему
.macro   MOV32 regnum,number
MOVW \regnum,:lower16:\number
MOVT \regnum,:upper16:\number
.endm

@ таблица векторов прерываний
.section .text

.word   0x20010000   @ Вершина стека
.word   Riset+1      @ Вектор сброса

Riset:
@ включим тактирование GPIOH
MOV32   R0, RCC_APB2ENR  @ адрес
MOV32   R1, 0x04     @ значение
LDR   R2, [R0]       @ прочитали значение регистра
ORR   R1, R1, R2       @ логическое, побитовое ИЛИ: R1= R1 ИЛИ R2
STR   R1, [R0]            @ запись R1 по адресу указанному в R0

@ установим режим GPIOH PH2
MOV32   R0, GPIOA_CRL  @ адрес
MOV32   R1, 0x2000     @ значение
LDR   R2, [R0]       @ прочитали значение регистра
ORR   R1, R1, R2       @ логическое, побитовое ИЛИ: R1= R1 ИЛИ R2
STR   R1, [R0]            @ запись R1 по адресу указанному в R0

BLINK_LOOP:
@ включим светодиод
MOV32   R0, GPIOA_BSRR  @ адрес
MOV32   R1, 0x08          @ значение
STR   R1, [R0]          @ запись R1 по адресу указанному в R0

BL   DELAY             @   пауза

@ выключим светодиод
@MOV32   R0, GPIOA_BSRR  @ адрес
@MOV32   R1, 0x08 << (1*16)   @ значение 1-размер поля, 16-во второе полуслово
@STR   R1, [R0]          @ запись R1 по адресу указанному в R0

BL   DELAY             @   пауза

B   BLINK_LOOP         @ делаем цикл

DELAY:
MOV32   R2, 0x00100000     @ повтор цикла задержки 0x0010 0000 раз.
Delay_loop:
SUBS   R2, R2, 1
BNE   Delay_loop
BX   LR
.end
адреса определены следующие:
Код
@file STM32F100.INC
.equ RCC_APB2ENR, 0x40021018
.equ GPIOA_CRL, 0x40010800
.equ GPIOA_BSRR, 0x40010810
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2016, 19:11
Ответы с готовыми решениями:

STM32F103XC8 :: помигать светодиодом — проблема?
Здравствуйте. В программировании микроконтроллеров я новичок, хочу научиться....

Осваиваю пик или как помигать светодиодом...
Собрал свою волю в кулак и решил начать юзать пики. Первую программку нашел в...

Программирование Stm32 на ассемблере
Доброго всем времени суток! Заинтересовал такой вопрос: как программировать Stm...

Программирование STM32 на ассемблере в Keil: общие вопросы.
У меня есть уже некоторый опыт работы с 8-ми битными МК AVR на ассемблере, но...

Чем связать STM32 + STM32 в одном корпусе?
Есть 2 платы: (1) - STM32 (Вывод на LCD + запись SD) и (2) - STM32F4 (обработка...

26
dork_riodir
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 115
18.05.2016, 20:10 21
Господа! Спасибо за программу и дефайны периферии.

otx32
Смотрю код.
Насколько я понял, Вы настроились на внешний кварц и умножаете частоту.
Вопрос такой: если я переделаю программу под тактирование от внутреннего кварца без умножителя должно работать?

Попробовал сам написать. Настроил systysk. Но, по его прерыванию уходит в HARD_FAULT. и не может оттуда выйти...

И ещё. Уточните, STMF100 и STM103 отличаются частотой и наличием USB? Есть ли между ними что-то, что помешает запустить код от одного на другом?
0
yjmwxwx
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 4
19.05.2016, 13:56 22
.thumb
.syntax unified
.section .data
.equ zhomding, 0x20000100
.equ tidyanshi, 8000000
.section .text
xiangliangbiao:
.word zhomding
.word _stort + 1
.word _nmi_homdler + 1
.word _hard_fault + 1
.word _memory_fault + 1
.word _bus_fault + 1
.word _usage_fault + 1
_stort:
ldr r0, = 0x40021018 @apb2_enr
mov r1, # 0x04
str r1, [r0]

ldr r0, = 0x40010800
ldr r1, = 0x44444443 @ PA0
str r1, [r0] @ GPIOA_CRL
xunhuan:
mov r2, # 0x01
str r2, [r0, # 0x10] @ BSRR
ldr r3, = tidyanshi
xunhuan1:
subs r3, # 1
bne xunhuan1
ldr r3, = tidyanshi
str r2, [r0, # 0x14] @ BRR
xunhuan2:
subs r3, # 1
bne xunhuan2
b xunhuan
_nmi_homdler:
bx lr
_hard_fault:
bx lr
_memory_fault:
bx lr
_bus_fault:
bx lr
_usage_fault:
bx lr
0
yjmwxwx
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 4
19.05.2016, 14:01 23
STM32F103C8T6

GNU ARM





0
yjmwxwx
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 4
19.05.2016, 14:04 24
STM32F103C8T6

[3.82 Кб]
0
yjmwxwx
0 / 0 / 0
Регистрация: 16.05.2016
Сообщений: 4
21.05.2016, 13:00 25
Код
           .thumb
.syntax unified
.section .data
.otygn 4

shumaguanmabiao: .byte 0x88,0xbe,0xc4,0x94,0xb2,0x91,0x81,0xbc,0x80,0x90
hongwoymabiao: .int 0xbc43e708,0xb847e708,0xbd42e708,0xbe41e708,0xbf40e708,0xb946e708,0xba45e708,0xbb44e708,0xb54ae708,0xb649e708,0xb748e708,0xb14ee708,0xb24de708,0xb34ce708,0xb44be708,0xeb14e708,0xe31ce708,0xee11e708,0xea15e708,0xe21de708,0xe916e708,0xe01fe708,0xe11ee708,0xed12e708,0xa35ce708,0xe718e708,0xe619e708,0xe51ae708,0xef10e708

shuaxinbiao: .byte 0x80,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x00
caidian: .word zhucaidom +1,dd1 +1,dd2 +1,dd3 +1,dd4 +1,dd5 +1,dd6 +1,dd7 +1,dd8 +1,dd9 +1,dd10 +1,dd11 +1,dd12 +1,dd13 +1,dd14 +1,dd15 +1,dd16 +1,dd17 +1,dd18 +1,dd19 +1,dd20 +1,dd21 +1,dd22 +1,dd23 +1,dd24 +1,dd25 +1,dd26 +1,dd27 +1,dd28 +1,dd29 +1

yuefenbiao: .byte 0x00,0x20,0x1d,0x20,0x1f,0x20,0x1f,0x20,0x1f,0x20,0x1f,0x20,0x1f,0x20
.equ STACKINIT,          0x20005000
.equ systyskbiaozhi,     0x20000300
.section .text
xiangliangbiao:
.word STACKINIT
.word _stort + 1
.word _nmi_homdler + 1
.word _hard_fault  + 1
.word _memory_fault + 1
.word _bus_fault + 1
.word _usage_fault + 1
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word 0
.word systyskdingshiqi +1
.word  0 @WWDG    0
.word  0 @PVD    1
.word  0 @TAMPER  2
.word  0 @RTC    3
.word  0 @FLASH  4
.word  0 @RCC    5
.word  0 @EXTI0  6
.word  0 @EXTI1  7
.word  0 @EXTI2  8
.word  0 @EXTI3  9
.word  0 @EXTI4  10
.word  0 @DMA11  11
.word  0 @DMA12  12
.word  0 @DMA13  13
.word  0 @DMA14  14
.word  0 @DMA15  15
.word  0 @DMA16  16
.word  0 @DMA17  17
.word  0 @ADC1_2   18
.word  0 @USB_HP_CAN1_TX 19
.word  0 @USB_LP_CAN1_RX0 20
.word  0 @CAN1_RX1  21
.word  0 @CAN1_SCE  22
.word  0 @EXTI9_5  23
.word  0 @TYM1_BRK  24
.word  0 @TYM1_UP  25
.word  0 @TYM1_TRG_COM  26
.word  0 @TYM1_CC  27
.word  tim2dingshiqi +1  @TIM2 28
.word  0 @TIM3    29
.word  0 @TIM4    30
.word  0 @I2C1_EV  31
.word  0 @I2C1_ER  32
.word  0 @I2C2_EV  33
.word  0 @I2C2_ER  34
.word  0 @SPI1    35
.word  0 @SPI2    36
.word  0 @USORT1  37
.word  0 @USORT2  38
.word  0 @USORT3  39
.word  0 @EXTI15_10  40
.word  0 @RTCAlarm_IRQ  41
.word  0 @USBWakeUp  42
.word  0
.word  0
.word  0
.word  0
.word  0
.word  0
.word  0
.word  0 @BootROM
_stort:
ldr r0, = 0x40010004
ldr r1, = 0x02000000
str r1, [r0]

str r1, [r0, # 0x04]
ldr r0, = 0x40021000
ldr r1, = 0x14D83
str r1, [r0]
gsszbz:
ldr r2, [r0]
ldr r1, = 0x20000
tst r1, r2           @HSE???????
bne rccchushihua
b gsszbz
rccchushihua:
ldr r0, = 0x40022000
mov r1, # 0x00000032
str r1, [r0]           @FLASH?? ????
ldr r0, = 0x40021004
ldr r1, = 0x1D8400
str r1, [r0]
ldr r0, = 0x40021000
ldr r1, = 0x1033D03
str r1, [r0]
chaxun:
ldr r2, [r0]
ldr r1, = 0x2000000
tst r1, r2
bne rccgg               @??PLL??
b chaxun
rccgg:
ldr r0, = 0x40021004
ldr r1, = 0x1D8402
str r1, [r0]            @ PLL??????

ldr r0, = 0x40010004
ldr r1, = 0x02000000
str r1, [r0]

neicunqingling:                  @ ??????0
ldr r0, = 0x20000000
ldr r2, = 0x4fff         @ ???0X4FFF????
mov r1, # 0              @ ?0
qingling_xunhuan:
str r1, [r0], 4
subs r2, # 1
bne qingling_xunhuan     @ ???0

chushihuayixieshuju:   @???????
ldr r0, = 0x200004fc
ldr r1, = 0x2200a000
str r1, [r0]
ldr r0, = 0x2000001c
ldr r1, = 0xffffff
str r1, [r0]
ldr r5, = 0x20000024 @ 22000480
ldr r1, = 0x00110001
ldr r2, = 0x00010001
ldr r3, = 0x00010101
str r1, [r5]
str r2, [r5, # 4]
str r3, [r5, # 8]

systysk:
@0xe000e010 SYSTICK???????
@0=?????
@1=(1???0?????,0???)
@2=(0????1????)
@16= ???????????SYSTICK????0????1????????0
@0xe000e014 ?????? ??0???????
@0xe000e018 ???,??0
@0e000e01c
@0-23 10MS??????????
@ 30=(1???????10MS)(0??????10MS)
ldr r0, = 0xe000e010
mov r1, # 0
str r1, [r0]            @ ??SYSTICK
ldr r1, = 9000      @ ???
str r1, [r0, # 4]       @ ?????
str r1, [r0, # 8]       @ ?0???
ldr r3, = 0xe000ed23  @systysk???
mov r1, # 240
str r1, [r3]
mov r1, # 3
str r1, [r0] @ ????

waisheshizhong:

@APB2_ENR=0X40021018 0(AFIO)1(??)2(PA)3(PB)4(PC)5(PD)6(PE)78(??)
@9(ADC1)10(ADC2)11(TYM1)12(SPI1)13(??)14(USORT1)15(??)
ldr r0, = 0x40021018 @ APB2_ENR
ldr r1, = 0x3c
str r1, [r0]
@APB1_ENR=0X4002101C
@0=TIM2,1=TIM3,2=TIM4,3=TIM5,4=TIM6,5=TIM7,11=WWDG
@14=SP12,15=SP13,17=UART3,19=UART4,20=UART5
@21=I2C,22=I2C2,23=USB,25=CAN,27=BKPT,28=PWR,29=DACEN
ldr r0, = 0X4002101C @ APB1_ENR
ldr r1, = 0x01
str r1, [r0]

zhongduankongzhi:
@SITENA0=0XE000E100,SITENA1=0XE000E104 @????
@CLRENA0=0XE000E180,CLRENA1=0XE000E184 @????
@SITPEND0=0XE000E200,SITPPEND1=0XE000E204 @????
@CLRPEND0=0XE000E280,CLRPEND1=0XE000E284  @????
@ACTIVE0=0XE000E300,ACTIVE1=0XE000E304   @ ??????
@0XE000E400-0XE000E43C ??????????8?
@0XE000ED00=CPUID,0XE000ED04=??????????
@0xe000ed08=?????,0xe000ed0c=?????????
@0xe000ed10=????,0XE000ED14=?????
@0xe000ed18-0xe000ed23=?????????
ldr r0, = 0xe000ed0c
ldr r1, = 0x5fa0500
str r1, [r0]
ldr r0, = 0xe000e400
mov r1, # 0xc0
str r1, [r0, # 28]
ldr r0, = 0xe000e100 @ ????
ldr r1, = 0x10000000
str r1, [r0]

timdingshiqi:
@tim1=0x40012c00
@+0=CR1 ?????
@+4=CR2 ?????2
@+8=SMCR ????????
@+c=DIER ???????
@+10=SR ?????
@+14=EGR ???????
@+18=CCMR1 ??/???????1
@+1C=CCMR2 ??/???????2
@+20=CCER ??/???????
@+24=CNT ???
@+28=PSC ????
@+2C=ARR ?????
@+30=RCR ???????
@+34=CCR1 ??/?????1
@+38=CCR2 ??/?????2
@+3C=CCR3 ??/?????3
@+40=CCR4 ??/?????4
@+44=BDTR ??/?????
@+48=DCR DMA???
@+4C=DMAR ?????DMA??
@TIM2=0x40000000
@18=CCMR1,18=OCMR1,1C=CCMR2,1C=OCMR2
@CNT?CCR????,ARR?PSC?????????PSC=????
ldr r0, = 0x40000000 @ tim2
ldr r1, = 720
str r1, [r0, # 0x28] @ ??
ldr r1, = 0xffffff
str r1, [r0, # 0x2c] @ ??
mov r1, # 2
str r1, [r0, # 0x0c] @???
mov r1, # 0xf1
str r1, [r0, # 0x18] @ ??/????
mov r1, # 3
str r1, [r0, # 0x20] @ ?????
ldr r1, = 0x81
str r1, [r0]

IOshezhi:

ldr r0, = 0x40010c00
@PA=0x40010800 PB=0x40010c00 PC=0x40011000
@PD=0x40011400 PE=0x40011800 PF=0x40011c00
@ IO 1(????10M)2(????2M)3(????50M)
@4(????)5(??????10M)6(??????2M)
@7(??????50M)8(??????)9(????????10M)
@A(????????2M)B(????????50M)C(??)
@D(????????10M)E(????????2M)F(????????50M)
@ ??0X8=IDR ???????
@??0XC=ODR ???????
@??0X10=BSRR IO?
@??0X14=BRR  IO?
ldr r1, = 0x45554444
str r1, [r0, # 0x04]

kammengou:
ldr r0, = 0x40003000
ldr r1, = 0x5555
str r1, [r0]
mov r1, # 4
str r1, [r0, # 4]
ldr r1, = 0x28c
str r1, [r0, # 8]
ldr r1, = 0xaaaa
str r1, [r0]
ldr r1, = 0xcccc
str r1, [r0]

zhucaidom:

ldr r0, = 0x40003000
ldr r1, = 0xaaaa
str r1, [r0]  @ ???

ldr r0, = 0xe000e010
mov r1, # 0
str r1, [r0]
bl systyskdingshiqi

bl anjian
ldr r0, = 0x20000014
bl zhuan_shijinzhi
ldr r0, [r12, # -4]
mov r1, # 8
ldr r2, = 0x20000100
bl zhuan_ascii
ldr r0, = 0x20000018
bl zhuan_shijinzhi
ldr r0, [r12, # -4]
mov r1, # 8
ldr r2, = 0x20000110
bl zhuan_ascii

mov r0, # 8
bl xieshumaguan

ldr r3, = 0x200004f8
ldr r0, [r3]
ldr r1, = caidian
ldr lr, [r1]
lsl r0, # 2
ldr r2, [r1, r0]
mov pc, r2
dd2:
ldr r11, = 0x101
bx lr
dd3:
push {r0-r10,lr}
ldr r3, = 0x20000020
ldr r3, [r3]
ldr r0, = 0x20000014
ldrb r1, [r0, r3]
add r1, # 1
strb r1, [r0, r3]

bl qingchuanjian

pop {r0-r10,pc}
dd4:
push {r0-r10,lr}
ldr r5, = 0x20000020
ldr r4, [r5]
add r4, # 1
cmp r4, # 8
it eq
moveq r4, # 0
str r4, [r5]
bl qingchuanjian
ldr r11, = 0x103
pop {r0-r10,pc}

dd5:
ldr r11, = 0x104
bx lr
dd6:
ldr r11, = 0x105
bx lr
dd7:
ldr r11, = 0x106
bx lr
dd8:
ldr r11, = 0x107
bx lr
dd9:
ldr r11, = 0x108
bx lr
dd10:
ldr r11, = 0x109
bx lr
dd11:
ldr r11, = 0x110
bx lr
dd12:
ldr r11, = 0x111
bx lr
dd13:
ldr r11, = 0x112
bx lr
dd14:
ldr r11, = 0x113
bx lr
dd15:
ldr r11, = 0x114
bx lr
dd16:
ldr r11, = 0x115
bx lr
dd17:
ldr r11, = 0x116
bx lr
dd18:
ldr r11, = 0x117
bx lr
dd19:
ldr r11, = 0x118
bx lr
dd20:
ldr r11, = 0x119
bx lr
dd21:
ldr r11, = 0x120
bx lr
dd22:
ldr r11, = 0x121
bx lr
dd23:
ldr r11, = 0x122
bx lr
dd24:
ldr r11, = 0x123
bx lr
dd25:
ldr r11, = 0x124
bx lr
dd26:
ldr r11, = 0x125
bx lr
dd27:
ldr r11, = 0x126
bx lr
dd28:
ldr r11, = 0x127
bx lr
dd29:
ldr r11, = 0x128
bx lr

dd1:
ldr r0, = 0xe000e010
mov r1, # 3
str r1, [r0]

zhuye:

ldr r0, = 0x40003000
ldr r1, = 0xaaaa
str r1, [r0]        @???

bl anjian
ldr r2, = 0x200004f8
ldrb r2, [r2]
cmp r2, # 2
it eq
beq zhucaidom
ldr r0, = 0x20000014
bl zhuan_shijinzhi
ldr r0, [r12, # -4]
mov r1, # 8
ldr r2, = 0x20000100
bl zhuan_ascii

ldr r0, = 0x20000018
bl zhuan_shijinzhi
ldr r0, [r12, # -4]
mov r1, # 8
ldr r2, = 0x20000110
bl zhuan_ascii

mov r0, # 8
bl xieshumaguan
b zhuye

zhuan_shijinzhi:   @ R0=????????
push {r0-r9,lr}
mov r12, sp
sub sp, # 0x04
ldrb r8, [r0]
ldrb r2, [r0, # 1]
ldrb r3, [r0, # 2]
ldrb r4, [r0, # 3]
mov r5, # 100
mul r9, r2, r5
movw r5, # 10000
mul r7, r3, r5
ldr r5, = 1000000
mul r6, r4, r5
add r8, r8, r9
add r2, r7, r8
add r1, r2, r6
str r1, [sp]
mov sp, r12
pop {r0-r9,pc}
zhuan_ascii: @ ??R0=?? R1= ?? R2=??
push {r0-r7,lr}
ldr r7, = shumaguanmabiao
mov r5, # 10
xunhuanqiuma:
udiv r4, r0, r5
mul r6, r4, r5
sub r3, r0, r6
ldrb r6, [r7, r3]
strb r6, [r2], # 1
mov r0, r4
subs r1, # 1
bne xunhuanqiuma
pop {r0-r7,pc}
xie595:    @ ??0X20000000

@74HC595 11=???? 12=???? 14=??
push {r0-r5,lr}
ldr r0, = 0x422181b0 @ ????
mov r1, # 1          @ 1
mov r2, # 0          @ 0
ldr r3, = 0x22000000 @ 0x20000000???
mov r4, # 24         @ ???8?
xunhuan595:
str r2, [r0, # 0x08] @ 595_11 ????
ldr r5, [r3], # 4    @ ???????
str r5, [r0]         @14?????
str r1, [r0, # 0x08] @ ??
subs r4, # 1
bne xunhuan595       @??16?
str r2, [r0, # 0x04] @ 12????
str r1, [r0, # 0x04]
pop {r0-r5,pc}      @ ????????
qingchuanjian:
push {r0-r1,lr}
ldr r0, = 0x200004f8
mov r1, # 0
str r1, [r0]
ldr r0, = 0x20000500
str r1, [r0]
pop {r0-r1,pc}
anjian:
push {r0-r12,lr}
ldr r3, = 0x20000500
ldr r5, = hongwoymabiao
mov r6, # 29
pomduananjian:
ldr r4, [r5], # 4
ldr r2, [r3]
cmp r2, r4
beq anjianzhengque
subs r6, # 1
bne pomduananjian
b anjianfanhui
anjianzhengque:
ldr r2, = 0x200004f8
str r6, [r2]

anjianfanhui:
pop {r0-r12,pc}
xieshumaguan: @ r0??
push {r0-r12,lr}
ldr r9, = 0x20000110
ldr r7, = 0x20000100
ldr r8, = shuaxinbiao
ldr r6, = 0x20000000

xianshi:
ldrb r5, [r8], # 1
ldrb r2, [r7], # 1
ldrb r4, [r9], # 1
strb r2, [r6, # 1]
strb r4, [r6, # 2]
strb r5, [r6]
bl xie595
subs r0, # 1
bne xianshi
pop {r0-r12,pc}

_nmi_homdler:
bx lr
_hard_fault:
bx lr
_memory_fault:
bx lr
_bus_fault:
bx lr
_usage_fault:
bx lr
systyskdingshiqi:              @ SYSTICK?????????
push {r0-r12,lr}
ldr r0, = 0xe000ed04
ldr r1, = 0x2000000
str r1, [r0]         @ ??SYSTICK
ldr r2, = 0x20000010
ldr r4, = 0x20000014
ldrb r3, [r4, # 1]
ldrb r5, [r4, # 2]
ldrb r6, [r4, # 3]
ldrb r8, [r4, # 4]
ldrb r9, [r4, # 5]
ldrb r10, [r4, # 6]
ldrb r11, [r4, # 7]

ldrb r7, [r4]
ldr r1, [r2]
ldr r0, = 0xe000e010
ldr r0, [r0]
cmp r0, # 0
beq tiaoguojiajia
add r1, # 1
tiaoguojiajia:
cmp.w r1, # 1000
itt cs
movcs r1, # 0
addcs r3, # 1
cmp r3 ,# 60
itt cs
movcs r3, # 0
addcs r5, # 1
cmp r5, # 60
itt cs
movcs r5, # 0
addcs r6, # 1
cmp r6, # 24
ittt cs
movcs r6, # 0
addcs r7, # 1
addcs r8, # 1
cmp r7, # 8
it cs
movcs r7, # 1
ldr r0, = 0x20000038
ldr r12, = yuefenbiao
ldrb r0, [r12, r9]
cmp r0, # 0x1d
bne runnianbuchang
ldr r12, = 0x22000480
push {r1, r9}
lsl r9, # 2
ldr r1, [r12, r10]
cmp r1, # 1
it eq
addeq r0, # 1
pop {r1, r9}
runnianbuchang:
cmp r8, r0
itt cs
movcs r8, # 1
addcs r9, # 1
cmp r9, # 13
itt cs
movcs r9, # 1
addcs r10, # 1
cmp r10, # 99
itt cs
movcs r10, # 0
addcs r11, # 1
cmp r11, # 99
it cs
movcs r11, # 0
strb r7, [r4]
strb r3, [r4, # 1]
strb r5, [r4, # 2]
strb r6, [r4, # 3]
strb r8, [r4, # 4]
strb r9, [r4, # 5]
strb r10, [r4, # 6]
strb r11, [r4, # 7]
str r1, [r2]
pop {r0-r12,pc}

tim2dingshiqi:
push {r0-r12,lr}
ldr r2, = 0x200004fc
ldr r0, = 0x40000034
ldr r3, [r2]
ldr r1, [r0]  @ ????
cmp.w r1, # 0xe000
bhi tim2fanhui
cmp.w r1, # 0x1000
ittt hi
ldrhi r4, = 0x2200a000
strhi r4, [r2]
bhi tim2fanhui

cmp r1, # 0xff
itttt hi
ldrbhi r5, [r2, # - 0x0c]
addhi r5, # 1
strbhi r5, [r2, # - 0x0c]
bhi tim2fanhui
cmp r1, # 0xa0
itttt hi
movhi r6, # 1
strhi r6, [r3], # 4
strhi r3, [r2]
bhi tim2fanhui

cmp r1, # 0x60
ittt hi
movhi r6, # 0
strhi r6, [r3], # 4
strhi r3, [r2]

tim2fanhui:
ldr r0, = 0x40000024
mov r1,  # 0
str r1, [r0]
pop {r0-r12,pc}

<Изображение удалено>
0
vt340
0 / 0 / 0
Регистрация: 22.03.2015
Сообщений: 838
21.05.2016, 13:13 26
? ! Next stage after bare metal - bare wood )
0
dork_riodir
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 115
21.05.2016, 15:45 27
О! Спасибо Вам интернациональное, yjmwxwx.
Кстати, что такое Bare metal?
0
21.05.2016, 15:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2016, 15:45

Общение с барометром MS5540 на STM32 (Arduino to STM32)
Получил от китайца сей аппарат, пошел тут же гуглить что нибудь готовое, но не...

помигать светодиодом на свиче
Если замкнуть между собой любую пару в сетевом кабеле, то пакеты, которыми свич...

Помигать светодиодами
Помогите,пожалуйста ,выполнить три задания Правила форума: 5.16....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru