LINUX.ORG.RU

Помогите разобраться

 


0

1

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

.syntax unified
.cpu cortex-m3
.thumb

RCC_APB2ENR = 0x40021018
RCC_APB2ENR_AFIOEN = (1 << 0)
RCC_APB2ENR_IOPAEN = (1 << 2)
RCC_APB2ENR_IOPCEN = (1 << 4)

GPIOA_CRH = 0x40010804
GPIOA_BSRR = 0x40010810

GPIOC_CRH = 0x40011004
GPIOC_ODR = 0x4001100c

AFIO_EXTICR3 = 0x40010010

EXTI_IMR = 0x40010400
EXTI_FTSR = 0x4001040c
EXTI_PR = 0x40010414

NVIC_ISER0 = 0xe000e100

.text
	.word   0x20002000
	.word   _start + 1
	.space  0x94
	.word   EXTI9_5_isr + 1

.global _start
_start:
	ldr    r0, =RCC_APB2ENR
	ldr    r1, [r0]
	orr    r1, #(RCC_APB2ENR_AFIOEN | RCC_APB2ENR_IOPAEN | RCC_APB2ENR_IOPCEN)
	str    r1, [r0]

	ldr    r0, =GPIOA_CRH
	ldr    r1, [r0]
	and    r1, #0xFFFFFF0F
	orr    r1, #0x00000080
	str    r1, [r0]

	ldr    r0, =GPIOA_BSRR
	ldr    r1, =(1 << 9)
	str    r1, [r0]

	ldr    r0, =GPIOC_CRH
	ldr    r1, [r0]
	and    r1, #0xFF0FFFFF
	orr    r1, #0x00100000
	str    r1, [r0]

	ldr    r0, =GPIOC_ODR
	ldr    r1, [r0]
	orr    r1, #(1 << 13)
	str    r1, [r0]

	ldr    r0, =AFIO_EXTICR3
	ldr    r1, [r0]
	and    r1, #0xFFfFFF0F
	str    r1, [r0]

	ldr    r0, =EXTI_FTSR
	ldr    r1, [r0]
	orr    r1, #(1 << 9)
	str    r1, [r0]

	ldr    r0, =EXTI_PR
	ldr    r1, =0xFFFFF
	str    r1, [r0]

	ldr    r0, =EXTI_IMR
	ldr    r1, =(1 << 9)
	str    r1, [r0]

	ldr    r0, =NVIC_ISER0
	ldr    r1, =(1 << 23)
	str    r1, [r0]

	dsb

loop:
	wfi
	b loop

.global EXTI9_5_isr
EXTI9_5_isr:
	ldr    r0, =EXTI_PR
	ldr    r1, =(1 << 9)
	str    r1, [r0]

	ldr    r0, =GPIOC_ODR
	ldr    r1, [r0]
	eor    r1, #(1 << 13)
	str    r1, [r0]

	bx lr
ничего не работает. мне кажется ошибка в коде. наверное кто-то пошутил так. Тута много тех кто любит шутить. Но если серьезно то скажите где ошибка? почему код не работает? при замыкании ноги PA9 с Gnd должен был загораться светодиод PC13 как я понял из темы.



Последнее исправление: Stierlitz_ (всего исправлений: 3)

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

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

Если бы Ассемблер хотел разобраться в примере, он бы сам его нагуглил и пришел с конкретными вопросами.

Или в этой теме. Вы где-то выкопали код с мотивацией «разобраться на примере». Где этот разбор? Вы открыли документацию чтобы проверить каждый адрес, каждую инструкцию, прокомментировали их для памяти? Нет, вы выложили код на форум чтобы разбирался кто-то другой.

значит COKPOWEHEU понимает и признает выше что готовый код может помочь разобраться ассемблеру и всязи с этой ценностью он не готов просто так дать готовые примеры чтобы ассемблер научился

Поймите наконец, что подобный код никакой ценности не представляет. Ценность представляет способность учиться, находить и анализировать информацию.

Как думаете, зачем в школе задают решать домашки? Потому что учитель не знает ответов на эти задачки или все же чтобы выработать у учащихся навык?

господин @COKPOWEHEU помогает ассемблеру, отправляя примеры кода

Да вроде не отправлял примеры кода… По его хелло-ворлдовским задачам и без меня кода много написано. Достаточно поискать.

включить тактирование (комментарий)

А, вот вы о чем. Это не примеры кода, это пример подхода к решению задачи. Я наглядно описываю шаг за шагом как задача из нерешенной превращается в решенную. Причем, вот ведь неожиданность, без необходимости создавать темы на форуме. (@fernandos, вы-то поймете, кому адресован ответ)

COKPOWEHEU не мог там помогать потому bit banding он выучил сам только вместе с ассемблеров в темах эдика

Не уверен что правильно распарсил высказывание, но на счет bitband’а вроде бы было так:

Анонимус написал код с его использованием. Кто-то (не помню кто) спросил как он работает. Я попытался разобраться и наткнулся на незнакомые адреса, о чем и спросил. Анонимус кинул ссылку на описание bitband’а. Я ее просмотрел и написал макрос для использования.

Да, пример использования bitband’а я увидел от Анонимуса (так получилось, что его привели в теме Ассемблера). Нет, пользы в этом практически никакой нет, потому что в реальности bitband практически нигде не применяется. Просто любопытная фишка ядра.

и писать чтото ассемблеру на Си которого он не знает

Я писал не код, а пример подхода. Можно было на псевдо-языке писать, на Паскале или на чем угодно еще. Главное чтобы не на ассемблере, чтобы не было соблазна тупо скопипастить код, не вникая в него.

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

Хорошо бы не навязывать уничижительную интерпретацию. Luser можно понимать как «linux user», а можно и как растерявшийся и потерявшийся пользователь.

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

Хорошо бы не навязывать уничижительную интерпретацию. Luser можно понимать как «linux user», а можно и как растерявшийся и потерявшийся пользователь.

Согласен.

Шутка

Можно

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

то есть ты знал bit banding и отказываешься от своих слов что учился в темах эдика и таких как ассемблер потому что умные люди учатся везде и на всем?

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

А ныне в Developers МЕГАЮТ, а это как бы не всем нравится …

ух как вы взлетели! названию нужно еще и соответствовать. то что ны назвался Developer и унижаешь всех не делает тебя настоящим Developers. настоящим Developers сделал бы вас собственная ОС. которой нет небыло у небудет. будут те кто называет себя Developers но соотвествующих дел и продуктов никогда не будет. так что пусть хоть светодиодами там мегают это хоть какойто признак активности.

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

внятней некуда. вы оказываетесь от своих слов что учились в темах эдика и что там узнали что такое bin banding? вы не говорили что эдик хорошо знает микроконтроллеры и что действительно учились в его темах?

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

ух как вы взлетели!

Не об этом ведь речь.
Профессионалами не рождаются …

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

пошел лазить по комментам чтобы не тыкнул носом в пруфы)))

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

А какое отношение это имеет к обсуждаемому коду?

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

Привет! Посоветуй пожалуйста реализацию USB CDC поверх CMSIS для STM32.

И годную документацию по USB в этом плане.

Использовал libopencm3 ранее, но @Eddy_Em прав. Там не всё хорошо.

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

Откуда Вам это известно?

Дабы не провоцировать недопонимание, сразу уточню, что речь про контроллеры, а не про bitband в целом. Во-первых, ни в одном примере кода, ни в одной статье я не видел практического применения bitband’а. Во-вторых, в младших сериях stm его просто нет из экономии места на кристалле. А в старших его снова нет, но уже из-за наличия кэша. Ну и в-третьих область применения довольно узкая: менять отдельный бит нужно редко. Чаще биты меняются группами.

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

Да, пример использования bitband’а я увидел от Анонимуса (так получилось, что его привели в теме Ассемблера).

вы оказываетесь от своих слов что учились в темах эдика и что там узнали что такое bin banding?

И это существо еще будет утверждать что прочитало написанное…

пошел лазить по комментам чтобы не тыкнул носом в пруфы)))

И как, нашел ссылку на эту тему? А то мне лень искать.

давай порциями) ты знал bit banding до того как зашел в темы Эдика и ассемблера?

Я знал что он есть, но не знал как им пользоваться. И желания узнать не испытывал, поскольку в реальности он практически не используется. Но при чем здесь Эдик? Вроде бы исходник с bitband’ом и картинку с расшифровкой адресов давал Анонимус.

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

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

Конечно. Я даже из вас умудряюсь извлекать пользу, хоть ее и немного.

это не вы его учите а он вас когда создает темы и вы в них во все уши и глаза пытаетесь выловить хоть чтото полезное. и еще находите в себе наглость заявлять что регистранту ассемблеру вы пытаетесь помочь. нет! вы

умудряюсь извлекать пользу, хоть ее и немного.

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

вы лжец батенька и лицемер. думаю пруфоф достаточно.

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

Привет! Посоветуй пожалуйста реализацию USB CDC поверх CMSIS для STM32.

Вы не поверите, последние пару месяцев именно этим и занимался. Правда, в специфичных приложениях, поэтому в статьи не оформлял. Но если надо (и если не боитесь моего стиля с макросами и прочим) могу допилить какую-нибудь заготовку и куда-нибудь залить.

Стоп. Буквально на этой неделе по чьей-то просьбе делал эмулятор клавиатуры с управлением через custom-HID и CDC. Вот: https://drive.google.com/file/d/12wA0fk9aNI-_X9B2NKFx0y0y8e7AyY_X/view?usp=sharing

Естественно, это просто набросок, заготовка. Читает сканкоды, после «нажатия» тут же отпускает, не поддерживает удержание клавиш и модификаторы вроде shift или ctrl.

Пример для HID там приложен, а для CDC просто отправляется строка сканкодов (не больше шести): echo -n «06120E13» > /dev/ttyACM0

Но ознакомиться с дескрипторами сгодится. Если, опять же, не боитесь моего стиля.

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

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

Именно так делаю. Спасибо Ассемблеру за его темы. Мои темы не относились бы к линуксу.

пытаетесь выловить хоть чтото полезное.

Так на то и форум.

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

на насамом деле паразитируете в его темах

Ага, а еще я у Эдика код ворую. И еще что-то было. Какое-то еще не менее дурацкое обвинение, с ходу не вспомню. Не надоело еще этот бред постить из-под всех аккаунтов? Тут на технических форумах народ образованный, он на такое не ведется.

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

Спасибо большое! Буду просвещаться.

Я не очень люблю USB, но в этом плане альтернативы нет.

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

реализацию USB CDC

Так что, заморачиваться мне с полноценной реализацией usb-uart или пока не надо? Лениво сейчас вспоминать где какие грабли, оформлять все… Все равно, конечно, придется…

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

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

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

давай порциями) ты знал bit banding до того как зашел в темы Эдика и ассемблера?

Что ты носишься с этим бит-бэндингом? Узнал про одну ненужную фигню и год на нее облизываешься. Уже бы битовую арифметику выучил давно. Она работает везде, а твой бит-бэндинг работает на небольшом числе контроллеров и доступен не для всех нужных фич. Смысла его осваивать нет. Даже для лузеров, не умеющих в битовые операции.

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

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

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

я так вобще узнал про bit banding только из тем ассемблера. стал читать его темы и наткнулся на псевдоборожелателей которые ему пытались помочь как бы. а когда вчитался !!! то мать честная!!! короч ребята давайте удачки вам. я лушче схожу в другие темы. может там люди еще остались.

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

Только ради моей проблемы не надо. Я ещё не могу точно быть уверен, что в итоге мне понадобится именно соединение по USB.

Но ради опенсурса было бы очень полезно. Потому как есть либо HAL (те ещё индусы), либо libopencm3 (лучше, но серию L до конца не поддреживают).

Просто среди эмбедщиков крайне мало тех, кто вообще знает про свободный код и открытые знания.

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

я так вобще узнал про bit banding только из тем ассемблера. стал читать его темы и наткнулся на псевдоборожелателей которые ему пытались помочь как бы. а когда вчитался !!! то мать честная!!! короч ребята давайте удачки вам. я лушче схожу в другие темы. может там люди еще остались.

Даже маленькие дети врут лучше тебя.

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

я предоставил

Неправда, вы просто начали обзывать человека.

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

Но ради опенсурса было бы очень полезно. Потому как есть либо HAL (те ещё индусы)

Не надо про HAL, а то я не удержусь и начну на них ругаться. И на разработчиков аппаратного USB в stm-ках до кучи. Некоторые вещи там настолько криво сделаны, что захочешь не придумаешь.

А вот USB, как ни странно, особого отторжения не вызывает. Нелогичные решения, конечно, есть, но тут как раз объяснимо, да и не слишком мешает. Например, необходимость энумерации (это оправдано для топологии «шина», но у нас-то «дерево») или 16-битные VID, PID.

Неправда, вы просто начали обзывать человека.

Вы заметили, как у него скачет настроение? То унижается и умоляет хоть о какой-нибудь подачке, то обвиняет всех окружающих в некомпетентности, то еще чего. Может, это болезнь какая?

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

Кажется, @far_tuna.

Вообще-то можно попросить дамп БД, конвертировать его в какой-то удобный для скв формат (гит или ямл) и склепать статический сайт на гитхабе. Добавление будет путём принятия пулл-реквестов.

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

То унижается и умоляет хоть о какой-нибудь подачке

А пруфы будут?

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

необходимость энумерации (это оправдано для топологии «шина», но у нас-то «дерево») или 16-битные VID, PID.

вау! разговоры достоные Development) а то все хи-хи да ха-ха. только вот я не уверен что вы понимаете о чем говорите. скорее это не осознаные умные слова.

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

вау! разговоры достоные Development) а то все хи-хи да ха-ха. только вот я не уверен что вы понимаете о чем говорите. скорее это не осознаные умные слова.

Какое из слов тебе непонятно?

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

Во как... а что вы не напомните им про конкурсы на лучшие мемы? ЯЗБ! это гордость всего форума! ЯЗБ. Еще хотели авторство оформить на это. Типа очень круто получилось зашифровать Я ЗА БАН в трех буквах. Это нормально? это достойно Development? МеГАТЬ светодиодами стремно а выдумывать такую чушь что подстать детям считается пиком интеллектуального развития. мне стыдно что вы окончательно одурели от гордыни и убиваете любые зачатки чего-то нового. если по-русски то вы просто eбнyлись и вам никто не может об этом сказать или не хочет.

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

А откуда ещё могли узнать? Из картинки в руководстве по используемому Cortex’у?

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

alysnix ★★★
()
Последнее исправление: alysnix (всего исправлений: 1)
Ответ на: комментарий от anonymous

… МеГАТЬ светодиодами стремно а выдумывать такую чушь что подстать детям считается пиком интеллектуального развития.

МЕГАТЬ - термин @Assembler.
Вы его треды не читали.
Вот в них действительно ЧСВ на ВЫСОТЕ.
Дети, послушливые, а этот «ребеночек» ни кого не слушает …
Сарказм по отношению к @Assembler вовсе не от того, что кто-то developer, а он начинающий … На ЛОР таких ДЕТОЧЕК

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

собственно как и гореDevelopment.

Согласен, суждение было однобоко.
На ЛОР бывают посты начинающих, которым помогают без всякой критики.
А вот тем кто мануалы не читает, … говорят - «Почитай мануал» …

Но они начинают возмущаться и говорить - «вы не хотите помогать».

Примером того является ТС и его друг …
От них

ОДНА РУГНЯ
anonymous
()
Ответ на: комментарий от anonymous

и ты животное невечное. и когда ты падаль сдохнешь то на лоре в новостях напишут заметку как всегда тут происходит. эта заметка начнется с лицемерной скорби, котора исчезнет уже на 10 посте и прощание превратится в бурный срач на тему что лучше intel или amd.

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

ОДНА РУГНЯ

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

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

и ты животное невечное. и когда ты падаль сдохнешь

Речь шла о том, чтобы тред удалить, а не о том что кому-то смерти желал.

В этом треде одна ругня …

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