-
Постов
1 454 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Весь контент esaulenka
-
FSMC: можно ли (и как) обойти ограничение
esaulenka ответил mihlit1 тема в ARM, 32bit
Показания расходятся. Такое подозрение, что дисплей не отпускает шину. Было б неплохо узнать, что именно за дисплей. Например, у ILI9481 есть chip select, и когда к нему нет обращений, этот чипселект должен быть в единице. Неправда. Он думает ровно то, что настроено в соответствующем банке памяти. -
FSMC: можно ли (и как) обойти ограничение
esaulenka ответил mihlit1 тема в ARM, 32bit
Сходу не вспомню, как сделать максимально устойчивую конфигурацию. Сам пользовался FSMC лет пять назад, приходилось разрисовывать всё на бумажке, чтобы состыковать даташит от ST с даташитом производителя RAM. С тех пор забылось всё... Дурацкий вопрос, кстати: вы проверяли (методом записи и последующего чтения) как именно данные портятся? Всегда одинаково? -
FSMC: можно ли (и как) обойти ограничение
esaulenka ответил mihlit1 тема в ARM, 32bit
Должно работать. Вероятно, у вас какие-то проблемы с целостностью сигналов. Показывайте разводку, может, тут чего насоветуют. Возможно, получится победить увеличением таймингов для памяти. Костыль, конечно, но уж как есть... -
К слову, именно такой синглтон, со статик объектом внутри функции, чуток избыточен. Там компилятор вставляет флажок, и при каждом обращении проверяет, нужно ли вызывать конструктор объекта. Если объявлять глобальную переменную, то она инициализируется в стартапе, и этой проверки не будет.
-
Чековый USB принтер и STM32
esaulenka ответил pnp_mechanic тема в Интерфейсы
Если аппарат один, поставить распбери. Если аппаратов много, договориться о поставках такого же STAR'а, но с ком-портом. Ну и договориться о предоставлении документации на их протокол. Потратил 30 секунд, гугл ничего подходящего не выдал... Скорее всего, там стандартный epson, но для презентеров-ретракторов-штрихкодов каждый производитель придумывает свои собственные расширения. UPD. вот, нашёл что-то: http://www.starmicronics.com/support/Mannualfolder/linemode_cm_en.pdf UPD2. https://community.st.com/s/question/0D50X00009XkaNSSAZ/usb-printer-class дорога полна приключений, но чего-то сверхординарного тут нет. -
Кажется, недолго ждать осталось: https://github.com/NationalSecurityAgency/ghidra/issues/24
-
Segger RTT странно работает
esaulenka ответил esaulenka тема в Cредства разработки для МК
Тут, я, кажется, соврал. В эклипсе я делал другой проект, хоть и довольно похожий. Починил методом отключения __WFI() в простое. Сейчас debug-сборка просто греет воздух и корректно печатает отладочные сообщения. Осталось разобраться, почему тот старый проект (с эклипсом) работает в т.ч. и с засыпанием ядра. В обоих случаях используется самый простой sleep mode, вся периферия продолжает работать. Процессор один и тот же STM32F105, без каких-то продвинутых энергосбережений... -
OpenOCD + NAND-Flash
esaulenka ответил Kozub тема в Отладочные платы
Ну это же интернет, ничего не пропадает бесследно! http://web.archive.org/web/20101110023925/http://samsung.promwad.com/wiki/boards/smdk6410/linux_installation -
FSMC: можно ли (и как) обойти ограничение
esaulenka ответил mihlit1 тема в ARM, 32bit
Вообще, задачка интересная, если задаться целью размять мозги и хорошенько разобраться с работой контроллера памяти. Сделать такой виртуальный банк, чтобы при чтении из него одновременно выполнялось чтение из SRAM и активизировалась запись в дисплей. Потребуется сколько-то мелкой логики, и, вероятно, какая-то матерь, чтобы реализовать необходимые задержки. Работу с памятью и дисплеем по-отдельности (в обычном режиме) также необходимо поддерживать. В память необходимо писать, а в дисплее, как минимум, устанавливать конфигурацию. При отсутствии цели развлечься поддерживаю стандартное решение с DMA. Соединил по инструкции, и готово. -
Segger RTT странно работает
esaulenka опубликовал тема в Cредства разработки для МК
Здравствуйте. Имеется связка QtCreator + arm-none-eabi-gcc. Для отладки использую сеггеровский gdb сервер и gdb из комплекта компилятора. Отладчиков проверял два: discovery, перешитый штатным образом в J-Link и старенький MT-Link. Собственно, проблема в том, что почему-то не работает сеггеровский терминал RTT. Сообщения высыпаются в консоль, только если приостановить отлаживаемую программу. Каких-либо настроек RTT со стороны хоста вроде б не предусмотрено. Куда рыть, не очень понятно... попробовать разные версии, что-ли... Но если поменять только QtCreator на Eclipse, оставив всё остальное, работать начинает нормально. -
Откуда это, не знаю, но есть https://www.h-schmidt.net/FloatConverter/IEEE754.html Даблы не умеет, но для флоатов периодически пригождается...
-
Помогите понять алгоритм записи в EEPROM
esaulenka ответил TOG тема в Программирование
Вы решили отреверсить всё, что под руку попадается? :-) Возможно, по табличке или какой-то хитрой формуле этот "параметр" сразу пересчитывается в какое-то значение, которое и используется в дальнейшей работе. Нужно больше экспериментов! -
В appnote (Application Note for FT5x16 CTPM) есть некие регистры ID_G_MAX_X/ID_G_MAX_Y. Не оно?
-
Не могу изменить фузы
esaulenka ответил muravei тема в MCS51, AVR, PIC, STM8, 8bit
Видать, заржавела шашка. Гугель подсказывает, что у этой тиньки помимо обычных фьюзов есть Fuse Extended Byte. Как его скормить в STK, разбираться Вам :-) -
Да. А можно отказаться, ничего особо полезного для статического анализа (разглядыванием исходников, без запуска в железе) оно не даёт. А вообще настоятельно советую Ghidra. Знать ассемблер всё равно потребуется, но в сильно меньших объемах. Ну и https://github.com/leveldown-security/SVD-Loader-Ghidra до комплекта.
-
> HAL_I2C_Slave_Receive Пожалуйста, читайте сообщения, на которые отвечаете. Авось, и смысл в ваших ответах появится... Очень часто из заголовка пакета можно понять, какой он длины. И очень часто писатели халов про это забывают... (ну оно и понятно - сразу низкоуровневый драйвер надо как-то "сцеплять" с протоколом).
-
Битовые поля, кто ж вас выдумал?
esaulenka ответил ViKo тема в Программирование
Это прямая цитата из статьи изиэлектроникса, которую написал @neiver. Вполне грамотный дядька, я б ему тоже поверил. Зря... Его там ниже поправили, но в самой статье ничего не поменялось. -
Битовые поля, кто ж вас выдумал?
esaulenka ответил ViKo тема в Программирование
Объясните, пожалуйста. Посмотрел код - вроде б всё правильно работает (избыточно, ну да ладно...). Я, правда, так никуда этот подход и не применял... -
С такой-то матерью удалось добиться от GCC (оптимизация -Os + LTO) вычислений адреса бит-банга для глобальной переменной (точнее, для элемента класса, экземпляр класса - единственный и глобальный) в момент компиляции. Атомарнее, если какой-то другой поток может менять другие биты в этой же переменной.
-
Судя по картинкам, исполняется код из RAM, а брекпоинты вы ставите во флеше. Либо что-то с ногами BOOT, либо что-то хитрое со скриптом линкера.
-
Здравствуйте. Скажите, ни у кого не возникало задачи сделать софт-таймеры? Уже не первый раз делаю что-то подобное в очередном проекте, хочется сделать унифицировано. Я это вижу по аналогии с FreeRTOS: отдельная задача, которая хранит в себе массив из n-цати структур. Структура состоит из таймера и коллбэка - по истечению таймера (один раз или периодически) вызывается коллбэк. Заполнение этого списка, перенастройка таймеров и т.д. - динамически, из остальных задач. По сравнению с FreeRTOS надо подумать и применить шаблонную магию, чтобы коллбэком мог быть метод произвольного класса. PS в mbed используют другой вариант API. Выглядит симпатичнее, но не совсем понятно, как оно внутри устроено: https://github.com/ARMmbed/mbed-os/blob/c12b433026beae5b3b769c27941bc6d7fe5d4b27/rtos/RtosTimer.h#L58
-
Ещё один метод расчёта CRC16
esaulenka ответил uni тема в Программирование
Если бы у рыб была шерсть, то там обязательно были бы блохи. Не сомневайтесь :-) код из сообщения "Вот теперь больше на правду похоже. Переписал немного" выдаёт следующее: GetCrc16Table = D641 GetCrc16Cycle = 4B37 GetCrc16Simple = 4B37 https://godbolt.org/z/urjyup- 71 ответ
-
- crc16
- crc-16/ccitt-false
-
(и ещё 1 )
C тегом:
-
Ещё один метод расчёта CRC16
esaulenka ответил uni тема в Программирование
Скажите, а код в пдф-ке выдаёт три одинаковых результата? Я не умею в уме "переворачивать" полином, но какое-то подозрение, что код-таки разный. Спасибо за идею. Надо б допилить до макроса автовычисления констант, и можно смело применять там, где цикл по битам делать долго, а места под таблицу - жалко.- 71 ответ
-
- crc16
- crc-16/ccitt-false
-
(и ещё 1 )
C тегом:
-
Инлайн ассемблер в ARMCLANG
esaulenka ответил ViKo тема в Программирование
Конкретно про этот случай мне Рабинович напел, но у арма на сайте написано, что они совместили замечательный компилятор шланг и их супер-оптимизированные библиотеки. Так что, может быть, не сильно-то он и отличается. Но, повторюсь, сам я не проверял - ни платную версию, ни бесплатную (я даже не знаю, умеют ли prebuilt версии с https://clang.llvm.org/ собирать под мелко-армы). -
Инлайн ассемблер в ARMCLANG
esaulenka ответил ViKo тема в Программирование
Я понимаю, что мы в России живём, и знание лицензионных тонкостей тут э-э... не востребовано, но, всё-таки, бесплатный и свободный - вещи разные. Например, микрочип вполне легально берёт деньги за свой XC32, который, по сути, GCC (но при этом не сильно препятствует желающим собрать свой собственный XC32 забесплатно). И, разумеется, компилятор с нуля сейчас никто не пишет. Даже АРМ. Это clang. Допиленный-улучшенный-сертифицированный, но...