LINUX.ORG.RU

Tim1

 ,


0

1

stm32f103c8 здрасьте здрасьте люди добрые) поправьте пожалуйста код, чтобы работало. Смысл такой, что надо сделать для понимание мигание светодиода с итревалом 3 сек с помощью таймера TIM1. пожалуйста обратите внимание на теги. в них нет СИ. не пишите пожалуйста примеры, которые не будут работать без библиотек, или которые вобще не будут работать.

.cpu cortex-m3
.thumb
.section .text
TIM1_PSC_zero_bit:  .word 0x42258500
TIM_CR1_CEN:        .word 0x42258000
TIM_CR1:            .word 0x40012c00
TIM_BDTR_MOE:       .word 0x422588BC
TIM1_PSC:           .word 0x40012c28

RCC_APB2ENR_TIM1EN: .word 0x4242032C//адрес рассчитан по формуле(смещение*32)+(4*Numbit)+0x42000000
//так как таймер будет работать у меня от частоты шины, то подключаю его.

.global _start
_start:
mov r5, #1
ldr r0, =RCC_APB2ENR_TIM1EN
str r5, [r0]

//TIM1_CNT оставлю по умолчанию.
mov r1, #1
ldr r0, =TIM_CR1_CEN
str r1, [x0]// разрешает счет.

//настраиваю счетчик на дикремент. 
ldr r0, =TIM_CR1_CEN
mov r1, #1
str r1, [r0, #16]// поместил единицу в бит DIR
mov r1, #0
str r1, [r0, #20]  поместил ноль в бит CMS
str r1, [r0, #24] поместил ноль в бит СМS
//помещаю 7999 в TIM_PSC
mov r1, #1
mov r2, #0
ldr r0, =TIM1_PSC_zero_bit
str r1, [r0]
str r1, [r0, #4]
str r1, [r0, #8]
str r1, [r0, #12]
str r1, [r0, #16]
str r1, [r0, #20]
str r2, [r0, #24]
str r2, [r0, #28]
str r1, [r0, #32]
str r1, [r0, #36]
str r1, [r0, #40]
str r1, [r0, #44]
str r1, [r0, #48]
// в TIM_PSC лежит #1111100111111
up:


bl up
чтобы светодиод мигал что нужно сделать? как связать ногу PC13 c TIM1?

Ответ на: комментарий от Eddy_Em

Мы говорим про реальную задачу или формальное «превращение в асм» от которого пользы ровно ноль? Если первое, то нужно, если второе, то нет.

COKPOWEHEU
()
Ответ на: комментарий от Assembler

воришка кода

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

anonymous
()
Ответ на: комментарий от Eddy_Em

Выкусить из того же «кала»

а это считается каминг-аутом?

anonymous
()
Ответ на: комментарий от COKPOWEHEU

startup_stm32f10x_md.s

ты файл открывал хоть раз? ты там видел тот трешак? почему же ты продолжаешь им пользоваться, ещё и на богомерзком ассемблере. что, сам на сишке переписать не осилил что ли? слабак.

да и в принципе весь стартап от st вместе с линкер-скриптом можно выбрасывать. только латентный ардуинщик будет такой помойкой пользоваться.

anonymous
()
Ответ на: комментарий от COKPOWEHEU

формальное «превращение в асм» от которого пользы ровно ноль

Непонятные сишные примеры превращаются в понятные асмовские.

vM ★★
()
Ответ на: комментарий от anonymous

ты файл открывал хоть раз? ты там видел тот трешак?

Открывал, конечно. Кое-что может и можно сделать аккуратнее, но смысла нет. Это стартап код, он выполняется единственный раз при старте, следовательно много на нем по определению не выгадать.

почему же ты продолжаешь им пользоваться, ещё и на богомерзком ассемблере. что, сам на сишке переписать не осилил что ли?

Если у вас такая ненависть к ассемблеру, возьмите и перепишите. Мне это сейчас не нужно.

COKPOWEHEU
()
Ответ на: комментарий от vM

Непонятные сишные примеры превращаются в понятные асмовские.

Да если бы. В асмовском файле именованных констант не будет, будут только загрузки магических чиселок по магическим адресам. А уж если включена оптимизация, то еще и по магическим смещениям, хорошо если не относительно PC (бр-р-р, как я с этим в RISC-V намучился…)

COKPOWEHEU
()
Ответ на: комментарий от COKPOWEHEU

Если у вас такая ненависть к ассемблеру, возьмите и перепишите. Мне это сейчас не нужно.

так это у тебя ненависть, раз ты не можешь на нём ни строки разобрать. даже тс написал бы стартап лучше, чем написано у st.

они там сначала копируют, а потом проверяют, не вышли ли за границы. хороший код для продакшена, ага. вызывают из ресет-хендлера main() через bl и после вызова, внимание, делают bx lr. из ресет хендлера. и это при том, что в lr лежит 0xffffffff, то есть произойдёт, как бы выход из прерывания, который сопровождается восстановлением регистров, включая pc, со стека (который в случае ресет хендлера находится где? правильно, в самом конце памяти). сишник что ли писал. без ub даже на асме не получается у него.

anonymous
()
Ответ на: комментарий от Eddy_Em

В opencm3 неплохой стартап, я оттуда брал.

да я видел у тебя, только почему-то продолжаешь пользоваться поделием от st. у тебя там пометка, вроде, стоит «не работает» или типа того.

anonymous
()
Ответ на: комментарий от COKPOWEHEU

Это у другого энтузиаста списал?

ldr    r1, =0b00000010000000000000000000000000 //установил  25Бит в единицу
vM ★★
()
Ответ на: комментарий от Eddy_Em

да, помнится, файл так и назывался, но то ли давно дело было, то ли я тебя с кем-то перепутал.

anonymous
()
Ответ на: комментарий от anonymous

Скорей, перепутал. Потому что st-шный стартап я использовал лет 7 назад. Потом перешел на opencm3, а с него - на «чистый CMSIS».

Eddy_Em ☆☆☆☆☆
()

Тут в соседней теме ТС себя и одногруппника назвал «бывшими студентами». Отчислили или просидели 5 лет и ничему не научились?

anonymous
()
Ответ на: комментарий от anonymous

Похоже, тут многоопытные бывшие студенты.

anonymous
()
Ответ на: комментарий от Assembler

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

Что-то вы за друга перестали писать.
Оддубасили его хорошо?

anonymous
()
Ответ на: комментарий от anonymous

@Eddy_Em, смотри не соглашайся вести курсы.
Ребята неуравновешенные и накостылять могут.

anonymous
()
Ответ на: комментарий от anonymous

да он реально няша, просто хочет казаться брутальным)

Assembler
() автор топика
Ответ на: комментарий от Assembler

Успокойся, я буду тебе помогать. А Шоме желаю гореть в аду. Потому что таких педерастов в реальной жизни не должно быть!

anonymous
()
Ответ на: комментарий от anonymous

Потому что таких педерастов в реальной жизни не должно быть!

вы неправы. и за педерастов зря вы так. есть очень даже симпатичные)))))))))))))) давайте больше не будет о грустном. Надеюсь Эдуард все же вернется.

Assembler
() автор топика
Ответ на: комментарий от Assembler

Эх Эдурад. кто же теперь будет помогать?

Учебники …

anonymous
()
Ответ на: комментарий от Assembler

Эх Эдурад. кто же теперь будет помогать?

Предлагаю вам приехать в его абсерваторию на стажировку

anonymous
()
Ответ на: комментарий от anonymous

Эдик, завязывай с алкоголем.

anonymous
()
23 сентября 2021 г.
Ответ на: комментарий от Assembler

Блевотное ПО ( из-за переедания )

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.