有时候想做一个C扩展在MicroPython封装下,之前做扩展都是在单片机普通开发环境做完,再移动到mpy里修改一些对接的地方,我在想,能不能直接开发模块,然后直接在上面调试呢,说干就干.
我用VSC环境配置,之前用CLion总能识别太多目标而且传递参数时候似乎有问题,还不知道为什么.
新建tasks.json这是用于控制编译构建步骤的.
{
"version": "2.0.0",
"tasks": [
{
"label": "Build Project",
"type": "shell",
"command": "make",
"args": [
"-C",
"ports/rp2",
"BOARD=RPI_PICO2_W",
"DEBUG=1",
"USER_C_MODULES=../../examples/usercmodule"
]
}
]
}
之后再新建一个launch.json来调试.
{
"version": "0.2.0",
"configurations": [
{
"name": "Cortex-Debug",
"cwd": "${workspaceRoot}",
"executable": "${workspaceRoot}/ports/rp2/build-RPI_PICO2_W/firmware.elf",
"request": "launch",
"type": "cortex-debug",
"servertype": "openocd",
"configFiles": [
"${workspaceRoot}/openocd.cfg"
],
"gdbPath": "/usr/bin/gdb-multiarch",
"runToEntryPoint": "main",
"preLaunchTask": "Build Project"
}
]
}
最后就是调试.

其实就是这么简单,结果搞了一个下午,主要是在Windows下构建时,PICO SDK本身用于其他项目都是正常的,到这里他就蒙了,在MSYS2环境里就出现找不到Windows格式路径,在Windows格式里就找不到MSYS2风格的路径,感觉比较混乱.但是如果你只是干普通的项目,却不会有任何问题.

文件明明就是存在的,无解,pico-example和pico-extras里的各种项目都轮了一遍都是正常的,不管是MSYS2还是直接原生构建.
代码真工整