Easyelectronics.ru • Просмотр темы - Что посоветуете почитать о программировании на регистрах?

Easyelectronics.ru

Электроника для всех
Текущее время: 15 авг 2018, 05:59

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 12:46 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
cheblin писал(а):
Цитата:
китайские исходники, у вас никогда не возникало желания

возникает желание поставить, если ещё не стоит, в хром плагин

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 12:58 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2098
evsi писал(а):
. Но если код (хотя бы потенциально) будет читать кто-либо еще,.

Ну, с высоты своей колокольни - я в этом плане эгоист :) "проблемы индейцев" меня не беспокоят. Я не пишу кода для кого-либо за пределами своего круга, я делаю готовые железки. И даже если слить с чипа прошивку, комменты, как вы знаете, в прошивке не сохраняются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 13:17 
Заглядывает иногда

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 102
Откуда: Киев
Oxford От ARR тоже нужно отнимать единицу.

Писать только на регистрах, а то у них был вначале SPL, потом HAL, а теперь LL API. Учитывая что вебинары у них ведут непонятные индусы, то и эти либы явно они же и писали, у китаез код лучше...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 13:21 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2527
Откуда: КЧР, поселок Нижний Архыз
evsi писал(а):
на другом компе или устройстве вместо текста будут крокозябры.

Для этого случая есть enconv. И насрать!
А хрюникодофилы — это вообще какие-то нелюди…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 13:25 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
Eddy_Em писал(а):
Для этого случая есть enconv. И насрать!

Удачи в поиске enconv на каком-нибудь айпаде.
Eddy_Em писал(а):
А хрюникодофилы — это вообще какие-то нелюди…

"Хрюникодофилы" это любители кои-8 и прочих нестандартных извращений вроде CP1251? Да, это точно нелюди.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 13:33 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2527
Откуда: КЧР, поселок Нижний Архыз
evsi писал(а):
Удачи в поиске enconv на каком-нибудь айпаде.

Гомосекам он не нужен: они должны страдать.
Eddy_Em писал(а):
"Хрюникодофилы" это любители кои-8 и прочих нестандартных извращений вроде CP1251?

С логикой у вас, батенька, совсем плохо...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 13:50 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
Eddy_Em писал(а):
Гомосекам он не нужен: они должны страдать.

Так вы же и будете страдать в этой ситуации. Вам, конечно, виднее насчет вашей ориентации...
Eddy_Em писал(а):
С логикой у вас, батенька, совсем плохо...

Может и так, но не вам судить - у вас с логикой куда хуже, чем у меня :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 14:28 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3480
Откуда: Кемеровская область, Киселевск
MasterElectric писал(а):
Oxford От ARR тоже нужно отнимать единицу.


Это где такое написано?

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 14:40 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4639
Цитата:
что там гуглотранслейт напереводил, или сделать реверс…

У меня было ещё веселее.
Имея source BIOS AWARD (полноценный, компилируемый), я потратил уйму времени. А кончилось тем, что я разобрал прошивку и разбирал бинарник sourcer 'ом. Иды тогда ещё небыло.
Так что, не в комментах счастье.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 16:07 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3480
Откуда: Кемеровская область, Киселевск
Комменты больше для начинающих наших Русских так бы вообще не писал.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 16:26 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 24 июл 2016, 00:07
Сообщения: 104
Oxford писал(а):
Это где такое написано?

Под рукой рефман на F030. ARR = 0x36(54 в dec). Как видите, переполнение произойдёт уже после интервала тика, то есть всего 55 раз. Так что -1.


Вложения:
F030.png
F030.png [ 20.96 Кб | Просмотров: 452 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 16:55 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3480
Откуда: Кемеровская область, Киселевск
0 не работает, так как Герц это два полупериода.
Чтобы вывести частоту кратную нужно записать
TIM3->PSC = 1000 - 1;
TIM3->ARR = 1;
TIM3->CCR4 = 1;
Ровно 24 кгц выведит, при тактовой 48мгц

Докажите обратное.

_________________
RADIOWOLF.RU


Последний раз редактировалось Oxford 07 июн 2018, 17:16, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 16:59 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 1860
Все таки запомнить "наизусть" все названия регистров и флагов достаточно сложно.
Чем плох
Show ll driver?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:20 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3480
Откуда: Кемеровская область, Киселевск
Pingvin писал(а):
Все таки запомнить "наизусть" все названия регистров и флагов достаточно сложно.
Чем плох

Харош уже эти портянки из говнолиб постить. )))

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:23 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
Pingvin писал(а):
Все таки запомнить "наизусть" все названия регистров и флагов достаточно сложно.
Чем плох

На вскидку: структура занимает место в памяти (хотя она, по сути, не нужна). Вместо const (как в приведеном коде) лучше использовать constexpr.

P.S. на досуге советую посмотреть libstm32pp и modm, там это иначе решено.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:27 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 1860
evsi писал(а):
Pingvin писал(а):
Все таки запомнить "наизусть" все названия регистров и флагов достаточно сложно.
Чем плох

На вскидку: структура занимает место в памяти (хотя она, по сути, не нужна). Вместо const (как в приведеном коде) лучше использовать constexpr.

P.S. на досуге советую посмотреть libstm32pp и modm, там это иначе решено.



А где тут структуры?
LL - как раз обёртка на уровне "дерни бит".
И скорее всего через макросы разворачивается в те же самые регистры.

P.S. За ссылочки - спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:35 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2098
Опять вы спорите о фломастерах


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:48 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
Pingvin писал(а):
А где тут структуры?


class LEDDriver это структура. А по стандарту она занимает минимум 1 байт. Вроде gcc умеет делать структуры нулевого размера, но это не стандартно, следовательно полагаться на это не стоит.

Pingvin писал(а):
LL - как раз обёртка на уровне "дерни бит".
И скорее всего через макросы разворачивается в те же самые регистры.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:53 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 601
Pingvin писал(а):
Чем плох ll driver?

Во-первых, __HAL_RCC_GPIOC_IS_CLK_ENABLED(), как следует из названия, ничего не включает, а проверяет. Во-вторых, один из недостатков подобных классов состоит в том, что если методы явно не объявлены как alwais_inline, то в дебаге инлайнинга не будет и даже самые мелкие функции будут вызываться, что может существенно увеличивать размер бинарника. Т.е. будет вызов конструктора внутри которого три вызова LL функций каждой из которых передается по 3 параметра. А еще LL_GPIO_TogglePin написан криво и не всегда работает, была недавно тема с глюком вызванным именно этой функцией.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:58 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 3480
Откуда: Кемеровская область, Киселевск
оптимизация им не нужна.

_________________
RADIOWOLF.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 17:58 
Старожил
Аватара пользователя

Зарегистрирован: 23 сен 2012, 20:35
Сообщения: 1897
Reflector писал(а):
Во-вторых, один из недостатков подобных классов состоит в том, что если методы явно не объявлены как alwais_inline, то в дебаге инлайнинга не будет и даже самые мелкие функции будут вызываться, что может существенно увеличивать размер бинарника.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 18:01 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 1860
evsi писал(а):
Pingvin писал(а):
А где тут структуры?


class LEDDriver это структура. А по стандарту она занимает минимум 1 байт. Вроде gcc умеет делать структуры нулевого размера, но это не стандартно, следовательно полагаться на это не стоит.

Pingvin писал(а):
LL - как раз обёртка на уровне "дерни бит".
И скорее всего через макросы разворачивается в те же самые регистры.

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


Я пример привел для LL (его использования), а не класса.
LL в данном примере не использует структуры.

Про плюсы я ничего не говорил плохого - как раз смотрю libstm32pp - как там все организовано.


Последний раз редактировалось Pingvin 07 июн 2018, 18:06, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 18:06 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 601
evsi писал(а):
Зависит от того, что короче - вызов метода или код внутри самих методов. Если второе, то код буде раздуваться, если первое - уменьшаться.

Все LL функции из того класса пишут в один регистр, естественно инлайнить эффективнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 18:12 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 2527
Откуда: КЧР, поселок Нижний Архыз
Pingvin писал(а):
Все таки запомнить "наизусть" все названия регистров и флагов достаточно сложно.

А кто их наизусть запоминает? Даташит же с RM есть!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что посоветуете почитать о программировании на регистрах?
СообщениеДобавлено: 07 июн 2018, 18:56 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 601
Oxford писал(а):
0 не работает, так как Герц это два полупериода.
Чтобы вывести частоту кратную нужно записать
TIM3->PSC = 1000 - 1;
TIM3->ARR = 1;
TIM3->CCR4 = 1;
Ровно 24 кгц выведит, при тактовой 48мгц

Докажите обратное.

Это плохой пример, нужно брать значения побольше:
Код:
Timer2 tim;
tim.init(1000 - 1, 10 - 1); // PSC, ARR

PerfCounter pc;
pc.start();

tim.enable();
while(!tim.isInterruptReady<TimItf::Update>()) {}

auto elapsed = pc.getElapsedTime();
rtt.printf("%i\n", elapsed);

и получаем 10032.

Для совсем неверующих:
Show


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB