查看: 862|回复: 3

[原创] 【LPC55S69】Linux下vscode+eide开发

[复制链接]
  • TA的每日心情
    无聊
    2021-12-29 19:06
  • 签到天数: 47 天

    [LV.5]常住居民I

    49

    主题

    188

    帖子

    21

    金牌会员

    Rank: 6Rank: 6

    积分
    1371
    最后登录
    2024-3-21
    发表于 2023-3-24 22:08:59 | 显示全部楼层 |阅读模式
    (一)

    NXP官方有 vscode 支持计划,预计在今年秋天:vscode支持
    但现在想用就必须自己动手,丰衣足食了。


    (二)创建工程

    - 在 [MCUXpresso SDK生成器] 编译sdk

    nxp-dlsdk.png


    - 通过 MCUXpresso Config Tools 配置

    - 或者在SDK页面选择下载例程

    nxp-dlexp.png

    (三)编译方案
    1 cmake

    - 安装 cmake 扩展:ms-vscode.cmake-tools

    - 安装 MCUXpresso Config Tools 或下载例程

    2 eide
    - 安装扩展 cl.eide

        创建空白工程并打开;如果打不开,先把所有vscode关掉再开一次;主要是由于在linux下 eide 扩展受限于单个软件的堆栈限制,如果要突破限制需要配置 ulimited,否则就要把其他vscode全部关掉给这个工程让路才行。

    - EIDE配置

        在setting.json里:
    1.     "EIDE.ARM.GCC.InstallDirectory": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools",
    2.     "cortex-debug.gdbPath": "/usr/local/mcuxpressoide-11.7.0_9198/ide/tools/bin/arm-none-eabi-gdb",
    3.     "cortex-debug.armToolchainPath": "/usr/local/mcuxpressoide-11.7.0_9198
    复制代码

    我这里的工具链是安装mcuxpresso ide,在安装目录下的。至于为什么不用mcuxpresso ide,主要是每次启动下载和调试都有蜜汁卡顿,而且内置的插件不支持部分调试器。

    - 创建工程
    1. 把上一步的扩展都拉到 eide 工程下:

    eide-format.png

    包括.S的 startup 文件都放进来,跟.c文件一样待遇就行,编译的时候会自动链接

    2. 配置 链接脚本 LPC55S69/gcc/LPC55S69_cm33_core0_flash.ld

    3. 设置宏定义 CPU_LPC55S69JBD100_cm33_core0

    4. 配置 下载方案pyOCD
    eide-pyocd.png

    (四)烧录方案
    - 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 的服务端。
       
    1. pyocd gdbserver --target lpc55s69 -p 3336 -T 4446 -R 5556
    复制代码

    - vscode 的 launch.json 文件配置如下:
    1.     {
    2.         "name": "pyocd-remote",
    3.         "cwd": "${workspaceRoot}",
    4.         "type": "cortex-debug",
    5.         "request": "attach",
    6.         "servertype": "external",
    7.         "gdbTarget": "localhost:3336",
    8.         "device": "lpc55s69",
    9.         "executable": "build/Debug/lpc55_fourth.elf",
    10.         "runToEntryPoint": "main",
    11.         "targetId": "lpc55s69"
    12.     },
    复制代码




    - 点击F5即可仿真


    - 如果想仿真之前先下载,可以配置为:
            "request": "launch"
        但不是每一种仿真器都可以支持,我手头的ulink和stlink多多少少都会有点问题,需要敲 pyocd flash 命令才能正常下载,但dap link都是支持的。


    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2023-3-25 14:09:52 | 显示全部楼层
    厉害了
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-26 15:16
  • 签到天数: 266 天

    [LV.8]以坛为家I

    3298

    主题

    6545

    帖子

    0

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    32003
    最后登录
    2024-4-9
    发表于 2023-3-27 09:44:09 | 显示全部楼层
    支持一下!
    签到签到
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-26 09:09
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    7

    主题

    985

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1993
    最后登录
    2024-4-19
    发表于 2023-3-27 10:14:49 | 显示全部楼层
    厉害了,我现在还没摸明白pyocd 怎么用
    ~~~~~~~~~~~~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 07:21 , Processed in 0.114005 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表