Jump to content

    

Darth Vader

Участник
  • Content Count

    312
  • Joined

Community Reputation

0 Обычный

About Darth Vader

  • Rank
    Местный

Recent Profile Visitors

1224 profile views
  1. Для аппаратной версии 8 это последняя прошивка. Новей нет и не будет. Выход - покупать новый, версии 9 и новей (какая там сейчас последняя, кажется 11).
  2. Такое же, но с одним нюансом. const-метод не должен менять никаких данных класса, в том числе и статических. Да, они (статические данные класса) не принадлежат конкретному объекту (экземпляру) класса, они общие для них всех. Но это не исключает их из данных класса. Поэтому статический метод, изменяющий статические данные класса, не может считаться константным методом. Я так понимаю.
  3. Кто объяснит, почему статический метод класса одновременно не может быть константным? В моем понимании, это независимые и не противаречащие друг другу вещи. Как теплое и мягкое. Они сообщают компилятору и программисту разную информацию, говорят о разных вещах. Но применять их вместе почему-то нельзя... // Объявление метода в классе: static void foo() const; // компилятор выдает ошибку на const
  4. Все это до тех пор, пока ваша военка относится к 3-й группе стратегической значимости (ПП 672-40). Как только будет 2 или 1 - никакой импорт не обоснуете. Будете делать только из того, что есть в "Перечне ЭКБ...", и без отличительного знака "*".
  5. Это называется импортозамещение Для размышления, почему у нас всё именно так, как есть.
  6. Все зависит от ТЗ на разработку изделия. Если заказчик в ТЗ явно прописал выбор ЭКБ только из межотраслевого ограничительного перечня (сейчас это "Перечень ЭКБ, разрешенной к применению...", до 2015 года был МОП 44.001), то конечно же 1921ВК028/035. Никакого выбора из проверенных временем иностранных микросхем у него не будет.
  7. Через отладчик, типа J-link/ST-link/Ulink и т.п. Если, конечно, на вашей плате выведены выводы отладочного интерфейса JTAG/SWD.
  8. А это что? Секретная документация? С приёмкой ВП - без подписи вашего начальника ВП её не продадут. Это общее правило продажи продукции категории качества ВП/ОС/ОСМ.
  9. Вектор его использовал в ряде своих разработок. Например тут. У них на сайте где-то статья лежит о том, как они тестировали инженерные образцы этого МК. А у НИИЭТ на форуме есть раздел про него. Можно там многое почитать.
  10. Вы сами, а не я и никто другой написали это: "...а аргумент как - никто кроме функции её не поменяет." Это относилось к аргументу функции, объявленному, как const char *p. А теперь не понимаете, зачем это надо? Что вы имели ввиду этой фразой?
  11. Вот это всё к чему. Этим вы говорите следующее: 1. Объявление переменной как volatile char A значит, что А может поменяться в любой момент сама. 2. Объявление функции Foo(const char *p) говорит, что никто кроме самой функции Foo не изменит объект (*р). С первым согласен, не возражаю. А вот второе весьма сомнительно. Ни в одном найденном мной источнике не дается никаких гарантий неизменности объекта (*р) вне пределов тела функции Foo. Зато гарантируется, что функция его не изменит. Т.е. выражение (*р) не будет встречаться в теле функции слева от оператора присваивания. И компилятор проследит за этим. Если программист напишет внутри функции, что-то типа *р = 0х20; компилятор обязуется выдать на это ошибку. Об этом говорил jcxz, на это давал ссылку я.
  12. А если размещает константы именно во флеше, тогда что? Ошибка? Предупреждение? В моем примере константа Space как раз и размещается во флеше. Можно убедиться в этом, открыв .map-файл. А переменная Symb в ОЗУ. Предупреждений и ошибок нет. Это значит, что функция не ждет строго аргумента типа const char*. Она вполне примет аргумент типа char*. Т.е. функции не важно, является ли объект, адресуемый указателем, константой или переменной. Она будет одинаково работать с ними обоими. Т.е. квалификатор const, применительно к типу аргумента функции-указателю, не требует обязательной константности от объекта, адресуемого этим указателем при вызове функци. Он всего лишь гарантирует отсутствие изменений объекта по указателю на него внутри тела функции. Не более того. Это согласуется с тем, что говорил jcxz ранее, и со статьёй, на которую я приводил ссылку.
  13. Этой функции можно передать указатель на не константу, и не будет ни предупреждений ни ошибок при компиляции: С чего бы это, по-вашему? Т.е. компилятор не требует передавать в функцию указатель на константу. И не видит никаких ошибок в коде. Хотя тип аргумента функции объявлен как указатель на константу. Как вы это объясните?
  14. Т.е. таково ваше мнение. Я понял и принял к сведению. А тогда как быть с мнением jcxz, что это значит, что функция гарантирует не изменять объект, адресуемый указателем р, который передан ей в качестве аргумента? Оно, по-вашему, ошибочное или нет? Вы с этим согласны или нет?