Serhiy_UA 1 March 17 Posted March 17 · Report post Недавно приобрел этот кит. Привлекли PIO-свойства его портов. В частности высокоскоростной ввод байтов c применением ассемблерной технологии конечных автоматов на портах и затем прямой доступ от портов к RAM. Интересует опыт программирования на C/C++, а также какой при этом используется софт и на сколько успешно. Quote Share this post Link to post Share on other sites More sharing options...
x893 78 March 17 Posted March 17 · Report post pico-sdk очень успешно Quote Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 1 March 18 Posted March 18 · Report post Приветствую x893, от Вас я получал хорошие советы. Уточните, в Windows или в Linux (WSL, VBox или прямо в ОС). Quote Share this post Link to post Share on other sites More sharing options...
muravei 7 March 18 Posted March 18 · Report post 14 часов назад, Serhiy_UA сказал: Привлекли PIO-свойства его портов. Сейчас еще , его и официально ускорили до 200МГц. Я использую VSCode( там есть VS Code extension for Raspberry Pi Pico development) c pico sdk. Плохо только , что он не сильно распространен , и получить ответ на свой вопрос сложнее. Например, пытаюсь сейчас понять, как отлаживать 2 ядра. Я в Вин. В линукс тоже можно. https://rptl.io/pico-get-started Quote Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 1 March 18 Posted March 18 · Report post 10 minutes ago, muravei said: Сейчас еще , его и официально ускорили до 200МГц. Я использую VSCode( там есть VS Code extension for Raspberry Pi Pico development) c pico sdk. Плохо только , что он не сильно распространен , и получить ответ на свой вопрос сложнее. Например, пытаюсь сейчас понять, как отлаживать 2 ядра. Вопрос про 2 ядра тоже супер интересный. Это вроде два независимых МК в одном корпусе, или как-то по другому. Как организовано их взаимодействие не ясно. Или все иначе и распараллеливанием занимается компилятор... Quote Share this post Link to post Share on other sites More sharing options...
muravei 7 March 18 Posted March 18 · Report post 1 минуту назад, Serhiy_UA сказал: Вопрос про 2 ядра тоже супер интересный. Это вроде два независимых МК в одном корпусе, или как-то по другому. Как организовано взаимодействие не ясно. Или все иначе... В СДК есть АПИ для работы с с двумя ядрами , примеры работают. То что я делаю - не всегда. 🙂 Скачайте VSCode и минут за 20 все установится , еще минут 5 по материтесь , и примеры у вас заработают. 🙂 Quote Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 1 March 18 Posted March 18 · Report post muravei, уточните в какой ОС Вы работаете. Я пока пытаюсь в Win10. Тоже установил VSCode и с ним пакет расширений CMake Tools, "C/C++" от Microsoft, еще предлагалось Pico-W-Go, но вместо него был только MicroPico. Последний должен автоматом сформировать CMakeLists.txt, но он почему-то не создается. Пока разбираюсь. Попутно зреет вопрос о переходе, например, на Ubuntu, говорят, что там все без проблем… Quote Share this post Link to post Share on other sites More sharing options...
x893 78 March 18 Posted March 18 · Report post 30 minutes ago, Serhiy_UA said: Приветствую x893, от Вас я получал хорошие советы. Уточните, в Windows или в Linux (WSL, VBox или прямо в ОС). Windows, WSL, Debian/Ubuntu (VMWare, RasPi). 31 minutes ago, muravei said: Например, пытаюсь сейчас понять, как отлаживать 2 ядра. С JLink проблем особых нет. Или на отдельном Pico сделать DebugProbe. Quote Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 1 March 18 Posted March 18 · Report post 6 minutes ago, x893 said: Windows, WSL, Debian/Ubuntu (VMWare, RasPi). Работаю (подрабатываю) в WSL с Ubuntu-22-04, там достаточно сложный проект но не для МК. Смотрю, у Вас в списке Debian, видимо целесообразно отделить эти темы, и для МК организовать все в Debian... Quote Share this post Link to post Share on other sites More sharing options...
muravei 7 March 18 Posted March 18 · Report post 1 час назад, Serhiy_UA сказал: установил VSCode и с ним пакет расширений CMake Tools, "C/C++" от Microsoft, еще предлагалось Pico-W-Go, Возможно , вы слишком суетились . Я установил VSCode и одно расширение , то что с картинкой платки с RP , далее оно САМО все установило. 1 час назад, Serhiy_UA сказал: CMakeLists.txt, Я сам его делаю . плюс в папке проекта должно быть pico_sdk_import.cmake и папка ".vscode" 2 часа назад, x893 сказал: Или на отдельном Pico сделать DebugProbe. У меня так и сделано, одно ядро отлаживаю. Quote Share this post Link to post Share on other sites More sharing options...
backa 1 March 22 Posted March 22 · Report post On 3/18/2025 at 5:26 AM, x893 said: С JLink проблем особых нет только если он новее чем версия 8. Мне пришлось мои JLink Hardware ver8 отправить на полку - профильной теме очень подробно это обсуждали. On 3/18/2025 at 5:02 AM, Serhiy_UA said: Вопрос про 2 ядра тоже супер интересный. Вот и мне был очень инетерсный в разрезе того , что пример от TinyUSB "Host & Device" компилируется только в связке MS VS 2015 + VisualDGB 5.6 (VS code не работает адекватно из под Win7 ). Keil нормально работает с перферией но как дело доходит до мультиядерности то сразу имеем HardFault(). IAR тоже работает замечательно и с мультиядерностью без нареканий - но вот у них в поддержке только древний SDK и как привязать новый - не имею понятия. On 3/18/2025 at 7:29 AM, muravei said: Я сам его делаю . было бы здорово если бы Вы дали ссылку где можно почитать о правилах как и почему делаеться в On 3/18/2025 at 7:29 AM, muravei said: CMakeLists.txt А то приходиться методом "тыка" - иногда на это уходит просто недопустимое количество времени и сил. Я изза этого хотел вернуться к любимой теплой ламповой IDE Keil - а он не знает как компилировать многоядерные приложения для RP2040. Странная у них политика поддержки - заявить 20 версий назадо поддержке RP2040 и умолчать что она "частичная" и ничего не делать с этим в новых версиях. Quote Share this post Link to post Share on other sites More sharing options...
muravei 7 March 22 Posted March 22 · Report post 2 часа назад, backa сказал: Вы дали ссылку У меня их не осталось, но встречались довольно толковые. Но в моем случае , ничего сложного - все сводится : "откуда взять , и куда положить" Больше оно не на что не влияет. Пример 2 часа назад, backa сказал: приходиться методом "тыка" 2 часа назад, backa сказал: как дело доходит до мультиядерности то сразу имеем HardFault() VSCode компилирует. Только пока не разобрался в отладке двух ядер. И разбираюсь , как настроить прерывание от GPIO на второе ядро. Quote Share this post Link to post Share on other sites More sharing options...
backa 1 March 22 Posted March 22 · Report post 7 minutes ago, muravei said: VSCode компилирует Keil тоже компилирует так , что при отладке вылетает в HardFault при инициализации ядра №1. Я прошел по шагам эту инициализацию в MS VS и там все четко и красиво и главное - осмысленно))) 10 minutes ago, muravei said: пока не разобрался в отладке двух ядер IAR с ядрами работает просто замечательно , но как я сказал - они используют древний урезанный SDK и как его заменить на новый - ума не преложу 12 minutes ago, muravei said: разбираюсь , как настроить прерывание от GPIO на второе ядро Вы уже далеко зашли)) Тоже хотел каждому ядру свой светодиод назначить в учебных целях - вникнуть смысловую нагрузку работы 2х ядер (инкогда не делал проекты с 2мя ядрами) 23 minutes ago, muravei said: все сводится : "откуда взять , и куда положить" оххх - если бы так все просто было ))) там свой синтаксис ( например пути к файла - папки отделяют нижним подчеркиманием - где такое прописано и где надо указывать папку а где просто файл например - вопросы изза отсуствия толкового описания ) Ссылку конечно видел - на той страничке бываю очень часто))) 25 minutes ago, muravei said: Больше оно не на что не влияет еще как влияеет - проект просто не линкуется без ошибок пока все не пропишешь в этом файле Quote Share this post Link to post Share on other sites More sharing options...
muravei 7 March 22 Posted March 22 · Report post 38 минут назад, backa сказал: оххх - если бы так все просто было Именно так! В 18.03.2025 в 11:55, muravei сказал: Я использую VSCode( там есть VS Code extension for Raspberry Pi Pico development) c pico sdk. 38 минут назад, backa сказал: еще как влияеет Это у вас влияет, у меня - нет! 🙂 Глюки тоже, естественно , есть как без них. Вы посмотрите ссылку примера. 38 минут назад, backa сказал: при отладке вылетает в HardFault при инициализации ядра №1. Возможно , у вас они куда-нибудь лезут, одновременно. 40 минут назад, backa сказал: Тоже хотел каждому ядру свой светодиод назначить в учебных целях У меня практическое , прерывание по изменению состояния. Quote Share this post Link to post Share on other sites More sharing options...
backa 1 March 22 Posted March 22 · Report post 40 minutes ago, muravei said: Возможно , у вас они куда-нибудь лезут, одновременно Скорее всего именно так: Spoiler void multicore_launch_core1_with_stack(void (*entry)(void), uint32_t *stack_bottom, size_t stack_size_bytes) { assert(!(stack_size_bytes & 3u)); uint32_t *stack_ptr = stack_bottom + stack_size_bytes / sizeof(uint32_t); // Push values onto top of stack for core1_trampoline #ifdef __riscv // On RISC-V we also need to initialise the global pointer stack_ptr -= 4; uint32_t vector_table = riscv_read_csr(mtvec); asm volatile ("mv %0, gp" : "=r"(stack_ptr[3])); #else stack_ptr -= 3; uint32_t vector_table = scb_hw->vtor; #endif stack_ptr[0] = (uintptr_t) entry; stack_ptr[1] = (uintptr_t) stack_bottom; stack_ptr[2] = (uintptr_t) core1_wrapper; #if PICO_VTABLE_PER_CORE #warning PICO_VTABLE_PER_CORE==1 is not currently supported in pico_multicore panic_unsupported(); #endif multicore_launch_core1_raw(core1_trampoline, stack_ptr, vector_table); } на шаге запуска ядра №1 , когда пробует писать в stack_ptr[0] = (uintptr_t) entry Quote Share this post Link to post Share on other sites More sharing options...