-
Posts
1,415 -
Joined
-
Last visited
Reputation
0 ОбычныйAbout klen
-
Rank
бессмертным стать можно тремя способами
- Birthday 01/06/1978
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Recent Profile Visitors
-
мумукался с этой проблемкой, пришлось еще глубже понять как оно (cortex-m + freertos) рабоиает. вроде разобраля, если нужно распишу суть и код дам. туда сюда не прыгал, но физика одна, поэтому наверно будет работать универсально. есть еше засада, оказалось что и не удивительно. если сброс не использовать - будем считать это костыльным решением, новая жизнь, т.е . прилагуха чувствительна к состоянию озу и переферии, оч. внимательно и ВСЕ нужно инитить после загрузчика. . такам обращом задачу прыжка нужно решать в два этапа а) состояние проца + состояние структур freertos б) решить хвосты по инициализации в прилагухе, .bss .data компиллер Вам поможет привести к исходному состоянию, авот что на стеках будет .... мусор от загрузчика, про переферию тоже понятно -к этому моменту она уже живет какойто прошлой жизнью. тут как обычно нужно правильно писать код..
-
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
коллега с сахары обнаружил косяг, просба не качать. поправлю отпишусь. -
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
свежак KGP собрано работв в linux64: http://www.klen.org/Files/DevTools/x86_64-kgp-linux-gnu/[email protected]_x86_64-kgp-linux-gnu_20190519_LUPINE.tar.7z собрано для win64 http://www.klen.org/Files/DevTools/x86_64-kgp-mingw32/[email protected]_x86_64-kgp-mingw32_20190519_LUPINE.7z (к сожалению тестировать неначем, просьба при обнаружении косяков сообщить [email protected] ) имеем binutils 2.32.51.20190518 gcc 10.0.0 20190518 с моими допилами и подкрученным мультилибом в линуксовом дистре также openocd 0.10.0+dev-00867-g2b78f65 (2019-05-18-19:51) dfu-util 0.9 , под linux сборка протестена на рабочих проектах - все жужжит, масдайный неначем тестить. 10 версия компилятора используюет новуй версию LTO формата хранения данных в объектниках. скорее всего скоро можно будет с LTO даже отлаживатся. -
спасибо, попробую отпишусь что получится. какой то детский косяк поймать не могу.
-
Здравсвуйте. в чем может быть косяг? код потока продолжает выполнятся, флаги прерываний периферией выставляются...
-
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
коллеги с сахары попросили для cortex-r4 сделать сборку. хост - линукс64 комбинации мультилиба собрано в тестовых целях, только для -mcpu=cortex-r4 1) - / -O2 / -Os / -Ofast 2) - / -mfloat-abi=hard -mfpu=vfpv3-d16 3) - / -flto http://klen.org/Files/DevTools/x86_64-kgp-linux-gnu/arm-kgp-eabi-cortex-r4-20181212_URTICA.tar.7z -
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
да... символ 'nan' линкером не находится.. так и есть. поправил беду.. http://klen.org/Files/DevTools/x86_64-kgp-linux-gnu/[email protected]_x86_64-kgp-linux-gnu_20181209_PLANTAGO.7z теперь должно полегчать. еще раз убедился - пока мы(то есть Вы) будем использовать С при кодировании и пресобранные либы (типа libc, libm? libgcc ... итд) хорошего выходного кода мы не получим - и понятно почему. суть трабла на который налетел господин Terminator: 1. сначала собирается комплятор - собираются таргет-либа libgcc.a - в ней всевозможные процедуры работы с стандартными типами С. 2. далее собирается newlib - это реализация стандартных функций libc.a, тут же libm.a что я сделал - я собрал все это барахло с LTO - мои ожидания в том что не только пользовательской код но и ibgcc.a, libc.a, libm.a покроется на круг LTO оптимизатором. не тут то было! при компиляции newlib те функции которые современный GCC 9.0.0 считает встроенными (например в данном случае double __builtin_nan (const char *str) ) он безжалостно выкидывает и наверно думает - "нехрен это складывать в либу - я и так на лету всуну в код нужный код когда С/С++-код пользователя попросит! и линковать ненадо, правдв здорово!". в итоге в libm.a функции log10f есть вызов nan(), а в объектнике который вышел из исходника sf_nan.c - его нет (тупо вырезано). в итоге много неразрешенных ссылок.... пикантность придает то что если системные либы не собирать с lto - все идет как по маслу и ничего не выбрасывается. в итоге мы имеем линковку собранных без lto системных библиотек с lto-"окученных" объектников прилагухи пользователя. кажется что мы что то теряем..... возможно но не факт. буду дополнительно исследовать. я же для себя выбрал иной путь - вся програмка это набор C++ кода, все либы суть есть хидеры в которых inline-имплементация нужyных функций и классов, и как можно шире шаблоны.... так уже реализована часть libc в виде хидеров... в моем наборе тулсов после сборки я я жеско выпиливаю все что связано с newlib., вместо libc libm - это тупо пустые либы затычки - реализации берутся из хидеров. получается вся прога компиляется из исходников... в таком подходе lto не дает сбоев - у него полная и наисвежайшая информация об символаи и коде. ЗЫ. для тех кому интересно сколько встроенных функций есть в gcc https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html -
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
ничего страшного. починим. проверю почему так. libm не использую, .. надо будет сделать набор тестов. -
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
Свежак! наконец то починили заливку на сервак! какая всетаки гадость эта ваша рыба за... WebDAV по сравнению с старым добрым FTP..... хост linux64 http://klen.org/Files/DevTools/x86_64-kgp-linux-gnu/[email protected]_x86_64-kgp-linux-gnu_PLANTAGO.7z на этот раз релизный gcc 8.2.0 + мои муки на предмет оптимизации мультилиба и выпиливания исключений из libgcc(как обычно) собрал тулсы без использования avx инструкций хоста - предыдущий билд(собранный с avx) заработал не у всех из-за старых процессоров в компах. таргет - косяков не обнаружил, месяц все рабочие проекты собираются и работают. в ближайщее время планирую всунуть в мультилиб отдельно cortex-m0 с его вариациями (./+/small/fast multiply). предполагается изготовить девайс на stm32l011 - после беглого прочтения программинг маниакала сделал вывод что у этой серии микросхем ядро - cortex-m0+ fast multiply. то есть целочисленный умножитель параллельный 1 такт (НЕ последовательный как в ядрах cortex-m0+ small multiply), правильно? основанием считать я принял https://www.st.com/content/ccc/resource/technical/document/programming_manucoal/18/b4/a2/d9/87/cd/4f/18/DM00104451.pdf/files/DM00104451.pdf/jcr:content/translations/en.DM00104451.pdf PM0223 страница 10/10 ... providing high-end processing hardware including a single-cycle multiplier для масдая собранный из репозитория сегодняшняя ревизия host mingw64 http://klen.org/Files/DevTools/x86_64-kgp-mingw32/[email protected]_x86_64-kgp-mingw32_20181201_PLANTAGO.7z я его не проверял - нечем. традиционно нет машины с масдаем. -
rs485 по линии питания 5...12 в
klen replied to klen's topic in Форумы по интерфейсам
hart вродебы подходит. еще 1-wire ds2480b рассматриваю. как то все равно либо дорого либо сложно либо с костыликами.., коряво. нет изящного красивого решения. нужно попробывать! спасибо. -
rs485 по линии питания 5...12 в
klen replied to klen's topic in Форумы по интерфейсам
хотелось бы питание +5...+12 вольт. если датчик имеет потребление порядка 0.1...0.3 мА в пассивном режиме - то можно продумать постоянный подзаряд питающего конденсатора и активная фаза ответа на запрос датчика при его срабатывании, тогда линии по 5вольтам может хватить (я так предполагаю) все таки меня не питание а схема сигнального интерфейса интересует, техасовские документы читал, но там все больше в сторону 220V/50HZ уклон (PoE) еслиьы не 7мм габарит платки датчика - то наверно проблем небыло бы особых - развязывающие трансформаторы.... -
rs485 по линии питания 5...12 в
klen posted a topic in Форумы по интерфейсам
здравствуйте! необходимо србрать датчики на двухпроводную линию до 500м. особеннось задачи - питать нужно от самой линии и всунуть в узкую 7 мм плату длинной порядкм 70мм. на ум приходять два дросселя и два конденсатора для фильтрации питания и сигнальных токов rs485. но это еще попробуй втиснуть.. может есть уже какие прверенные идеи, можно и не rs485. -
свежак KGP win32/arm/avr/mips/m68k
klen replied to klen's topic in GNU/OpenSource средства разработки
по первому вопросу знаю почему так- собрал с поддежкой ivybridge + avx, поэтому и падает на младших процах, соберал для generic x86_64, выложу на днях, правда ровно в два раза медленне компиляция и линковка... ро второму тоже понятно, библиотеки криво разложил... опять же выложу потестите, косяг организационный... UPDATE пересобрал для generic x86_64 и ivybridge+avx...... потестил по отдельности (это как показывает практика - ничего не значит, у автора всегда все работает :)) FTP сдох - починю выложу на тестироване. -
В общем отвечаю на собственный вопрос, возможно кому то пригодится. 1. девайс так делать можно. конвеер вн. ADC->DCMI->DMA->обработка буффера->MACDMA->PHY прекрасно работают. 2. скорость удалось по выходу ETHMAC получить 82MBit/s 3. удалось формировать длинный ( более 1500 байтов MTU ) и передавать буффер одним UDP пакетом ацп не прикручено - едет с маузера, но код думает что ацп висит на входах DCMI - то есть конвеер работает как будто АЦП нули выдает использовал Nucleo144-767zi, немного допилилил FreeRTOS-TCP в режиме с нулевым копированием (есть идеи как его немного поускорить). как докорячу интерфейс ETHMAC - выложу проект чтобы кто еще сеть не подымал - мог бы ее на этой плате хоть увидеть работающуу и потом переделывать под свое - ибо сделать работающий пример из CubaMX не удалось - пришлось чесно ручками много времени потратить.
-
STM32H7+DCMI+DMA+обработка
klen replied to Erooseight's topic in STM
да! накидал макет примерно такой же штуковины. ltc2206-14, работать буду на 50МГц . предварительная фильтрация/предобработка и выталкивание через ETH MAC - с выдачей непрерывного потока UDP пакетами. удалось протащить (правда без фильтрации - сырые данные с АЦП) в ETH MAC на скорости 82MBit/s что соответствует 82MBit/s/(16бит-размер слова АЦП) = 5MГц АЦП - получается типа сетевого AЦП реального времени,. Пинг правда перестает работать но тестовая прилагуха на РС принимает UDP пакеты c данными исправно. давно была у меня идея внешний АЦП через DCMI прикрутить - Ваш опыт показал что можно была сразу делать и не раздумывать.