collapse

* Posts Recentes

Rede de comboios elétricos totalmente autónomos 10 ton em Rust em realtime. por blabla
[18 de Setembro de 2022, 18:44]


NiMH por 18650 por almamater
[18 de Setembro de 2022, 17:21]


How We Get Down to 0.2nm CPUs and GPUs - TechTechPotato por blabla
[18 de Setembro de 2022, 15:38]


Nova secção de Raspberry Pi Bare Metal em C e em Rust e Systems Programming por blabla
[04 de Setembro de 2022, 08:55]


The code for AGI will be simple - John Carmack and Lex Fridman por blabla
[29 de Agosto de 2022, 07:36]


Wavelets: a mathematical microscope por blabla
[28 de Agosto de 2022, 20:50]


Bom livro - Dive Into Systems por blabla
[28 de Agosto de 2022, 12:19]


graus negativos inclinação por josecarlos
[28 de Agosto de 2022, 11:31]


Super obsolescência super programada? por SerraCabo
[06 de Agosto de 2022, 11:36]


Motor de aspirador por dropes
[02 de Agosto de 2022, 22:18]

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

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

Offline Njay

  • Mini Robot
  • *
  • Mensagens: 3.595
    • 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 »

Online jm_araujo

  • Mini Robot
  • *
  • Mensagens: 2.865
  • 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.595
    • 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.463
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!