Перейти к содержанию
    

esaulenka

Свой
  • Постов

    1 459
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Сообщения, опубликованные esaulenka


  1. Здравствуйте.

    Скажите, ни у кого не возникало задачи сделать софт-таймеры?

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

     

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

    Заполнение этого списка, перенастройка таймеров и т.д. - динамически, из остальных задач.

    По сравнению с FreeRTOS надо подумать и применить шаблонную магию, чтобы коллбэком мог быть метод произвольного класса.

     

    PS в mbed используют другой вариант API. Выглядит симпатичнее, но не совсем понятно, как оно внутри устроено: https://github.com/ARMmbed/mbed-os/blob/c12b433026beae5b3b769c27941bc6d7fe5d4b27/rtos/RtosTimer.h#L58

     

  2. 15 hours ago, jcxz said:

    IAR для ARM

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

     

    15 hours ago, uni said:

    В первой pdf выдаёт три одинаковых, во второй что-то сам сомневаюсь уже.

    Не сомневайтесь :-)

    код из сообщения "Вот теперь больше на правду похоже. Переписал немного" выдаёт следующее:

    GetCrc16Table = D641
    GetCrc16Cycle = 4B37
    GetCrc16Simple = 4B37

    https://godbolt.org/z/urjyup

     

  3. Скажите, а код в пдф-ке выдаёт три одинаковых результата?

    Я не умею в уме "переворачивать" полином, но какое-то подозрение, что код-таки разный.

     

    Спасибо за идею.

    Надо б допилить до макроса автовычисления констант, и можно смело применять там, где цикл по битам делать долго, а места под таблицу - жалко.

  4. 1 minute ago, AHTOXA said:

    собрать свой собственный armclang

    Конкретно про этот случай мне Рабинович напел, но у арма на сайте написано, что они совместили замечательный компилятор шланг и их супер-оптимизированные библиотеки.

    Так что, может быть, не сильно-то он и отличается.

     

    Но, повторюсь, сам я не проверял - ни платную версию, ни бесплатную (я даже не знаю, умеют ли prebuilt версии с https://clang.llvm.org/ собирать под мелко-армы).

  5. 2 hours ago, Forger said:

    что там внутри, не знаю, но коли платный, то действительно получается что это их компилятор с нуля, но совместимый с GCC

    Я понимаю, что мы в России живём, и знание лицензионных тонкостей тут э-э... не востребовано, но, всё-таки, бесплатный  и свободный - вещи разные.

    Например, микрочип вполне легально берёт деньги за свой XC32, который, по сути, GCC (но при этом не сильно препятствует желающим собрать свой собственный XC32 забесплатно).

     

    И, разумеется, компилятор с нуля сейчас никто не пишет. Даже АРМ. Это clang. Допиленный-улучшенный-сертифицированный, но...

  6. 14 hours ago, megajohn said:

    так что обязательно

    Под фразой "руками нажать BOOT" я имел в виду именно P2.10=LOW. Вручную, перед сбросом (сброс - тоже вручную).

     

    Ну и симптомы автора (в загрузчик попасть можно, но потом всё отваливается) говорят о нестабильности связи, а не о невозможности входа в загрузчик.

     

    Если это не какой-то хитрый загрузчик, мимикрирующий под штатный.

  7. On 1/13/2020 at 8:29 AM, megajohn said:

    Для FlashMagic нужно вывести P2.10 и Reset и завести на ноги DTR и RTS

    Необязательно, насколько я помню. Это несколько облегчает задачу (не надо руками нажимать BOOT и RESET), но работает и так. Проверял миллион лет назад на LPC2378.

     

    25 minutes ago, skripach said:

    Может жирные "поддяжки" на интерефейсе в боевой плате или ещё что-то.

    Вот-вот. Осциллографом на RX/TX сигнал посмотрите.

  8. 21 minutes ago, xvr said:

    Про билдер речь вообще не шла.

    Тут уже который день идёт разговор про VCL. Использовать VCL без компилятора от борланда/эмбаркадеро, мне кажется, ещё бОльшее безумие, чем собирать ими Qt ;-)

  9. 1 hour ago, xvr said:

    Тогда вам подойдут (наверное) контейнерные типы из Qt. QMap или QHash

    Это вы предлагаете Qt билдером собрать? Интересное занятие, конечно: в теории, можно значительно расширить познания потрохов как Qt, так и билдера.

     

    1 hour ago, AlexandrY said:

    Т.е. в QMap однозначно нельзя передать объект VCL реализованный  с использование ARC.

    То, что несовместимость VCL со всем остальным миром - это неоспоримое преимущество, мы уже поняли.

  10. On 12/30/2019 at 3:34 PM, masturbant said:

    OpenCellID дает ограниченное количество запросов - только 50 в сутки

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

     

    On 12/30/2019 at 3:34 PM, masturbant said:

    можно ... получить тот же результат как от Google

    Ну только своих приборов у вас будет тыщща. Или целых десять тысяч.

    А в гугл миллиард андроидов данные сливает...

  11. 11 hours ago, AlexandrY said:

    Мне помогать не надо. Вопрос был пятиминутный.

    "STL за пять минут" - это покруче будет, чем "C++ за 21 день"! :-)

     

    11 hours ago, AlexandrY said:

    Потому что VCL

    ... г-но мамонта, криво-косо спортированное из дельфей в C++ builder. Имхо.

     

    11 hours ago, AlexandrY said:

    VCL поддерживает ARC, а STL нет

    Не являюсь экспертом по билдеру, но что-то мне кажется, что этот automatic reference counting - этакий std::shared_ptr, прибитый к TObject. Соответственно, std::vector из указателей на производные от TObject будет так же считать эти ссылки.

     

    11 hours ago, AlexandrY said:

    контейнеры все время копируют элементы

    Если это критично, пользуйтесь контейнерами из указателей. Впрочем, лично у меня программы почему-то не "всё время копируют", а ещё и модифицируют данные. Там и копия как-то к месту смотрится.

     

    11 hours ago, AlexandrY said:

     И эти вещи конечно не сравнимые.

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

  12. On 12/30/2019 at 9:00 PM, AlexandrY said:

    Одновременно ищу способ заменить классы коллекций Delphi, на которых раньше все было сделано

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

     

    А всем остальным может помочь вот такая шпаргалка: https://habr.com/ru/company/infopulse/blog/194726/

  13. 1 minute ago, DASM said:

    а там есть какой плагин для этого или визуально?

    Самый низкий уровень оно умеет: показывает PID-адрес-данные-контролька. А дальше - беда, пришлось USB in Nutshell вспоминать.

    Правда, у меня этот самый низкий уровень и глючил...

  14. Я, конечно, понимаю желание отстоять свою точку зрения, но мне почему-то кажется, что написать исходное выражение в две строчки (прочитать во временную переменную a, вычесть бэ) сильно проще, чем писать прагмы.

     

    Я уж не говорю о переносимости этих прагм...

  15. 2 minutes ago, razrab83 said:

    Что с того что указатели буфера в макросе будут считаны в произвольном порядке?

    Тут - очевидно, ничего. Осталось только объяснить этот конкретный случай компилятору.

     

    Вопрос, на самом деле, интересный. Я никогда активно не пользовался IAR'ом (только какие-то чужие проекты собрать), но с варнингом "два volatile'а в одном выражении" сталкивался. Вот только где, блин?..

  16. 2 hours ago, razrab83 said:

    в случае int c = a - b (см выше) - криминала нет, даже если есть ворнинг. (при условии, что int 4 байта и это 32-х битный проц). Какая разница в каком порядке а и бэ? Ну обратится сначала к "а", потом к "b" - или наоборот?

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

  17. 2 hours ago, Forger said:

    Нужно всего лишь подписаться на новости.

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

    У меня подозрение, что установщик не в курсе моего (триального) аккаунта. Куда логин-пароль вводить, я так и не понял...

     

    2 hours ago, AlexandrY said:

    PS. Кто не рекламирует - тот помалкивает. 

    Золотые слова. Жаль только, брёвна в своих глазах плохо видно...

     

  18. 43 minutes ago, Polaris said:

    в ATSAMC21 нельзя использовать PLL

    Мда. Пока не наступишь на эти грабли, и не догадаешься...

    А проблема документирована, на самом деле: http://ww1.microchip.com/downloads/en/DeviceDoc/80000740D.pdf 
    "The FDPLL96M exhibits high period jitter and is not suitable for accurate clocking."

    В новых ревизиях поправлено.

     

    Но насколько этот PLL inaccurate, ни атмел, ни микрочип не сознались...

  19. 3 hours ago, Eddy_Em said:

    Конечно.

    Конечно же, это не так.

    Правильный ответ "можно в некоторых сериях камней". Например, в F0, L0, L4, F3, F7. Ключевое слово для поиска в референс мануале - "Character match flag".

  20. Здравствуйте!

     

    Кто-нибудь пользуется сеггеровской отладочной консолью RTT ?

    Штука весьма удобная, но я никак не придумаю, как её нормально интегрировать в эклипс.

    Сеггеровская софтина при старте отладки запускает телнет-сервер, куда сыпятся все сообщения из контроллера. К этому серверу надо прицепиться телнет-клиентом. В принципе, телнет-клиент в эклипсе есть, но каждый раз соединяться после запуска отладки мне надоело.

     

    Про Segger RTT Viewer я в курсе (собственно, им и пользуюсь), но лишнее окно мешается...

  21. On 12/13/2019 at 8:09 PM, Polaris said:

    Как видно из скриншотов, выброс связан с искажение бита ACK

    Я правильно понимаю, что величина этого выброса - заметно больше 5 вольт? Проверьте ещё разик, что земли у всех участников соединены.

     

    On 12/13/2019 at 8:09 PM, Polaris said:

    но кто это может делать

    Попробуйте ткнуть осциллографом в TXD между контроллером и трансивером.

  22. 1 hour ago, Mysteo said:

    в регистре FLASH->SR в данный момент 0x00000A0  а это соответствует PGSERR и PGAERROR 

     почитал, что это значит, но почему возникает только после прошивки единожды пока не понял

    Подозреваю, это отладчик у вас недостаточно корректно работает. При старте программы эти ошибки есть?

    Самый простой способ - чистить эти ошибки перед инициализацией.

    А вообще - ST'шники могли бы чистить ошибки перед началом записи...

     

×
×
  • Создать...