collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Desenvolvimento para RaspberryPi Pico em Windows < 10  (Lida 4725 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Desenvolvimento para RaspberryPi Pico em Windows < 10
« em: 04 de Julho de 2022, 15:12 »
Estive a instalar um ambiente básico de desenvolvimento para Raspberry Pi Pico no meu Windows 8.1 (no comments :D) . Achei a documentação oficial um bocado confusa e trabalhosa e resolvi dedicar umas horas a isto. Confesso que detesto este tipo de trabalho mas já que o fiz, cá fica o processo por alto (pode estar a escapar-me alguma coisa, não apontei o processo à medida que o fui fazendo). Fui-me guiando pela documentação oficial do Pico, pelo script de instalação em Linux e por outra variada documentação sobre as tools, etc. Algumas dessas ferramentas vocês podem já ter instaladas. Este processo provavelmente dá para usar com o Windows 7, mas não garanto.
Os links que deixo abaixo são para download directo dos sites oficiais, para as versões de 64bits, mas antes de clicar convém sempre verificar se o link a que vão aceder é no site original.

* Antes de mais este Windows não trás os drivers USB necessários para comunicar com os exemplos USB-Device do Pico (aparecer como uma porta COM). Para instalar usei o Zadig. link para Zadig 2.7 . A instalação não é muito óbvia embora seja só correr o programa e escolher O "USB Serial (CDC)" e depois carregar no botão que diz "Install" ou "Upgrade" ou "Update".

* Podem instalar o git para Windows se o quiserem usar nos vossos projectos (eu recomendo) ou para ir buscar o SDK do Pico, senão podem fazer download do SDK em ZIP do github. Podem usar por exemplo a versão 64bit portable to git.

* Instalar o cmake, versão 3.3 ou superior. Instalei o cmake 3.24 para x86_64 . É só descomprimir, não é preciso instalar.

* Instalar um compilador nativo. É preciso um compilador que gera código para o "host system" (o sistema onde estão a desenvolver e compilar o código para o Pico) porque há umas tools que têm que ser compiladas, como por exemplo o assembler para o PIO. Também é necessário ter um "make" para usar no build das tools e no build do código para o Pico. A doc oficial recomenda instalar o Microsoft Build Tools 2022 ou lá o que é, mas não queria instalar mais coisas MS e resolvi usar o Mingw.
O instalador oficial "geral" não funciona :D, é preciso ir buscar este aqui, que é especificamente x86_64 posix seh. Este é só descomprimir, não é preciso correr um instalador.

* Instalar o GCC cross-compiler para ARM, o compilador que corre em windows mas gera código para o Pico.
link para a versão Mingw W64 i686 arm none ABI .

* Instalar o Python 3, porque o sistema de build usa-o algures lá pelo meio. Instalei o python 3.10 amd64 .

* Ir ao github buscar uma cópia do pico-sdk, e do pico-examples. Sigam o guia oficial.
https://github.com/raspberrypi/pico-sdk
https://github.com/raspberrypi/pico-examples
Agora há aqui uma diferença, porque usei um compilador nativo diferente do MS recomendado pela Raspberry Pi. O cmake gera makefiles de compilação para usar com o MS 2022 por omissão, e o SDK do Pico usa o nmake (o make da MS), daí que ao usar o cmake é preciso dizer-lhe para gerar para o Mingw, sempre que se use o cmake - é o parâmetro -G "MinGW Makfiles" como no passo 3 abaixo. E para compilar um projecto para Pico é preciso usar o mingw32-make em vez do nmake , como no passo 4) abaixo.

Têm que adicionar ao PATH as directorias de executáveis do mingw e cmake, e têm que criar 2 variáveis de ambiente. Eu tenho um .BAT para me preparar o ambiente para desenvolver em Pico numa linha de comando / DOS prompt / o que preferirem chamar-lhe, que faz o seguinte

set PATH=C:\devtools\cmake-3.24.0-rc2\bin;C:\devtools\python3.10-64bit\Scripts\;C:\devtools\python3.10-64bit\;C:\Windows\system32;C:\Windows;C:\devtools\Git\cmd;C:\devtools\Git\mingw64\bin;C:\devtools\Git\usr\bin;C:\devtools\mingw64-8.1.3\bin
set PICO_SDK_PATH=C:\projs\rpi\pico-sdk\
set PICO_TOOLCHAIN_PATH=C:\devtools\gcc-arm-11.2\


Finalmente, para fazer a 1ª compilação do SDK , assumindo que estão numa cmdline dentro da raíz do pico-sdk, é fazer

1) md build
2) cd build
3) cmake -G "MinGW Makefiles" ..\
4) mingw32-make


e a seguir os mesmos passos 1) a 4) na raiz do pico-examples para compilarem os exemplos. Para correr um exemplo no Pico é seguir o método oficial, power-cycle ao Pico a carregar no botão, esperar que apareça a drive e depois arrastar (ou copiar) o *.UF2 para lá.

E mais ou menos por alto é isto, espero que ajude alguém.
« Última modificação: 04 de Julho de 2022, 21:27 por Njay »

Offline jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.947
  • NERD!
Re: Desenvolvimento para RaspberryPi Pico em Windows < 10
« Responder #1 em: 04 de Julho de 2022, 16:44 »
Que grande biscatada :D

Nesse género de soluções, estou cada vez mais a inclinar-me para passar a usar um VMs. Pode-se usar o SO preferido de quem desenvolveu as ferramentas, não se enche o nosso SO do dia-a-dia de bloat (que ajuda a mantar a máquina a funcionar decentemente), e quando passar uns tempos sem usar está garantido que atualizações não relacionadas não quebraram o funcionamento. Outra vantagem é quando se decidir formatar e reinstalar tudo no PC, o que estiver nas VMs fica na mesma.

Também já li de relance alguém a falar em usar containers (docker) para ambientes de desenvolvimento no mesmo espírito, mas não aprofundei a leitura e parece-me que deve ser mais complexa a sua execução e utilização para esse fim: vejo (e uso) os containers mais orientados para correr uma aplicação do que andar a trabalhar em command line (apesar de ser possível).


Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.598
    • Tróniquices
Re: Desenvolvimento para RaspberryPi Pico em Windows < 10
« Responder #2 em: 04 de Julho de 2022, 18:10 »
É verdade e tens toda a razão, usar VMs é uma excelente maneira de nos prepararmos para o futuro. Há algumas razões para não ter seguido esse caminho desta vez (tenho VMs para algumas coisas), a 1ª e principal foi que não tenho muito espaço livre de disco e isto ocupa imenso, também a compilação de um projecto Pico. Só o SDK compilado são 112MB, o pico-examples 301MB. Compilei um projecto super básico à parte, e são 15MB. O python são 64MB, o git 592MB, o cmake 95MB, o cross-compiler 3.58GB, o MinGW 436MB. Algumas feramentas uso noutros projectos. Sempre que posso instalo as versões portable ou escolho versões sem instalação, assim basta fazer um backup dos ficheiros em si, da mesma directoria. Já lá vai o tempo em que eu colocava as ferramentas de dev todas sob controle de versões (hoje em dia o equivalente será ter uma VM :D ).
« Última modificação: 04 de Julho de 2022, 18:12 por Njay »

Offline KammutierSpule

  • Mini Robot
  • *
  • Mensagens: 1.481
Re: Desenvolvimento para RaspberryPi Pico em Windows < 10
« Responder #3 em: 06 de Julho de 2022, 09:15 »
VMs:
Há dias vi um cartoon sobre isso, era algo do género:

Citar
Começámos com programas monolíticos.
Depois, anos e anos a desenvolver Sistemas Operativos, a criar abstrações de software e bibliotecas dinâmicas.
Voltámos aos programas monolíticos (VMs, snap, dockers, etc).
- O circulo está completo!