zoukankan      html  css  js  c++  java
  • 在ubuntu下使用CMake及VSCode对LoRaMac-node代码进行编译调试

    准备工作

    1. 下载代码LoRaMac-node

    2. 阅读LoRaMac-node目录下的doc文件夹中的development-environment.md

    开工

    安装所需环境

    1. CMaka( >= 3.6),

      sudo apt install CMake

      若ubuntu版本为16.04及以下,请参照development-environment.md中提示进行安装高版本的CMake

    2. GNU ARM-Toolchain

      Step1: Inside Ubuntu, open a terminal and input
      sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

      Step2: Continue to input
      sudo apt-get update

      Step3: Continue to input to install toolchain
      sudo apt-get install gcc-arm-embedded

      若提示已安装,请先删除原先安装的软件

      sudo apt-get remove gcc-arm-none-eabi

    3. 安装openocd

      sudo apt-get install openocd

    4. 安装VSCode

      • C/C++
      • CMake
      • CMake Tools
      • Native Debug

    开始操作

    1. 打开VSCode,将LoRaMac-node文件夹导入到VSCode中

    2. 会让选择kit,选择刚才安装的gcc-arm-embedded,正常安装目录在/usr/bin

    3. 点击VSCODE中的如下图标,在此栏的上方图标的三角和锤子分别为config(生成makefile文件),make(生成可执行文件)

    4. 点击之后,会在.vscode目录下生成launch.jsonsettings.json文件,其中setting.json中保存的式CMake的配置,修改其中的内容,可以修改生成的makefile,因为我手边没有stm32l1的芯片,所以在这,我修改成了MoteII和ping-pong(发现LoRaMac程序会提示FLASH不够),

    5. 修改之后点击CMake下的configure和build,会重新生成可执行文件。

    6. 至此,文件编译成功,接下来进行调试

      此处我先说一下openocd命令(我也不怎么了解,看development-environment.md现学的)

      openocd -f interface/stlink-v2.cfg -f target/stm32l0.cfg

      -f 用于选择cfg文件

    7. launch.json中有openocd的命令,可以修改其中的命林对其做修改适配我们的烧录器(因为我用的是stlink-v2),

    8. 直接按F5,启动调试

    正常的话,启动之后就会跳转到main函数了

    Note

    1. 本人对这套工具链还有些不熟悉,如有错误,还望指正
    2. 官方代码为低功耗的,在烧录之后再进Debug模式会进不去,提示exit code 1,经查是低功耗导致的
    3. 官方的md文件中没有说明低功耗设备在进入低功耗之后如何识别,经查,需要添加命令,完整的openocd命令为:
      openocd -f interface/jlink.cfg -c "transport select swd" -c "reset_config srst_only srst_nogate connect_assert_srst" -f target/stm32l0.cfg
  • 相关阅读:
    智课雅思词汇---十八、前缀peri是什么意思
    新东方雅思词汇---7.1、probation
    智课雅思词汇---十七、前綴il-, in-, ir-, im-有什麼關係
    英语发音规则---U字母-[复习中]
    英语发音规则---O字母
    Android之Http沟通——4.Android HTTP索取信息:HttpClient
    一步一步的理解C++STL迭代器
    Java学习之路:ArrayList用法
    LeetCode:Remove Duplicates from Sorted Array
    【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
  • 原文地址:https://www.cnblogs.com/answerinthewind/p/10818783.html
Copyright © 2011-2022 走看看