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

AVI-crak

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

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

  • Посещение

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


  1. Кхм, RTC имеет ограниченное количество будильников. При попытке в наглую сделать 10 будильников с разным временем и последовательностью установки - вас ждёт жестокий облом.

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

     

    Проснулись, прошлись по всем будильникам и нашли минимальное время в + от текущего, установили , далее обработка функции на текущее время, и сон.

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

    Проект собирается без ос, любыми доступными способами.

     

  2. Это происходит после того как питание сначала сняли, а затем опять включили через короткое время.

    PWR

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

     

  3. а есть за Вас не нужно ?

     

    На AllWinner A20 в свободном доступе доков нету, и никогда не будет. Компания предоставляет документацию только в случае крупного заказа, и даже в этом случае они стараются выполнить максимальное количество работы по созданию будущего девайса клиента: это и проектирование печатки, и сборка на заводах компании, и даже портирование ос под свой камень. Клиент оплачивает разработку, заливает свою прошивку, и очень очень сильно делится прибылью с фирмой.

     

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

  4. Сайт с документацией от производителя - не имеет ни малейшего отношения к российским магазинам.

    Он даже к китайским клонам не имеет отношения.

    Реальный вопрос был: ARM32, памяти больше 16к, и флеша больше 64, с ценником меньше бакса за один штук в российском магазине.

    Потому как купить партию 5000штук я могу без посредников, по цене производителя со скидками и бонусами.

  5. У stm при партиях выше 5000 штук - имеет смысл закупаться напрямую у производителя, минуя многочисленную армию посредников. По габаритам - это небольшой чюмадан, который при определённой сноровке прекрасно пересекает границу. Вот тогда чип от st начинает стоить один бакс, а во всех остальных случаях - 11 баксов.

    Китайские чипы дают одно громадное преимущество, можно у те-же китайцев заказать и печатку и полный монтаж, и даже корпус!!! И всё это в собранном виде будет стоить копейки, по сравнению с россыпью. С чипом st такой прикол не проходит.

     

    Но вот конкретно клонов st - ценников не видно.

  6. К тому же, мне кажется, что отладчик читает регистры своим способом, не вызывая никаких событий у периферии

    Фига, режим отладки может и должен сбрасывать флаги при чтении. Потому как реакция флага на чтение/изменение - это выборка его адреса.

    Стандартная фраза как в поликлинике - "я только спросить" - тут не канает.

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

     

  7. А вот с этого момента по подробней пожалуйста!

    Не указанна явным образом потребность записи в рам память непосредсвенно самим программатором. Есть догадка, что выполняется отладка кода в рам памяти, которой у четвёртой серии достаточно для такого фокуса.

    http://mcustep.ru/2-stm32-zagruzka-i-vypol...oj-pamyati.html

    Способ позволяет экономить ресурс флеша, особенно при творческом кризисе.

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

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

    Сколько не смотрел проектов собранных под иаром - почти всегда отсутствовали файлы модели и линкера, и не спроста.

  8. Ошибка в разводке LMR14206. Нельзя рвать землю внешним контуром.

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

     

    Про дроссель, не важно чья фирма и какие габариты - важен температурный диапазон. На высокочастотном железе(не феррит) верхняя рабочая температура ограниченна 80С, после чего сердечник стремительно теряет свои качества. Это литые кубики, равномерного цвета. Там применяется изоляция провода, которая легко плавится паяльником.

    На сборных конструкциях (феррит) может юзаться как высокотемпературный провод, так и быстрый. А у них разное пробивное напряжение. Как правило - 100в и 20в. И угадать можно только одним способом - физическим.

  9. На платке LMR14206 (3.3В).

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

    Работа LMR14206 об заниженную индуктивность с маленькой добротностью - не предсказуема.

  10. И всё-же прочитайте доку на Bit-band.

     

    Для работы через макрос необходимо сначала выделить немножко простой памяти под обычную 32b переменную, из которой потом макрос будет брать по одному биту под имя. Это муторно и неудобно, в какой-то момент можно совершить ошибку со свободным битом, и сношаться с отладчиком долгое время. Макрос нормально работает с физикой, у которой реальный адрес. Но когда флаги создаются в простой памяти в разных местах - следить уже сложно.

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

     

    Кстати, у меня проект на 18 постоянных и 200 с копейкой подгружаемых потоков, на каждую нитку по 8 флагов минимум. Я-б рехнулся с выделением памяти под флаги. А так, я даже не задумываюсь - где они хранятся.

     

    Есно для проекта уровня "поморгать светодиодом" - использование моего способа чисто академическое.

  11. а как мне на этапе компиляции назначить адрес этой области?

    Bit-band - via a linker.
    Код для GCC - линкер.
    xxx_sram/flash.ld
    
    MEMORY
    {
       ROM  (rx) : ORIGIN = 0x08000000, LENGTH = __
       RAM (rwx) : ORIGIN = 0x20000000, LENGTH = __
       BITRAM (rw) : ORIGIN = 0x22000000, LENGTH = 2048K // - LENGTH(RAM) * 128
    }
    ----
    /* SRAM base address in the bit-band region*/
      _sramflag = .;
      sflagadres =  ((_sramflag - ORIGIN(RAM)) << 5 );
       .flag  (NOLOAD):
       {
          . += sflagadres;
          . = ALIGN(4);
          _sflag = .;
          KEEP(*(.flag))
          . = ALIGN(128);
          _eflag = .;
       } > BITRAM
       _eramflag = ((_eflag - _sflag) >> 5);
    /* SRAM base address in the bit-band region*/
      .bss (NOLOAD):
      {
         __bss_start__ = .;
           . += _eramflag;
         *(.bss*)
         *(COMMON)
         __bss_end__ = .;
      } > RAM
    
    С код.
    #define _FLAG __attribute__ ((section(".flag")))
    
    Далее по коду С.
    volatile uint32_t temp_name_flag  _FLAG;
    

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