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

Zlumd

Свой
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Местный

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Новосибирск
  1. Компиляция Linux для Variscite VAR-SoM-AM33

    Да. dtc не работает. Выдаёт syntax error. Вроде в Yocto формат dts-файлов отличается от стандарта. bitbake tisdk-rootfs-image -f -c deploy не работает. Выдаёт MACHINE=varsomam33 bitbake tisdk-rootfs-image -f -c deploy тоже не работает. Выдаёт:
  2. Компиляция Linux для Variscite VAR-SoM-AM33

    Компилирую по инструкции: http://variwiki.com/index.php?title=VAR-SO...o_Krogoth_Build Всё хорошо компилируется, но долго - 3 часа. Потом хочу поменять разрешение экрана. Для этого надо исправить файл ~/yocto_varsomam33/tisdk/build/arago-tmp-external-linaro-toolchain/work-shared/varsomam33/kernel-source/arch/arm/boot/dts/var-som-am33.dts После компиляции этот файл должен скомпилироваться в ~/yocto_varsomam33/tisdk/build/arago-tmp-external-linaro-toolchain/deploy/images/varsomam33/zImage-var-som-am33.dtb Запускаю команду MACHINE=varsomam33 bitbake tisdk-rootfs-image После этой команды dtb-файл не меняется. Если удалить dtb-файл, то он снова не появляется. Рядом с dtb-файлом лежит файл README_DONT_DELETE_FILES_IN_THIS_DIRECTORY.txt В нём написано следующее: Но эти команды не работают. Пробовал запускать Выдаётся ошибка Пробую по-другому: Это проходит без ошибок, но dtb-файл не появляется. Как получить вновь скомпилированный dtb-файл? Под виндой я обычно удаляю старый файл ил жму Rebuild. Под Линуксом же я не могу понять, как это сделать. Нашёл один вариант. Удалить полностью папку ~/yocto_varsomam33/ Пройти по шагам с самого начала по инструкции http://variwiki.com/index.php?title=VAR-SO...o_Krogoth_Build После команды MACHINE=varsomam33 bitbake tisdk-rootfs-image примерно через три минуты появляется dts-файл. Его надо быстренько подредактировать. Ещё через час примерно появляется уже скомпилированный dtb-файл. Но каждый раз тратить на это три часа довольно утомительно.
  3. В PcbDoc я тыкаю мышью в дорожку и появляется окно: [attachment=111219:1.png] Если я жму Ctrl+мышь, то окно появляется мгновенно Если я жму мышь, то окно появляется через 1 секунду. Эта задержка где-то регулируется? Её можно обнулить? Дико бесит.
  4. Цитата(peotr @ Sep 18 2017, 16:12) А можно по-проще сказать?Я написал ответ. Потом понял, что фигню сморозил. Хотел удалить пост, а кнопки удаления нигде нет. Заменил весь свой ответ на DEL.
  5. Цитата(_pv @ Sep 12 2017, 16:46) ещё как вариант, можно при пропадании питания включать делитель клока. но, насколько помню, в м32а его нет, есть в м328.Что-то я нигде не видел, чтобы в даташите было написано, что clock system гарантированно может работать при 2.7В на 16МГц. Написано в общем про весь контроллер, что при 2.7В макс. частота 8МГц. Значит нельзя ставить кварц 16МГц. Можно ставить только 8МГц.
  6. В таких случаях надо ставить FRAM, и писать туда постоянно, а не только при пропадании питания, а про EEPROM лучше забыть.
  7. Цитата(Rash @ Sep 5 2017, 14:45) Кто подскажет, как разместить переменные по фиксированным адресам в ОЗУ?Так не работает что-ли? Кодint var@0x1234;
  8. Цитата(Сергей Борщ @ Sep 5 2017, 13:10) К сожалению, простого объявления сегмента недостаточно. Для доступа к флешу (в "обычных" AVR, про хмеги не знаю) используются совершенно другие ассемблерные команды, поэтому от рождения доступ к константам во флеше в ГЦЦ от рождения был через специальные, реализованные на встроенном ассемблере макросы pgm_read_xxxxx()IAR при чтении флэш генерит одни команды, при чтении/записи RAM - другие команды, при чтении/записи EEPROM - третьи, при чтении/записи пространства ввода/вывода - четвертые. Программисту не надо думать в каком пространстве происходит чтение запись. Странно, что в GCC не так.
  9. XMEGA еще жива?

    Цитата(Сергей Борщ @ Sep 5 2017, 13:03) Забавно. В свежескчанном вчера с микрочипа документе 8067O–AVR–06/2013 (ТО на XMEGA A1) этой таблицы нет. И в первой таблице только одно, минимальное значение.Есть в другом документе 8331F–AVR–04/2013 XMega AU Manual на странице 95.
  10. Цитата(zhevak @ Sep 4 2017, 16:30) Константы и инициализируемые данные всяко будут изначально находиться во флешь памяти. В начале работы (после включения, перезагрузки и т.п.) эти данные нужно перенести из флеша в оперативную память.Зачем переносить из флэша в оперативную память? Цитата(zhevak @ Sep 4 2017, 16:30) Если прога пишется на асме, то сам программист прописывает этот код -- когда, куда и сколько перененести данных. Если прога пишется на Си, то эту работа выполняется до вызова main().В IARe есть модификатор __flash. Используешь его везде и все константы лежат во флэше, и в RAM не переносятся, и места не занимают. В GCC наверно тоже что-то подобное есть. Если нет, то можно дополнительный сегмент добавить. Да. Оперативки в AVR очень мало. А быстродействия на мой взгляд - выше крыши.
  11. XMEGA еще жива?

    Цитата(Сергей Борщ @ Sep 4 2017, 16:26) Получается, так (при условии, что это техописание именно на ваш кварц). Кстати, ограничения в 10...30 пФ я в документации не нашел. Вот: [attachment=108647:ATXMega1...apacity1.png] Вот ещё нашёл: [attachment=108649:ATXMega1...capacity.png] Получается, что нужно ставить разные емкости: C1=16pF*2-3.8pF-5pF(емкость монтажа)-6pF(CXTAL1)=17,2pF C2=16pF*2-3.8pF-5pF(емкость монтажа)-10pF(CXTAL2)=13,2pF Их оба можно округлить до 15pF.
  12. Цитата(zhevak @ Jul 12 2017, 04:41) Чтобы поработать с константами, которые находятся во флеш-памяти, константы нужно сначала скопировать в оператиную память, и только потом уже можно с ними производить какие-то действия.На ассемблере что-ли пишете? На С пофигу в какой памяти константы лежат. На мой взгляд самое в хмегах - аппаратное шифрование. Редко у каких армов оно есть. У 8-битников тем более. Многим тербуется обновление прошивки в контроллере. В отрытом виде отдавать прошивку плохо. А программное шифрование работает в 100-1000 раз медленнее.
  13. XMEGA еще жива?

    Цитата(Сергей Борщ @ Sep 4 2017, 13:03) Номинал этих конденсаторов надо смотреть в документации на кварц (параметр "нагрузочная емкость"). Если он укладывается в допустимые для контроллера - такой кварц применять можно. Умножаем его на два (конденсаторы включены параллельно кварцу но последовательно друг другу, поэтому емкость каждого вдвое больше общей) и вычитаем емкость встроенных в контроллер (если есть) и паразитные емкости монтажа. Получаем номинал конденсатора под конкретный тип кварца и конкретную схему/плату.В даташите на кварц написано: capacity load CL 16pF В ATXMega128A1U встроенных ёмкостей нет. Паразитные емкости хрен знает, как считать, мерять. Получается надо кондёры по 32pF ставить?
  14. XMEGA еще жива?

    Цитата(Alex Black @ Aug 30 2017, 06:26) Собственно вопрос: кто-нибудь использовал atXMega с буквой U вместо обычных без U, какие проблемы возникали? А может вообще у меня процы "левые", как проверить то, кто сталкивался?Я столкнулся с тем, что 22пФ на кварце - слишком большой конденсатор. Хотя по даташиту нужно 10...30пФ. Контроллер работал не стабильно. Поменял на 15 пФ - стало нормально. Это проявлялось только на 4х-слойных платах на одном из десяти - двадцати контроллеров. На 2-слойных платах 22пФ всегда работают без сбоев. На каких контроллерах проявлялось ATXMega128A1 или ATXMega128A1U - я не успел понять. В последнее время используем только ATXMega128A1U. Больше никаких проблем не замечал. Широко использую обновление прошивки. Прошивка ещё ни разу нигде не слетала.
  15. 11 лет прошло, а вопрос всё тот же: Что такое "N/A (command line)" в *.map-файле линкера и как освободить мои 2176 байт ? Командная строка у меня в контроллере вообще не используется. Вот содержимое *.map-файла линкера: Код                ****************************************                 *                                      *                 *            MODULE SUMMARY            *                 *                                      *                 **************************************** Module                     CODE   DATA  XDATA ------                     ----   ----  -----                           (Rel)  (Rel)  (Rel) ?C_STARTUP                   60 ?EEPROM_X_UNMAPPED          232 ?EPILOGUE_B_L09              42 ?FILLER_BYTES                 8   + common                  500 ?FLOATS_L04                 228 ?LL_DIV_L12                 278 ?LL_MUL_L12                 128 ?LONGLONG                   100 ?L_EC_MUL_L03                64 ?L_SHL_L03                   14 ?MOVE_LONG_L07               62 ?PROLOGUE_L09                34 ?RESET   + common                    4 ?SL_DIVMOD_L03               68 ?SS_DIVMOD_L02               48 ?SS_SHR_L02                  10 ?S_EC_MUL_L02                16 ?S_SHL_L02                   10 ?UC_DIVMOD_L01               26 ?UC_SHR_L01                  10 ?UL_DIVMOD_L03               62 ?UL_SHR_L03                  14 ?US_DIVMOD_L02               38 ?US_SHR_L02                  10 ?__dbg_break                  2 ?__exit                      22 ?_exit                        4 ?cppinit                    102 ?exit                         4 ?low_level_init               4 ?memcpy                      40 ?memcpy_P                    36 ?memmove                     80 ?memset                      26 ?segment_init               176 ?strlen                      24 ?strlen_P                    20 ?vec_newdel                 254 ?xV_SWITCH_L06              170 ..................................... main                      5 301    988   + shared                  368   + common                  368 N/A (command line)               2 176 N/A (alignment) ----------               ------  -----  ----- Total:                   84 375  6 785  2 048   + common                  500 Цитата(Zlumd @ Aug 23 2017, 16:00) 11 лет прошло, а вопрос всё тот же: Что такое "N/A (command line)" в *.map-файле линкера и как освободить мои 2176 байт ? Отвечаю сам себе : N/A (command line) = CSTACK size + RSTACK size.