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

kochevkv

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о kochevkv

  • Звание
    Местный
    Местный
  • День рождения 14.09.1982

Контакты

  • ICQ
    Array

Информация

  • Город
    Array

Посетители профиля

3 331 просмотр профиля
  1. С кучей все понятно - если используете (или вызываемые функции используют) динамическое выделение памяти (всякие malloc, calloc, realloc в си) то надо считать вручную где и сколько учитывая вложенность вызовов функций. Или при отладке когда там они вернут ошибку невозможности выделения блока памяти. Со стеком - ошибки от его переполнения ловить сложнее. Нескольких килобайт обычно хватает, если в своих функциях в стеке не выделять массивы и большие структуры. А так если бездумно и на ПК можно поймать в рекурсии переполнение стека. Признаком переполнения стека у меня было "самопроизвольное" (я так сначала посчитал) изменение значений глобальных переменных и структур
  2. Только при окружающей температуре 20 градусов температура самого чипа будет больше. 5 Вт на такую площадь - это не мало. Надо рассчитать или проверить вживую
  3. Да, собственно, его и читаю. Все равно непонятно. Ну, спасибо за содержательный ответ.
  4. imxrt1052 именование пинов

    Осваиваю сейчас новый модуль на imxrt1052. Примеры вполне понятны, но вот работа с настройкой портов мне не очень понятна. Что за система обозначений используется у них в доках? Например пин GPIO_SD_B0_03 - что такое B0 ? Ищу в документации, но пока не нашел. Или вот имя регистра IOMUXC_SW_MUX_CTL_PAD_GPIO_AD_B1_08 Что такое AD, B1. Ну 08 я так понял просто порядковый номер регистра /*! * @brief Sets the IOMUXC pin mux mode. * @note The first five parameters can be filled with the pin function ID macros. * * This is an example to set the PTA6 as the lpuart0_tx: * @code * IOMUXC_SetPinMux(IOMUXC_PTA6_LPUART0_TX, 0); * @endcode * * This is an example to set the PTA0 as GPIOA0: * @code * IOMUXC_SetPinMux(IOMUXC_PTA0_GPIOA0, 0); * @endcode * * @param muxRegister The pin mux register. * @param muxMode The pin mux mode. * @param inputRegister The select input register. * @param inputDaisy The input daisy. * @param configRegister The config register. * @param inputOnfield Software input on field. */ IOMUXC_SetPinMux( uint32_t muxRegister, uint32_t muxMode, uint32_t inputRegister, uint32_t inputDaisy, uint32_t configRegister, uint32_t inputOnfield ) { *( (volatile uint32_t *)muxRegister ) = IOMUXC_SW_MUX_CTL_PAD_MUX_MODE( muxMode ) | IOMUXC_SW_MUX_CTL_PAD_SION( inputOnfield ); if (inputRegister != 0UL) { *( (volatile uint32_t *)inputRegister ) = inputDaisy; } } Что за inputOnField? inputDaisy? Может есть хороший документ или статья в инете с расширенными пояснениями? Или вот вызов инлайн функции IOMUXC_SetPinConfig( IOMUXC_GPIO_B1_12_GPIO2_IO28, 0x017089U ); Может есть заголовочный файл где 0x017089U разбивается на что-то удобочитаемое в виде value1 | value2 | value3 ? Честно говоря, первый раз столкнулся с тем что такой непонятный подход к управлению выводами. STM32 зашел на "ура", а тут какая-то китайская грамота.
  5. Может есть у кого остатки на складах? Или готовы найти и продать? Если кто в теме, прошу совета по замене (ОЗУ 16..64 МБ, частота 500 МГц, встроенная флеш от 4 МБайт, интерфейс для дисплея от 16 бит цветности)
  6. imxrt 1052 питание usb

    Странная практика. Li-ion батареи 3,7 вольта выдают. Т.е. сразу отрезаем область применения. Ну или усложняем схему и увеличиваем потери энергии.
  7. imxrt 1052 питание usb

    Ну да. Что-то я не то говорю. Там немного другая история. Есть модуль forlinx fet1052. И они 5 В питания сделали. А старый на bf548 был 3,3. Не понял я зачем китайцы 5 В сделали. Подумал что решили запитать usb а остальное через понижающий преобразователь. В общем, вопрос к китайцам
  8. imxrt 1052 питание usb

    У меня не хост, а устройство. И, насколько я помню, в схемах с питанием контроллера 3,3 для режима хоста 5 В подавались обычно через верхний ключ управляемый 3,3 вольтовым контроллером. А вот для режима "устройство" не нужны 5 вольт. В даташите на этот контроллер написано однозначно - 5 В. Вот я и не понимаю зачем мне 5 В если у меня устройство, а не хост и зачем так ограничивать разработчика схемы 5-ю вольтами, если они мне не нужны.
  9. imxrt 1052 питание usb

    Вопрос такой. Почему в imxrt1052 питание usb 5V? Чем им 3,3 V не угодили? В stm32 хватало, а тут нет. В итоге имеем что модернизируемую с плату МК приходится переводить на 5V. При этом все остальное питается 3,3V. Ну не считая 1,8V для ядра, что типично для таких частот. Может все же можно подать 3,3V т.к. я неправильно читаю документацию?
  10. Если без заморочек для пользователя, то режим флешки и usb. Остальное уже сложнее. Прошивки отправлять любым способом в файле. Таким образом можно прошивать хоть в поле с телефона.
  11. Ну дерево то уже есть. Я только не понял как ускорить поиск. Т.е. есть объект с ID1 = 1. Есть несколько веток которые уже имеют ID1 и ID2. Ниже идет еще уровень с ID1, ID2 и ID3. Но чтобы найти следующий элемент на третьем уровне надо прочитать все записи в файле этого уровня пока не встретится нужная комбинация ID1 ID2 и ID3. Я сейчас пишу программу чтобы она объекту ID1 еще добавила номера записей для нижнеуровневых объектов. Т.е. пробежался по файлу один раз, а второй поиск уже по сохраненным индексам. И хотелось бы найти какой-то готовый движок, который это умел бы делать, автоматически обновлял индексы при удалении какой-либо записи или при изменении поля ID любой записи. Или вот еще реальная задача - выдать первое ID3 значение которого нет в объектах с заданными ID1 и ID2. Удалили мы объект третьего уровня и появился новый ID3 который освободился.
  12. Всем доброго дня 🙂 Есть некая самописная "типа" БД в проекте для микроконтроллера. Суть такая, что каждый тип записей хранится в своем файле и для чтения-записи какой-либо записи данного типа надо знать просто номер. Т.е. в каждом файле хранятся записи только одного размера. Сейчас появилась проблема, что работа с такой БД очень сильно замедляется при увеличении количества записей, т.к. поиск записи по значениям полей идет чисто последовательным способом, перебором то бишь. Сейчас пытаюсь написать код для индексации этих записей, т.е. так чтобы у объектов были прямые ссылки на номера всяких связанных объектов. Но чувствую что я изобретаю велосипед. Я слышал что на МК в проект на Си можно портировать SqlLite. Но я совсем чайник в работе с базами данных. Получится ли как-то "прикрутить" SqlLite или что-то подобное к такому способу хранения информации? Чтобы, например, выполнить поиск всех объектов с нужным значением поля и чтобы сделать индексацию для дальнейшего быстрого поиска.
  13. У STM32 есть ещё внутренний загрузчик-самопрошивальщик по DFU интерфейсу. Если есть USB в устройстве, то достаточно ещё сделать джампер на ногу конфигурирующую тип загрузчика и тогда всегда можно будет прошить устройство без программаторов типа ST-LINK.
  14. А не скажете какие минимальные требования к ОЗУ контроллера и сколько памяти кода требуется под это всё?
  15. Сначала хотели найти EMMC с последовательным интерфейсом и в корпусе SO-8 как NAND или NOR. По сути хотелось бы SD карту в корпусе SO-8 Но не нашлось такого. Либо многовыводный BGA, который у нас не любят совсем ну и платы под него многослойные надо, либо NAND в SO-8 но с вышеуказанными не решенными проблемами А она в Windows не поддерживается (?), а нужна ещё поддержка USB MSD. Хотел найти реализацию MTP интерфейса где-нибудь на STM32, но не нашёл. А так можно было бы YAFFS или Little FS использовать.
×
×
  • Создать...