2

树莓派Pico快速上手

 3 years ago
source link: https://www.taterli.com/7491/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

树莓派Pico快速上手

TLDR:

  • 没什么特色,和普通单片机一看,还不如ESP32S2.
  • 目前开发资源还很有限,而且操作起来也比较麻烦.
  • 可以使用OpenOCD进行调试,也就是说,可以用标准JTAG工具魔改驱动后调试,比如老朋友Zadig.
  • 支持VSC和Eclipse,CLion,推荐树莓派下开发,也支持其他平台下开发.
  • 开发语言:C/Python/ASM 支持平台:树莓派(推荐)/Windows/Ubuntu/Mac(难以配置)

Pico的基本硬件资源:

  • 2个SPI,2个I2C,2个UART,3个12位ADC,16个PWM,与传统单片机一样需要Remap/Alt.
  • 片上温度传感器/浮点加速/PIO状态机/内置震荡/双核133 MHz
  • 邮票孔模块/可能后续还会提供单独芯片出售(我自己的猜测)
  • 可以用1个Pico调试另一个Pico,估计和CMSIS-DAP差不多原理.
  • 官方支持MicroPython/C开发

一开始肯定是要先部署环境,推荐要在树莓派系统中才能配置.(其实Ubuntu x64,Windows也可以,不过需要自己解决一些问题,或者后续我再写下.)

git clone https://github.com/raspberrypi/pico-setup.git
pico-setup/pico_setup.sh

安装环境需要漫长的等待…

然后还要根据喜好,安装C或者Python的SDK.

git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update --init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git

代码目录:

正在编译整个example工程,这里显示的是blink程序的源码.

编译成功后就得到UF2,拖到那个设备模拟出来的U盘里面,就可以更新固件了,如果本身有固件,还要按着BOOT按键才能进入下载固件的状态.

为了降低开发门槛,还搞了一个GUI配置生成工程代码的工具,毕竟还要写CMake什么,很多人头疼不已.(其实我也头疼,因为我懒.)

git clone https://github.com/raspberrypi/pico-project-generator.git
cd pico-project-generator
 ./pico_project.py --gui

大概是这样的.

GUI配置工具

能很方便生成VSC工程,连中断函数都给出来了,然而没直接选中编译工具和调试配置,可能是初期的BUG吧.

代码生成效果

现在尝试MicroPython方式开发.

git clone -b pico --recurse-submodules https://github.com/raspberrypi/micropython.git
cd micropython
make -C mpy-cross
cd ports/rp2
make

经过一轮骚操作,就能得到firmware.uf2/firmware.elf,当然是把firmware.uf2丢到显示的U盘里面.

得到UF2文件.

MicroPython应该不用教程了吧,很熟悉的配方了.

还有一个rp2模块,可以嵌入汇编代码,大家还是看官方参考:https://github.com/raspberrypi/pico-micropython-examples/tree/master/pio/pio_1hz.py#L1-L33 (😀,有多少人会写汇编?)

其他模块的,暂时就不扯了,不然扯太远了,比如内置的ssd1306库?都可以在官方repo里找到文档和example,不过,值得注意的是,目前MicroPython不能支持保存代码,所以,掉电就太监了~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK