Поиск
Показаны результаты для тегов 'c++'.
-
Здравствуйте, коллеги Ситуация: В package определена экспортируемая в C++ функция. На стороне C++ данная функция вызывается в случайный момент времени тредом, который к DPI не имеет отношения. Во время вызова функции из C++ симулятор Xcelium выдаёт следующие ошибки: "DPI Scope function call allowed only from context function" и "The C identifier "foo" representing an export task/function cannot be executed from a non-context area". Перед вызовом функции foo в стороннем треде я пробовал принудительно задавать контекст: svSetScope(svGetNameFromScope("foo_pkg")), но безуспешно. Я даже пробовал заранее сохранять переменную с контекстом (GLOBAL_SCOPE=svGetScope()) и перед вызовом устанавливать контекст: svSetScope(GLOBAL_SCOPE). Тоже безрезультатно. При вызове svSetScope(GLOBAL_SCOPE) DPI не видит контекста вообще и устанавливает его в NULL. На форуме Cadence нашёл заметку в которой автор решает описываемую проблему, используя функции __sync_lock_test_and_set и __sync_lock_release. Как и над какими переменными он их использует - не понятно. -- Сталкивался ли кто с подобной проблемой и как решил?
-
- systemverilog
- dpi
-
(и ещё 6 )
C тегом:
-
Stm32 отладка проекта в Cubeide среде
dimir опубликовал тема в GNU/OpenSource средства разработки
у меня возник вопрос об отладке .Научился я прошивать Stm32 в Cubeide среде.Провозился с обновлением .Настроил для прошивки.А какие критерии настройки отладки и как я могу визуально это увидеть? -
Проблема с запуском нескольких камер на хабе
Ivan21 опубликовал тема в Программирование
Добрый день. Участвую в студенческой разработке и нам необходимо прикрутить 4 камеры и обработать с них видео поток данных. Пока все тестируем на Ubuntu и имеем следующий стенд: 1. Небольшие четыре видеокамеры 640x480, 320x240 2. USB-hub 3.0 на 4 порта Сейчас написали, что-то похожее на ЭТО: С одной камерой все отлично работает, но если сделать их 2 то уже пойдёт ошибка: No space left on device При этом, если подключить 4 камеры в порты самого системного блока компьютера, то картинка отображается очень даже хорошо. Для этого, для каждой камеры выполняется: ioctl(this->fd, VIDIOC_STREAMON, &type) Проблема сохраняется, если подключать камеры через usb-hub. Однако, мы решили проблему и делаем следующее: // camera->dBuf(); camera->streamOff(); camera_next->streamOn(); camera_next->qBuf(); // Мы запрашиваем буфер, отключаем стрим и запускаем стрим на следующей камере и сразу же кладем буфер в очередь. Такой костыль позволяет считывать с 4 камер подключенных к хабу, но фпс падает до 2-3 кадров в секунду, хотя до этого было на уровне 15 кадров. Используем v4l и SDL для отображения кадров. Собираемся потом портировать на девборд тинкер. Вопрос, как правильно работать с множеством подключенных камер? v4l2-ctl -d /dev/video2 --list-formats-ext ioctl: VIDIOC_ENUM_FMT Type: Video Capture [0]: 'YUYV' (YUYV 4:2:2) Size: Discrete 640x480 Interval: Discrete 0.033s (30.000 fps) Interval: Discrete 0.200s (5.000 fps) Size: Discrete 320x240 Interval: Discrete 0.067s (15.000 fps) Interval: Discrete 0.200s (5.000 fps) -
Ведущий C++ разработчик (РФ, можно удалённо)
msvxon опубликовал тема в Предлагаю работу
Ищем ведущего C++ разработчика в аккредитованную российскую компанию, которая разрабатывает системы защиты от внутренних и внешних угроз информационной безопасности. Формат работы: удалёнка/гибрид/офис - отталкиваемся от пожеланий кандидата Занятость: фулл-тайм Стек: C++ 20, STL, Boost, dpdk, Clickhouse, ALTLinux, TCP/IP Условия: гибкий график, оформление по ТК, ДМС, спорт, техника для работы Зарплата: 300 - 400 т.р. на руки (для тимлида с опытом руководства), готовы обсуждать Основная задача - разработка высокопроизводительной системы, которая в режиме реального времени может: анализировать потоки информации на скорости десятки Гбит/сек; записывать сотни Тбайт данных; искать нужную информацию за секунду. Если заинтересовались, пишите на [email protected] -
Embedded C/C++ разработчик (Linux, тимлид)
msvxon опубликовал тема в Предлагаю работу
Ищем embedded С/C++ разработчика (тимлида) в аккредитованную российскую компанию - производителя телекоммуникационного оборудования спектрального уплотнения (DWDM) Формат работы: гибрид 5/2 с 10.00 до 18.30; офисы в Москве или в Нижнем Новгороде Занятость: фулл-тайм Условия: оформление по ТК, ДМС после испытательного срока Зарплата: от 300 000 на руки, готовы обсуждать с успешным кандидатом Основные задачи: разработка ПО на C/C++ для встраиваемых систем под Linux взаимодействие с FPGA/ASIC интеграция SDK сторонних производителей с нашими устройствами совместная работа со схемотехниками по разработке и тестированию новых устройств Мы отлично сработаемся, если у вас есть: высшее техническое образование опыт разработки встроенного ПО на C/C++ опыт создания многопоточных приложений и отлаживания их в среде Linux знание TCP/IP опыт работы с протоколами USB, Ethernet и PCIe опыт самостоятельного развертывания Linux для встраиваемых систем Если заинтересовались, пишите на [email protected]- 1 ответ
-
- embedded
- embedded systems
- (и ещё 5 )
-
Решил я сделать автомат уровня воды для эл. насоса .Написал программу.А она работает со збоем.В качестве управление уровнями на GPIO выбрал контакты реле ~24 v .Если ёмкость пуста реле отключённые.А при отключении работают тики в прерывании по таймеру и через минуту загрузки процессора включается двигатель.Так организован нижний уровень .А верхний уровень так.Когда насос работает срабатывает первое реле срабатывает и через время срабатывает GPIO устанавливается в лог 1.Вода дошла до верхнего уровня и GPIO устанавливается в лог 0.И двигатель стал. Проблема в том что нет стабильной работы уровней.Контролер работает стабильно.А подпрограмма в прерывании по таймеру.
-
Есть у меня дисплей LED 7 сигментный.Как мне вывести вещественное число ?Помогите советом.
-
Начинающий программист микроконтроллеров AVR, STM32
Кристина Сергеевна опубликовал тема в Ищу работу
Ищу работу/подработку/стажировку, связанную с программированием микроконтроллеров AVR, STM32. Работа в программах AtmelStudio, Proteus, KeiluVision, CubeMX. Знание основ языка программирования С++. Желание развиваться в данном направлении. [email protected] -
у меня возникла непонятка с настройкой GPIO с настройкой аппаратного энкодера на stm32f103.На stm32 f407 всё понятно.GPIO настраиваю на альтернативную функцию .Потом регистры настраиваю альтернативной функции .Да и программная подтяжка лог 1.А сдесь?Кто может подказать?
-
Как можно вывести результат на LCD без sprintf?
-
Как установить нулевой потенциал на выводе АЦП при отсутствии тока?В stm32
-
Хочу я создать программу для енкодера Хотя в stm32 есть аппаратный.Но меня интересует программный енкодер.Кто может подсказать как проще? Или как практичнее?
-
Я единственное не освоил это режим захвата как ни на avr и на stm32.Всё понятно только не понятно куда коней запрягать-метафора. Мне не понятно каким образом этот захват счёта я могу отобразить на LCD или на другом дисплее.Кто может мне нерусскому обьяснить?
-
По какой формуле лучше создавать массив?
-
Есть такая проблема вывести на экран отрицательную температуру. Играюсь с avr протеусе.От нуля до 100 показывает на дисплее а от нуля до -55 какие то символы.Как можно настроить что бы показывало минусовую температуру.Вариантов сколько?
-
Приветствую! Есть плата LicheePi Zero на базе чипа Allwinner V3s (ARM Cortex-A7) и собственно-сделанный BareMetal SDK, поддерживающий работу с: 1) файловой системой 2) видео-системой 3) звуковой системой 4) ввод данных (кнопки) в однозадачном режиме (цикл в main() + обработчик прерывания) Насколько реально будет туда портировать (перенести, сбилдить, скомпилять) J2ME виртуальную машину - для запуска MIDlet'ов ("Java"-игр) стареньких кнопочных телефонов с маленькими экранами (от 128x128 до 320x240) ? На всякий случай уточню: нужна не вся Java, а только J2ME, более конкретнее - CLDC и MIDP не ниже 2.0.. Поиск в интернете ни к чему ясному не подтолкнул: 1) все ссылки на java.net померли, вместо них Оракла - там чёрт ногу сломит где искать что надо 2) phoneME - кто его реально собирал? у кого есть опыт сборке сего чуда? Как у него дела с совместимостью игр? 3) какие ещё есть проекты? Как я это вижу? : 1) попытаться собрать J2ME эмулятор под Linux в Linux (платформа ПК x86) 2) выкинуть всё ненужное (секьюрити, работа с сокетами, сетью и прочим хламом) 3) завести вывод звука, графики и ввод данных - на бэкэнд(драйвера) своего SDK для V3s У кого-нибудь есть опыт сборки? Чё-то смотрю, что там больше Java надо, чем C. Его одним GCC реально собрать? В чём подвох? В сорцах куча Джавы... Без JRE соберётся? Велик соблазн запускать такие игрули:
-
В последнее время я разрабатываю микроконтроллерную систему на базе ATMega2560, поскольку в ней больше периферийных модулей, и в то же время я хочу разрабатывать другие платы в будущем, я могу немного изменить последний код, чтобы применить его к новой плате. После проверки большого количества информации, я обнаружил, что APM использует такую идею: слой аппаратной абстракции; есть также система Android также использует концепцию слоя аппаратной абстракции, такой дизайн может значительно улучшить совместимость. Однако, изучив исходный код APM, я обнаружил, что не могу найти никакой информации о доступе к оборудованию, возможно ли, что C++ не может получить доступ к оборудованию напрямую?
-
Подходит ли с++ для программирования мк?
MK_ опубликовал тема в Программирование
Здравствуйте. Я хочу заниматься микроконтроллерами. Есть базовое понимание с++. Везде читал что под мк программируют на си. Я хотел бы узнать подходит и с++ для программирования мк. Удобно ли? Учить си не хочется так как на с++ буду разрабатывать другие программы(не под мк). Микроконтроллерами хочу заниматься для себя, а не серьезно. Было бы хорошо если бы порекомендовали книги или другие источники для изучения программирования мк(Желательно на с++). Буду благодарен. -
Инженер- программист в отдел интеграции
Anna опубликовал тема в Предлагаю работу
ООО Эвокарго Кого ищем: разработчика С++/Python, который будет заниматься написанием ROS - драйверов для различных внешних устройств. Если вы опытный программист-разработчик и мечтаете заниматься исследовательской деятельностью в области беспилотных автомобилей, то вам – к нам. Обязанности: проектирование и написание ROS драйверов для различных сенсоров (сонары, лидары, камеры, радары) проектирование и написание ROS драйверов и парсеров для обработки пакетов получаемых по RS-232/422/485, CAN контроль целостности и корректности получаемых данных первичная фильтрация получаемых данных и выдача их необходимым образом в указанные топики. Требования: Знание и опыт работы с Robot Operating System (ROS) Знание Linux C++: ООП, основные паттерны проектирования Python: ООП, библиотеки numpy Будет плюсом: Опыт работы с железом (сенсоры, низкоуровневые драйвера, работа со стеком различных интерфейсов) Условия: Гибкий график и возможность частичной удаленной занятости; Профессиональный и молодой коллектив; Интересные задачи нацеленные на развитие высокотехнологичных самодвижущихся транспортных средств; Высокий уровень белой заработной платы; Оформление в соответствии с ТК РФ; ДМС. Контакты: [email protected] - почта @anna_peter_hr - Telegram (Анна)-
- работа
- работавмоскве
- (и ещё 6 )
-
как сделать так что бы энкодер настроенный в таймере работал нормально?
-
Разработчик C++ (Neural Networks)/ Москва
Дмитрий К опубликовал тема в Предлагаю работу
Разработчик C++ (Neural Networks)/ Москва Команда экспертов в области компьютерного зрения и машинного обучения находится в поиске Разработчика C++ (Neural Networks). Компания специализируется на создании продуктов и решений в области распознавания лиц и объектов, дополненной и виртуальной реальности. Задачи: • Разработка вычислительного бэк-енда для инференса нейронных сетей для мобильных устройств. • Реализация новых и оптимизация существующих операторов нейронных сетей. • Тесное взаимодействие с командой исследователей. • Поиск оптимальных методов реализации алгоритмов машинного зрения. Навыки: • Отличное знание C++ (14+). • Разработка, профилирование, отладка в linux. • Знание neon инструкций. • Знание архитектурных особенностей мобильных soc. Готовы предложить: • Высокий уровень дохода по результатам собеседования + прозрачная система бонусов и грейдов; • Полное соблюдение ТК РФ, белая заработная плата, больничные, отпуска и пр.; • Сложные, но интересные задачи и крутую команду, которая поможет с их решением. Детали: [email protected] https://t.me/K_Dvoretc -
Разработчик C++(High load)/ Москва
Дмитрий К опубликовал тема в Предлагаю работу
Разработчик C++(High load)/ Москва Команда экспертов в области компьютерного зрения и машинного обучения находится в поиске Разработчика C++(High load). Компания специализируется на создании продуктов и решений в области распознавания лиц и объектов, дополненной и виртуальной реальности. Задачи: Разработка подсистемы real-time анализа потокового видео с использованием алгоритмов машинного зрения. Разработка алгоритмов детектирования, сегментирования и классификации объектов с применением аппаратных ускорителей (gpu, npu). Реализация взаимодействия со смежными подсистемами. Навыки: Отличное знание с++ (14+). Разработка, профилирование, отладка в linux. Разработка специализированных cuda kernel-ов. Тюнинг производительности с помощью nvprof/nsight. Понимание архитектуры multi-gpu систем. Готовы предложить: Высокий уровень дохода по результатам собеседования + прозрачная система бонусов и грейдов; Полное соблюдение ТК РФ, белая заработная плата, больничные, отпуска и пр.; Возможность работать как в офисе, так и удалённо; Сложные, но интересные задачи и крутую команду, которая поможет с их решением. Детали: [email protected] https://t.me/K_Dvoretc -
Вопрос вам специалистам.stm32f LCD I2C не переключается меню .Некоторые говорят с адресом проблема.Проверил всё сходится.В чём соль.Как решить данную проблему.И рессетировал шину специальным битом.Ноль.
-
Добрый день. Продолжаю осваивать чип Allwinner V3s. Столкнулся с таким фактом. Нужно сделать переброс "память-память" самым наискорейшим способом, который возможен. Начал ковырять DMA и обнаружил несколько малоприятных вещей: 1) DMA не поддерживает переменные шаги приращения. Только программирование через дескрипторы. 2) Тактовая частота работы DMA всего 200 МГц !!! В сорцах линукса зачем-то для тактовой DMA используют AHB, которая получается делением на 2 частоты ядра: 1200/2 = 600 МГц. Затем эти 600 МГц делятся ещё на 3 для DMA. В итоге выходит всего-навсего 200 МГц. Таким DMA полезно делать только подкачку аудио-данных при воспроизведении или записи звука. Или ещё что-нибудь свя занное с забором-выводом данных в периферию! Для быстрого коприрования память-память не подходит! А теперь о хорошем! Если копировать с помощью инструкций NEON: void MEMCPY(u8 *dst,u8 *src,u32 size) { asm volatile( "1: \n" "VLDM %[src]!,{d0-d7} \n" "VSTM %[dst]!,{d0-d7} \n" "SUBS %[size],%[size],#0x40 \n" "BGT 1b \n" : [dst]"+r"(dst), [src]"+r"(src), [size]"+r"(size) : : "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "cc", "memory" ); } то скорость получается самая максимальная. Если битовое поле TEX выставить равным "001", то получим ещё более высокий прирост в скорости (+20 %): //VIDEO MEMORY i=61; mmu_tlb_address[i + (dram_base>>20)] = (dram_base + (i << 20)) | (0 << 19) | (0 << 18) | (0 << 17) | (0 << 16) | (0 << 15) | (1 << 12) | //TEX (3 << 10) | (0 << 9) | (15 << 5) | (0 << 4) | (0 << 3) | //Cache (1 << 2) | //Buffer (2 << 0); При этом бит кеширования в дескрипторе приёмника в MMU-таблице должен быть выключен! Если его включить в приемнике, то скорость просядет. Тоесть: приемник: TEX=1, C=0, B=1 источник: TEX=0, C=1, B=1 При таком раскладе выходит около 8000 FPS при копировании буфера 240 x 160 x 16 бит. (ядро 1200 МГц, память 456 МГц ). С DMA выходит в 8 раз меньше! Если увеличить частоту DMA в 2,3 раза, то скорость нисколько не увеличивается. Действительно ли с DMA всё так печально, или есть способ его заставить работать быстрее?
-
Инициализация объединений в С++
Darth Vader опубликовал тема в Программирование
В Си можно сделать так: #include <stdint.h> // Объявляю тип объединения typedef union { uint32_t Word; uint16_t HWord[2]; uint8_t Byte[4]; } WordUnion_t; // Объявляю и инициализирую константный массив из 3-х объединений const WordUnion_t MyVal[3] = { {.Byte = {0x12,0x34,0x12,0x34}}, // Это объединение инициализировано, как массив байт {.HWord = {0x5678,0x1234}}, // Это объединение инициализировано, как массив полуслов {.Word = 0x12345678} // Это объединение инициализировано, как массив слов }; С++ такое не поддерживает. Ему нельзя явно задать поле объединения, которое я хочу инициализировать. Убираем имена полей и пытаемся инициализировать, как обычные структуры в С++: const WordUnion_t MyVal[3] = { {0x12,0x34,0x12,0x34}, {0x5678,0x1234}, {0x12345678} }; Компилятор и на это ругается. Только элемент MyVal[2], по его мнению, инициализирован верно. Эксперимент показал, что инициализировать объединение в С++ можно только по полю, объявленному первым при описании этого объединения. В моем случае, по .Word. Что бы мы ни писали в инициализаторах, он расценивает это, как значение поля Word. Собственно, вопрос: а если мне надо/удобно инициализировать моё объединение по другому полю, неужели синтаксис языка этого не позволяет? Странное впечатление создается. Язык большой, развесистый, позволяет сделать кучу всего несколькими разными способами, а такого простого действия, как инициализации нужного поля объединения - не позволяет.