Jump to content

    

xvr

Свой
  • Content Count

    3122
  • Joined

  • Last visited

Community Reputation

0 Обычный

About xvr

  • Rank
    Гуру
  • Birthday 06/29/1967

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

5811 profile views
  1. А может пришпилить эту тему в шапке форуме? Очень полезные куски кода тут пробегали, многим может пригодится
  2. Странный вопрос. Кто должен лучше знать, нужно изолировать вашу измеряемую схему (частью которой является шунт) от бизнесс логики или нет?
  3. Поменяется. Как тут уже замечали компилятор может заинлайнить вызовы f1(), f2() и т.д. В результате у вас получится кусок кода, где происходит массовое обращение к вашей volatile переменной (причём как из основного кода, так и из прерываний). Более того, если у вас программа собирается с LTO оптимизацией (как это называется в gcc), то компилятор обязательно это всё заинлайнит, причём даже из других единиц компиляции.
  4. Можно попробовать поиграться с препроцессором, но могут появиться 'мусорные' массивы (зависит от компилятора) Основная идея - символы собираются в файле в виде набора макросов, например так (пусть файл называется def.file.inc): DEF(BigCharSpace, bcrx_32, 0) DEF(BigChar0, bcrx_11_10_11, bcrx_9_14_9, bcrx_7_18_7, bcrx_6_20_6, bcrx_5_22_5, bcrx_4_8_8_8_4, bcrx_3_7_12_7_3, bcrx_3_6_14_6_4, bcrx_2_6_16_6_2, bcrx_2_5_18_5_2, bcrx_1_6_18_6_1, bcrx_1_5_20_5_1, 25, bcrx_1_6_18_6_1, bcrx_2_5_18_5_2, bcrx_2_6_16_6_2, bcrx_3_6_14_6_4, bcrx_3_7_12_7_3, bcrx_4_8_8_8_4, bcrx_5_22_5, bcrx_6_20_6, bcrx_7_18_7, bcrx_9_14_9, bcrx_11_10_11, 0) Потом определяете макрос DEF и делаете #include "def.file.inc" #define DEF(name, ...) static char DummyArray##name[] = {__VA_ARGS__}; static const int Size##name = sizeof(DummyArray##name); #include "def.file.inc" #undef DEF static const struct { #define DEF(name, ...) uint8_t name[Size##name]; #include "def.file.inc" } BigCharIndx; ... ну и т.д.
  5. Почитайте про отличия 2х типов присваивания: '=' и '<=' Вопрос отпадёт сам собой
  6. Элементарно - постите схему сюда с вопросом 'помогите разобраться'. Далее вам на 3х страницах рассказывают о кривизне схемы, с периодическими возгласами 'ну кто так рисует!'. К 4й странице кто нибудь из местных корифеев не выдерживает и перерисовывает схему в нормальном виде. Вуаля!
  7. Была бы схема, а так очень сложно оценить перспективность
  8. Неа, это совсем другой язык. Между прочим сам bluespec предлагает 2 линейки RISC-V ядер, написанных на BSV https://bluespec.com/compare-cores
  9. Ещё есть Bluespec SV http://forum.bluespec.com/viewtopic.php?t=3 http://wiki.bluespec.com/ (http://wiki.bluespec.com/Home/multiplier-example - пример) https://www.cl.cam.ac.uk/~djg11/wwwhpr/toy-bluespec-compiler.html
  10. А почему бы не взять готовый? О того же Meanwell например (PSD-30A-05 скажем)
  11. IMHO сброс МК чистит не все регистры. Включение/выключение питания - все. Возможно boot оставил что то в UART. Попробуйте явно его отключить (и всё остальное на всякий случай :)
  12. Угу, оно самое
  13. Посмотрите в проекте настройки уровней предупреждений. Судя по всему у вас стоит максимальный + 'трактовать предупреждения как ошибки' ( 'some enum values are not handled in this switch statement' должно быть warning'ом, это не ошибка)
  14. Ну это не факт - вот AD делает на честные 24 разряда, и без оговорок. Почему бы другим 12 разряда не освоить?