RP2040入门(一)配置开发环境

树莓派的RP2040是一个比较有特色的单片机,除了价格便宜以外,PIO这个可编程组件可以实现很多传统MCU不借助CPLD或者FPGA很难实现的功能。

想把RP2040学起来用起来,第一步就是配置开发环境。目前配置RP2040的环境已经比较简单了,但是仍然有坑,所以写一篇文章记一下。

  • Windows环境
    Windows下配置RP2040开发环境,最好用的并不是官方推荐的VSCode+插件,而是VisualGDB。
  1. 安装Visual Studio2022,社区版即可,选桌面C++开发就足够了。
  2. VisualGDB - Serious cross-platform support for Visual Studio 下载VisualGDB并安装。
  3. 和谐文件[分享]VisualGDB和VisualKernel的破解-资源下载-看雪-安全社区|安全招聘|kanxue.com,最新的在116楼。注册选Custom或者更高版本。
  4. 安装注册完以后,新建工程里面直接就可以选树莓派PICO,按照提示下载对应的包即可。
    image
  5. 新建工程的最后一步是选择调试器,如下:
    image
    选OpenOCD,调试器请按照自己有得选,比如JLink,后面会单独说明,频率的话不确定可以用默认,不稳定可以改成低的。
    调试协议选SWD。是否每次都编程Flash,可以按照自己需要弄。
    复位设备建议都选上。

官方Windows开发环境

  1. 树莓派官方提供了一个一键安装包:https://github.com/raspberrypi/pico-setup-windows/releases/latest/download/pico-setup-windows-x64-standalone.exe
  2. 这个安装包会安装VScode、Cortex-Debug - Visual Studio Marketplace、Arm GCC 套件、OpenOCD、RP2040 SDK等必要的内容,自动配置好环境变量
  3. VSCode需要配置好settings.json和launch.json才可以开发调试,后面会单独说明。

 

    • Linux环境全自动安装:
      RP2040的默认开发环境是Linux,可以用脚本自动安装,也可以全手工配置。
      1. 下载wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
      2. chmod +x pico_setup.sh
      3. 运行./pico_setup.sh
      4. 这个脚本做的基本上和上面Windows安装包的事情差不多。
    • Linux环境手工安装:
      1. 手工安装稍微有点费时间,可以参考getting-started-with-pico.pdf的2.1配置SDK、2.2安装工具链,注意Ubuntu自带的没有ARM提供的新。
      2. 按照5.1下载OpenOCD并编译
      3. 按照6.2安装GDB
      4. 按照7.1安装VSCode
    • VSCode的settings.json和launch.json
      1. settings.json

{
    // These settings tweaks to the cmake plugin will ensure
    // that you debug using cortex-debug instead of trying to launch
    // a Pico binary on the host
    "cmake.statusbar.advanced": {
        "debug": {
            "visibility": "hidden"
        },
        "launch": {
            "visibility": "hidden"
        },
        "build": {
            //"visibility": "hidden"
        },
        "buildTarget": {
            //"visibility": "hidden"
        }
    },
    "cmake.buildBeforeRun": true,
    "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
}

      1. launch.json

{
     "version": "0.2.0",
     "configurations": [
         {
             "name": "Pico Debug",
             "cwd": "${workspaceRoot}",
             "executable": "${command:cmake.launchTargetPath}",
             "request": "launch",
             "type": "cortex-debug",
             "servertype": "openocd",
             //"gdbPath" : "gdb-multiarch",//如果是Ubuntu apt安装的就是这个
             "gdbPath" : "arm-none-eabi-gdb",//如果是从ARM下载的GCC工具链,就是这个
             "device": "RP2040",
             "configFiles": [
                 "interface/jlink.cfg",//使用jlink配置文件,配置文件下面会有说明
                 "target/rp2040.cfg"
             ],
             "svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd",
             "runToEntryPoint": "main",
             // Work around for stopping at main on restart
             "postRestartCommands": [
                 "break main",
                 "continue"
             ],
             "showDevDebugOutput": "raw",
         }
     ]
}

  • 配置调试器

    我试过了四种调试器

      1. Jlink和JlinkOB,Windows下面请用USB驱动工具,将JLink的驱动改为WinUSB,要不然OpenOCD不认识。
        配置文件要确认是SWD:

    transport select swd

    adapter speed 1000

      1. CMSIS DAP Link,需要更新固件到2.1,1.x的不支持multidrop。
      2. FT2232H,网上一百出头那个,配置文件用这个:
        新建一个ft2232h-swd.cfg放在%localappdata%\VisualGDB\EmbeddedDebugPackages\com.sysprogs.arm.openocd\share\openocd\scripts\interface\ftdi

    adapter driver ftdi

    ftdi vid_pid 0x0403 0x6010

    ftdi channel 1

    ftdi layout_init 0x0008 0x000b

    ftdi layout_signal SWD_EN -data 0

    transport select swd

    adapter speed 3000

    • Linux下面如果找不到调试器,那么需要配一下udev规则
    1. 首先lsusb找到你的调试器,记下VID、PID
    2. 在/etc/udev/rules.d下面新建一个对应的规则文件,比如就叫90-ft2232.rules,内容如下:
      SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", GROUP="skogkatt", MODE="0666"
      其中用户组什么的改成你自己的
    3. sudo udevadm control --reload或者重启生效
posted @ 2023-11-19 19:22  Skogkatt  阅读(1346)  评论(0编辑  收藏  举报