在线时间102 小时
UID3338547
注册时间2017-1-28
NXP金币49
TA的每日心情 | 无聊 2021-12-29 19:06 |
---|
签到天数: 47 天 [LV.5]常住居民I
金牌会员
- 积分
- 1371
- 最后登录
- 2024-3-21
|
(一)
NXP官方有 vscode 支持计划,预计在今年秋天:vscode支持
但现在想用就必须自己动手,丰衣足食了。
(二)创建工程
- 在 [MCUXpresso SDK生成器] 编译sdk
- 通过 MCUXpresso Config Tools 配置
- 或者在SDK页面选择下载例程
(三)编译方案
1 cmake
- 安装 cmake 扩展:ms-vscode.cmake-tools
- 安装 MCUXpresso Config Tools 或下载例程
2 eide
- 安装扩展 cl.eide
创建空白工程并打开;如果打不开,先把所有vscode关掉再开一次;主要是由于在linux下 eide 扩展受限于单个软件的堆栈限制,如果要突破限制需要配置 ulimited,否则就要把其他vscode全部关掉给这个工程让路才行。
- EIDE配置
在setting.json里:
- "EIDE.ARM.GCC.InstallDirectory": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools",
- "cortex-debug.gdbPath": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools/bin/arm-none-eabi-gdb",
- "cortex-debug.armToolchainPath": "/usr/local/mcuxpressoide-11.7.0_9198
复制代码
我这里的工具链是安装mcuxpresso ide,在安装目录下的。至于为什么不用mcuxpresso ide,主要是每次启动下载和调试都有蜜汁卡顿,而且内置的插件不支持部分调试器。
- 创建工程
1. 把上一步的扩展都拉到 eide 工程下:
包括.S的 startup 文件都放进来,跟.c文件一样待遇就行,编译的时候会自动链接
2. 配置 链接脚本 LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld
3. 设置宏定义 CPU_LPC55S69JBD100_cm33_core0
4. 配置 下载方案pyOCD
(四)烧录方案
- cortex-debug
- cortex-debug 支持 jlink、stlink、openocd、pyocd 在内的多种调试器接口;也支持 external这类gdbserver模式和qemu仿真
- openocd:
- openocd 有个特点,就是“两头分开收费”,一边适配调试器,另一边适配芯片,可以耦合,避免调试器和芯片排列组合的天量支持。
- nxp link 是支持 dap模式的,而openocd是支持dap link,因此调试器不成问题。
- 但openocd对lpc55s69的支持显然是不行,官方在21年说了没有这个支持:openocd对lpc55支持问题;我也没能从 mcuxpresso ide 里面找到配置文件。
- pyocd
- 一开始看到openocd走不通以为没办法了。结构偶然看见 cortex-debug 支持 pyocd,抱着不如一看的想法就去了解了一下,结果发现竟然在默认支持列表里!
- 列出所有支持的目标板 pyocd list --targets;可以看到是支持 lpc55s69
- pyocd flash --erase chip --target lpc55s69 rtthread.elf
- 如果配置了 eide 也可以直接点击插件里面的下载键
(五)调试
- 调试既可以用cpp(remote)方案,也可以用cortex-debug方案
- cortex-debug 可能不能直接配置为pyocd模式,因为默认仿真端口开辟5000,而按照我所使用的ubuntu kylin操作系统来说,这个端口是被系统占用,无法释放的。而 cortex-debug 在这方面存在缺陷,无法额外配置端口,因此需要使用"external" 模式突破端口封锁。
- 在命令行中使用 pyocd gdbserver 功能,启动类似 openocd 和 gdbserver 的服务端。
- pyocd gdbserver --target lpc55s69 -p 3336 -T 4446 -R 5556
复制代码
- vscode 的 launch.json 文件配置如下:
- {
- "name": "pyocd-remote",
- "cwd": "${workspaceRoot}",
- "type": "cortex-debug",
- "request": "attach",
- "servertype": "external",
- "gdbTarget": "localhost:3336",
- "device": "lpc55s69",
- "executable": "build/Debug/lpc55_fourth.elf",
- "runToEntryPoint": "main",
- "targetId": "lpc55s69"
- },
复制代码
- 点击F5即可仿真
- 如果想仿真之前先下载,可以配置为:
"request": "launch"
但不是每一种仿真器都可以支持,我手头的ulink和stlink多多少少都会有点问题,需要敲 pyocd flash 命令才能正常下载,但dap link都是支持的。
|
|