-
- "difficult to port" Как некоторые пишут код, так поддержка C++11 слабо помогает.
Захотелось мне портировать некоторый код, написанный на C++11, на
AVR. IAR не поддерживает. Взял AVR-GCC посвежее, скормил ему
правильные опции, нашел подобие отсутствующей стандартной
библиотеки, а в том коде оказывается полно массивов на 32768
элементов и прочих объектов размером 32768 байт. А AVR-GCC умеет
только 32767. Удачи с портированием называется. - AlexG(10.01.2021 22:12)
- А что именно не поддерживает? array[index] с index с типом int?
Разумеется. Но если индекс size_t или unsigned то вроде как должен. - fk0(11.01.2021 01:31)
- Проблемы начинаются с того, что size_t в AVR-GCC двухбайтовый, а в коде есть попытки сделать константу типа size_t со значением 1<<16. Причем менять size_t на uint32_t бесполезно, так как константа эта нужна для задания размера массива. Комментирую все вокруг, наверное реализация неподходящая, но можно же переписать? AlexG(345 знак., 11.01.2021 19:48)
- Хм, а железо AVR умеет в объекты размером 32768 байт? - LightElf(10.01.2021 22:59)
- Умеет Evgeny_CD(11.01.2021 01:33, ссылка)
- А камень с 32К рамы существует? Или имеются в виду константные
массивы во флеше? - LightElf(11.01.2021 03:55)
- Там ещё вот: "RAM larger than 64 KiB is not supported by GCC for AVR targets" - SciFi(11.01.2021 08:29, ссылка)
- 64к внешней рамы. - m16(11.01.2021 08:02)
- И поддерживают сие полтора древнючих процессора. - LightElf(11.01.2021 12:18)
- поболе чем полтора. из свежих - XMEGA AU поддерживает SRAM и SDRAM
до 16Мб. - m16(11.01.2021 12:52)
- +1. Причем SDRAM там только 4 бита, и на удвоенной частоте ядра
(или даже учетверенной - не помню). Получается достаточно быстро,
мы в свое время немало удивились. - Evgeny_CD(11.01.2021 19:58)
- Уели :) Отстал я от жизни AVR-овой - LightElf(11.01.2021 20:17)
- +1. Причем SDRAM там только 4 бита, и на удвоенной частоте ядра
(или даже учетверенной - не помню). Получается достаточно быстро,
мы в свое время немало удивились. - Evgeny_CD(11.01.2021 19:58)
- поболе чем полтора. из свежих - XMEGA AU поддерживает SRAM и SDRAM
до 16Мб. - m16(11.01.2021 12:52)
- И поддерживают сие полтора древнючих процессора. - LightElf(11.01.2021 12:18)
- А камень с 32К рамы существует? Или имеются в виду константные
массивы во флеше? - LightElf(11.01.2021 03:55)
- Умеет Evgeny_CD(11.01.2021 01:33, ссылка)
- А что именно не поддерживает? array[index] с index с типом int?
Разумеется. Но если индекс size_t или unsigned то вроде как должен. - fk0(11.01.2021 01:31)
- Народ шибко нетерпеливый. Кое-где до сих пор практикуют C90. С99
стали реально внедрять после десятилетней выдержки, КМК. - SciFi(10.01.2021 14:20)
- Просто те, кто не хотел слазить с С90, умерли от старости. - evgeniy1294(10.01.2021 16:52)
- Плюсы — язык для молодых. Он утилизирует бьющую через край мозговую
энергию, которую из-за недостатка опыта не получается направить в
конструктивное русло. - SciFi(10.01.2021 17:05)
- Язык молодых - rust. Люди свято верят, что он спасет их от самих
себя. - evgeniy1294(10.01.2021 17:15)
- Matias ? - Kpoк(10.01.2021 19:11)
- Не путай ржавчину с селедкой :)) --> MBedder(1 знак., 10.01.2021 19:19, картинка)
- Первая реакция на фоту: странная мобила... - SciFi(10.01.2021 19:57)
- :)) - MBedder(10.01.2021 20:09)
- у кого отборная? :-) - Kpoк(10.01.2021 19:28)
- У кого надо отборная :)) - MBedder(10.01.2021 19:32)
- Первая реакция на фоту: странная мобила... - SciFi(10.01.2021 19:57)
- Не путай ржавчину с селедкой :)) --> MBedder(1 знак., 10.01.2021 19:19, картинка)
- Matias ? - Kpoк(10.01.2021 19:11)
- Язык молодых - rust. Люди свято верят, что он спасет их от самих
себя. - evgeniy1294(10.01.2021 17:15)
- Плюсы — язык для молодых. Он утилизирует бьющую через край мозговую
энергию, которую из-за недостатка опыта не получается направить в
конструктивное русло. - SciFi(10.01.2021 17:05)
- C++ с каждым новым релизом таки получает реально полезные фичи
(а.к.а. концепты, лямбды, constexpr). Изменения чистого Си довольно
условны по сравнению с плюсами - lloyd(10.01.2021 16:46)
- Ждем "Цэ с плюшками" :) - LightElf(10.01.2021 18:09)
- Это называется "двое из ларца". Ещё при царе Горохе изобрели. - SciFi(10.01.2021 21:14)
- В 22 дождемся - Evgeny_CD(10.01.2021 20:53, ссылка)
- Ждем "Цэ с плюшками" :) - LightElf(10.01.2021 18:09)
- Просто те, кто не хотел слазить с С90, умерли от старости. - evgeniy1294(10.01.2021 16:52)
- А вот это странно! С DSP TI надо нести свой крест - никто другой не
поможет! - Evgeny_CD(10.01.2021 14:17)
- Недавно увидел у микрочипа ударный АЦП. Глядишь, вокруг него ДСП
забористый сделают - Kpoк(10.01.2021 14:31)
- А что за АЦП? - Evgeny_CD(10.01.2021 19:49)
- 16 разрядов, 200М, до 8 каналов без потери времени на коммутацию - Kpoк(10.01.2021 20:04, ссылка)
- С DSP его довольно проблематичично скрестить. Слишком большой поток
данных. FPGA переварит точно. - Evgeny_CD(10.01.2021 20:49)
- Я же мечтаю о "забористом" ДСП. Скажем, 4-8 умножителей 16х16=50 на
той же частоте мне бы уже хорошо было. - Kpoк(10.01.2021 20:55)
- 8 уможителей - убогая ПЛИС за $10. Программирование такого чудо DSP
будет почти как кодинг для FPGA. Смысла нет. FPGA более гибкое
решение. - Evgeny_CD(10.01.2021 21:10)
- Россыпь дискретных транзисторов ещё гибче. Надо адурину, только для
плис. Чтобы уважаемым товарищам в предпенсионном возрасте не
приходилось верилог осваивать :-) - SciFi(10.01.2021 21:17)
- Все есть. Migen, MyHDL весьма серьезны. - Evgeny_CD(11.01.2021 01:21, ссылка)
- скажем так, если кто в своё время клепал сам всякие мудрёные схемы
на 155-ой логике, понимает, что кроме собственно логики и триггеров
надо ещё минимально учитывать задержки сигналов во времени, то
базовое освоение верилога - неделя. ещё неделя - понять чем вообще
ПЛИС отличается от К155ТМ2 + К155ЛА3. а дальше всё - погнали
повторять Радио-86РК на ПЛИС. всё, включая проц. - Mahagam(10.01.2021 21:30)
ПЛИСFPGA кардинально отличается. Мелкая логика -- асинхронная схема. FPGA -- каждая ячейка тактируется от генератора и программа описывает значение выхода в следующем такте как функцию от входов в текущем такте. Подходы к проектированию совершенно разные, мне думается. Опыт работы с ЛА3 и ТМ2 мало полезен, а в обратную сторону вообще бесполезен. - fk0(10.01.2021 21:49)- Это Партия так решила, что все ячейки тактируемы или элемент удобства? И если первое, то применяется ли такой совковый пережиток, как двухфазное тактирование? - Kpoк(11.01.2021 10:24)
- в обратную - да, бесполезен. но фраза Mahagam(789 знак., 10.01.2021 22:03)
- но чтоб в одном флаконе! - Kpoк(10.01.2021 21:14)
- Россыпь дискретных транзисторов ещё гибче. Надо адурину, только для
плис. Чтобы уважаемым товарищам в предпенсионном возрасте не
приходилось верилог осваивать :-) - SciFi(10.01.2021 21:17)
- 8 уможителей - убогая ПЛИС за $10. Программирование такого чудо DSP
будет почти как кодинг для FPGA. Смысла нет. FPGA более гибкое
решение. - Evgeny_CD(10.01.2021 21:10)
- Я же мечтаю о "забористом" ДСП. Скажем, 4-8 умножителей 16х16=50 на
той же частоте мне бы уже хорошо было. - Kpoк(10.01.2021 20:55)
- ENOB у него 12 бит. Неявно рассчитан на усреднение. - Evgeny_CD(10.01.2021 20:41)
- что на сегодня из простого имеет интерфейс для его подключения? Mahagam(105 знак., 10.01.2021 20:29)
- TI DSP имеют параллельную шину для подобного, но вроде до 100МГЦ. - Evgeny_CD(10.01.2021 20:45)
- SDR приемник. ПЧ локатора. Там у него заточка под АФАРы имеется. - Evgeny_CD(10.01.2021 20:43)
- "Быстро" - это сколько в рублях? - Kpoк(10.01.2021 20:31)
- быстро - это дня два-три, если дотошно колупаццо. но это только
интерфейс данных. ещё же надо этим АЦП рулить через регистры. это
тоже нудная но нужная работа, настроить все внутренние регистры и
всё такое. вопрос все равно странно стоит. если дальше это как
часть проекта на ПЛИС, то любой плисовод такое подцепит и без моей
помощи. если ПЛИС только как конвертер интерфейсов - то куда
выгонять такой поток? 14 бит на 200 МГц - это ж 2.8 гигабита
данных. 12-ти битный АЦП я с Mahagam(186 знак., 10.01.2021 20:55)
- Применительно ко мне, это умножение на синус и косинус и вывод
результата 1000 раз в секунду. - Kpoк(10.01.2021 21:06)
- несильно дорогой спартан-6 XC6SLX9 в не-БГА корпусе TQFP144 (точнее TQG144) имеет 16
умножителей 18x18, у каждого ещё постсумматор в 48 бит. умножители, если всё обвязать всеми регистрами, даже не
в самой быстрой версии могут фигачить на 300MHz. Mahagam(231 знак., 10.01.2021 21:26)
- Это военная тайна. - Kpoк(10.01.2021 21:40)
- несильно дорогой спартан-6 XC6SLX9 в не-БГА корпусе TQFP144 (точнее TQG144) имеет 16
умножителей 18x18, у каждого ещё постсумматор в 48 бит. умножители, если всё обвязать всеми регистрами, даже не
в самой быстрой версии могут фигачить на 300MHz. Mahagam(231 знак., 10.01.2021 21:26)
- Применительно ко мне, это умножение на синус и косинус и вывод
результата 1000 раз в секунду. - Kpoк(10.01.2021 21:06)
- быстро - это дня два-три, если дотошно колупаццо. но это только
интерфейс данных. ещё же надо этим АЦП рулить через регистры. это
тоже нудная но нужная работа, настроить все внутренние регистры и
всё такое. вопрос все равно странно стоит. если дальше это как
часть проекта на ПЛИС, то любой плисовод такое подцепит и без моей
помощи. если ПЛИС только как конвертер интерфейсов - то куда
выгонять такой поток? 14 бит на 200 МГц - это ж 2.8 гигабита
данных. 12-ти битный АЦП я с Mahagam(186 знак., 10.01.2021 20:55)
- Ух ты, спасибо! Интересная штучка! - Evgeny_CD(10.01.2021 20:27)
- С DSP его довольно проблематичично скрестить. Слишком большой поток
данных. FPGA переварит точно. - Evgeny_CD(10.01.2021 20:49)
- 16 разрядов, 200М, до 8 каналов без потери времени на коммутацию - Kpoк(10.01.2021 20:04, ссылка)
- Только его забажат так, что мы никогда не узнаем, как он работает. Там будет 32 UART с необоримыми багами и проч. - Evgeny_CD(10.01.2021 15:48)
- А что за АЦП? - Evgeny_CD(10.01.2021 19:49)
- Могли просто бэкенд для llvm написать, но это не их метод. Они часто так делают, например для описания регистров процессора на ядрах cortex arm предлагает формат svd, TI положили на это болт и сделали свой svd, несовместимый с армовским. evgeniy1294(155 знак., 10.01.2021 14:28)
- Недавно увидел у микрочипа ударный АЦП. Глядишь, вокруг него ДСП
забористый сделают - Kpoк(10.01.2021 14:31)
- "difficult to port" Как некоторые пишут код, так поддержка C++11 слабо помогает.
Захотелось мне портировать некоторый код, написанный на C++11, на
AVR. IAR не поддерживает. Взял AVR-GCC посвежее, скормил ему
правильные опции, нашел подобие отсутствующей стандартной
библиотеки, а в том коде оказывается полно массивов на 32768
элементов и прочих объектов размером 32768 байт. А AVR-GCC умеет
только 32767. Удачи с портированием называется. - AlexG(10.01.2021 22:12)