STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

А потом идёт сравнение int с символом.

Вообще, лично вам можно любые типы использовать. А вот новичкам лучше дурные советы не давать.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

Не мелочитесь спорами со мной. Спорьте сразу с Керниганом:

Код: Выделить всё

#include <stdio.h>

#define IN  1 /* inside a word */
#define OUT 0 /* outside a word */

/* count lines, words, and characters in input */
main()
{
  int c, nl, nw, nc, state;

  state = OUT;
  nl = nw = nc = 0;
  while ((c = getchar()) != EOF) {
    ++nc;
    if (c == '\n')
      ++nl;
    if (c == ' ' || c == '\n' || c = '\t')
      state = OUT;
    else if (state == OUT) {
      state = IN;
      ++nw;
    }
  }

  printf("%d %d %d\n", nl, nw, nc);
}
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Эта по нынешним меркам глупость была написана в прошлом веке. В то время когда Ричи пропустил эту хрень ещё не стоял так остро вопрос разрядности стандартных типов. А потом люди придумали stdint.h, size_t, auto, nullptr и т.д. Если вы хотите оставаться в прошлом веке, то это ваш выбор, но не учите плохому других.

Сейчас компиляторы стали намного умнее и чем точнее вы опишете типы данных, тем оптимальнее код они сделают. И не надо доказывать, что в данном случае это не влияет. Сегодня не повлияет, а завтра с таким подходом может и боком выйти.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3390329#p3390329"]Эта по нынешним меркам глупость была написана в прошлом веке.[/uquote]
Ни секунды не сомневался, что если потребуется, вы и мэтров станете валить не задумываясь. Но все-таки интересно, я что-то пропустил и в этом веке запретили int сравнивать с символом? Не поделитесь, откуда вы эти ваши откровения высасываете?

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

Окромя того, что указывал вам на вашу ерунду, более никого и никак не учил. Вы о чем?

Сегодня не повлияет, а завтра с таким подходом может и боком выйти.

Вам бы практичнее было за свой подход переживать. Не хотите заняться?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Я дал товарищу полезные рекомендации. Контроль размерности типов должен быть в подсознании у современного программиста, а у эмбеддера особенно. Хотите использовать int, я же не запрещаю, используйте. Не понимаю, чего вы так возбудились, опять хамить начинаете. Пятница что ли?
jmp_eax
Родился
Сообщения: 17
Зарегистрирован: Вс янв 15, 2017 10:21:13

Re: STM32 новичку в ARM что к чему

Сообщение jmp_eax »

А на поверку бодрейт - 4266. К сожалению осциллографа пока под рукой нет, смотрел под отладчиком, платка с HSE 8Mhz.
СпойлерИзображение
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

У вас проц от кварца работает. Либо BRR пересчитайте, либо проц на 72 МГц включите.
jmp_eax
Родился
Сообщения: 17
Зарегистрирован: Вс янв 15, 2017 10:21:13

Re: STM32 новичку в ARM что к чему

Сообщение jmp_eax »

Решено, всем спасибо. :) Пересчитал BRR. Буду курить доки :tea:
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3390488#p3390488"]Я дал товарищу полезные рекомендации.[/uquote]
Какие это еще полезные? Насчет того, что символьную константу нельзя с переменной int сравнивать? Так это совет из разряда "стыд и позор", прямо указывающий на незнание вами основ языка.

Контроль размерности типов должен быть в подсознании у современного программиста,

Лозунги здесь вряд ли смогут помочь. Средствами языка лучше пользоваться осознанно, а не на уровне подсознания или наития. Тогда и Кернигана анафеме не придется предавать.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="a5021",url="/forum/viewtopic.php?p=3391125#p3391125"]Какие это еще полезные?[/uquote]Почитайте мои посты, я дал точный диагноз сразу.
Раз и два.

[uquote="a5021",url="/forum/viewtopic.php?p=3391125#p3391125"]Насчет того, что символьную константу нельзя с переменной int сравнивать?[/uquote]Это ваши домыслы. Ничего подобного я не говорил, читайте внимательней. Я говорил, что будет приведение типов, а оно в общем случае не бесплатно. В данном случае ничего лишнего не будет, а если 8-битный проц взять?

PS: Кстати, что будет если включить контроль чётности? Боюсь, что тут вам даже Страуструп не поможет.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3391144#p3391144"]Почитайте мои посты, я дал точный диагноз сразу.[/uquote]
Я в обсуждении конкретно этого нюанса не участвовал, так нафига, спрашивается, стрелки переводить? Отборную чепуху вы понесли, когда вам примерещилось, что типы использовались неправильно. Об этом разговор.

Это ваши домыслы. Ничего подобного я не говорил, читайте внимательней.

Раз и спрыгнул. Вроде и не было ничего. И Кернигана вроде, как и не поносил. Молодец, фигли.

Я говорил, что будет приведение типов, а оно в общем случае не бесплатно.

А вроде ни про какие "общие случаи" речь не шла? Здесь конкретный случай, о нем и говорим. Сравнение полностью корректное, каноническое, а не "Ричи пропустил эту хрень". Ваше счастье, что вы не понимаете, насколько глупо с такими утверждениями смотритесь.

В данном случае ничего лишнего не будет, а если 8-битный проц взять?

К чему эти полумеры? Четырехбитный берите.

Кстати, что будет если включить контроль чётности? Боюсь, что тут вам даже Страуструп не поможет.

Вы следите за темой обсуждения или речь из вас льется отдельно, произвольным образом?
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="a5021",url="/forum/viewtopic.php?p=3391211#p3391211"]Я в обсуждении конкретно этого нюанса не участвовал[/uquote]
Ну и чего тогда влезаете? Я рекомендации для конкретного случая и дал. И они все в точку. Скорость не та и регистр надо до 8 бит резать, чтобы бит чётности откинуть.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3391230#p3391230"]Ну и чего тогда влезаете?[/uquote]
Во-первых, я никуда не влезаю. Это публичный форум, а не ваш личный огород.

Я рекомендации для конкретного случая и дал. И они все в точку. Скорость не та и регистр надо до 8 бит резать, чтобы бит чётности откинуть.

Еще раз, медленно и печально: мои возражения касались ваших рецептов "подсознательного" применения типов. Ошибочных и несостоятельных.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="a5021",url="/forum/viewtopic.php?p=3391211#p3391211"]К чему эти полумеры? Четырехбитный берите.[/uquote]Надо будет - возьму.
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

int - это сколько бит ? 16 ? 32 ? 64 ? А при портировании кода ? Или передаче кода другому/от другого программиста ? stdint не зря придумали и все открытые проекты, с которыми мне приходилось работать, использовали int16_t, int32_t, int64_t, size_t. В эмбедде stdint является негласным стандартом. Когда приходится работать с чужим кодом, первым делом заменяю нативные типы на stdint. Кстати stdint пришел к нам вместе с стандартом C99, хотя многие до сих пор следуют стандарту C89.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Ну вот, ещё один Кернигана ни во что не ставит. Ричи на тебя нет! :)))
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

Срауструп регулярно стандарты на свой C++ обновляет и не чувствует себя ущемленным 8)

Если бы в наше время K&R переиздавали бы книгу по Си, я уверен, что в книге была бы рекомендация всегда и везде использовать stdint.
Иван Сусанин - первый полупроводник :solder:
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: STM32 новичку в ARM что к чему

Сообщение a5021 »

[uquote="Myp3ik",url="/forum/viewtopic.php?p=3391885#p3391885"]А при портировании кода ?[/uquote]
А есть у вас в памяти свежий пример, где ваши слова выглядели бы особо убедительно? Какой-нибудь особо тяжелый случай, где только stdint и спас от верного краха. Из своей практики мне почему-то совсем ничего не вспоминается. По моим ощущениям, та же endianness больше неудобств создает, если мы взялись говорить про портирование между разными платформами.

Если бы в наше время K&R переиздавали бы книгу по Си, я уверен, что в книге была бы рекомендация всегда и везде использовать stdint.

А я не уверен. Что делать будем?

Понимаете, ваша уверенность -- это просто офигенно, но когда я открываю какой-нибудь stdio.h от только что вышедшей версии иара или кейла, то наблюдаю, что основной тип там по прежнему int. То ли разработчики не совсем разделяют вашей уверенности по поводу намерений K&R, то ли еще что.
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

CMSIS от ARM откройте.
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Уууу, как всё запущено. Кто же позволит менять stdio.h, если язык должен иметь совместимость. Для снятия проблемы разрядности стандартных типов придумали stdint.h. Кто-то явно остался в прошлом веке. Посмотрите библиотеки любого производителя, да тот же вышеупомянутый CMSIS.
Ответить

Вернуться в «ARM»