zoukankan      html  css  js  c++  java
  • STM32单片机开发Clion环境配置(windowslinux)

    STM32单片机开发Clion环境配置

    最近开始接触STM32。那个Keil编辑器实在不行,代码提示几乎没有。偶尔在网上看到能用Clion开发STM32,并且三大平台都可以。于是,折腾又开始了。

    • 一、工具准备

      • GNU Arm Embedded toolchain

      • 下载地址

      • linux:

        • sudo apt install gdb-arm-none-eabi
        • sudo apt install gcc-arm-none-eabi
      • gcc编译工具(根据你的系统选择32位还是64位)

        • windows下: mingw
        • linux下一般默认安装
      • OpenOCD

        • windows下的地址
        • linux下直接apt install即可
      • STM32CubeMX

        • 直接去ST官网下载最新版即可。下载完成直接就有三个系统下的版本。
        • linux:
          • 需要先安装Java环境:sudo apt install default-jre
          • 运行STM32CubeMX:
            • 可能需要加上运行权限:sudo chmod +x SetupSTM32CubeMX-6.1.1.linux
            • ./SetupSTM32CubeMX-6.1.1.linux
      • Clion直接去官网下载,目前最新版2020.1

        • 学生和老师用教育网邮箱即可免费使用。好像有期限:一年。
        • 他的全家桶都可以用。我反正用得很爽。
      • J-Link驱动

        • zadig:这个东西也要备一个。如果JLink烧写出现问题可能需要。用这个工具你一定要知道你在干什么。所以,我推荐用stlink.
      • stLink

        • windows下OpenOCD包中有这个驱动
        • Linux下需要编译安装才比较保险。
    • 二、安装注意事项

      • 1、基本按照上面的步骤安装。尽量全部下载完毕再安装。
      • 2、在Windows下能用管理员权限就用管理员权限。
      • 3、OpenOCD只用解压即可。但要注意在Windows系统变量里增加路径。
      • 4、MinGW不要用线上安装方式,慢到你怀疑人生。直接下载安装包即可。
      • 5、B站上有详细的教程。这一类的视频还不多见。
      • 6、这些工具很多是GNU下的,所以如果可能的话,还是在Linux下配置吧。我在Deepin15.11下配置成功。但当时只想着怎么把他搞定,没想着写笔记,现在有些步骤都忘记了。这也是以前学习的毛病,以为自己能记住,下次再用进,一切重新来过。这浪费了大量的时间。现在学乖了,只要有时间,我就把做过的一些事情记下来。这样,下次再搞不用再浪费时间。发到网上,也许还能不小心帮到同道中人,也多少算是一点功德吧!
    • 三、踩坑记

      • 1、Clion不能生成CMakeLists.txt文件。最后升级Clion2020.1版本问题解决。

      • 2、写入时出现Error: error writing to flash at address 0x08000000 at offset 0x00000000

        • https://github.com/platformio/platform-ststm32/issues/175
        • H:OpenOCDshareopenocdscriptsoard (H代表你的OpenOCD安装所在分区)这里有好多个CFG文件,建议把没有的删去,只留下STM开头的。如果你只是开发STM32的话。
        • 百度了N多次,找不到有用的。最后在上面这个地址找到解决办法。把cfg文件中的set WORKAREASIZE 0x2000这句话中的0x2000改为0x1000。
        • 因为我用的是F030的,所以我选的是stm32f0discovery.cfg这个文件。
      • 3、解决了1的问题之后又出现了链接问题,目前还未解决。

        • ====================[ Build | untitled1.elf | Debug]===========================
          "H:JetBrainsCLion 2019.3.5incmakewinincmake.exe" --build H:stm32untitled1cmake-build-debug --target untitled1.elf -- -j 6
          [  4%] Linking C executable untitled1.elf
          h:/gnutoo~1/92019-~1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file H:/stm32/untitled1/: Invalid argument
          collect2.exe: error: ld returned 1 exit status
          mingw32-make.exe[3]: *** [CMakeFilesuntitled1.elf.diruild.make:375: untitled1.elf] Error 1
          mingw32-make.exe[2]: *** [CMakeFilesMakefile2:75: CMakeFiles/untitled1.elf.dir/all] Error 2
          mingw32-make.exe[1]: *** [CMakeFilesMakefile2:82: CMakeFiles/untitled1.elf.dir/rule] Error 2
          mingw32-make.exe: *** [Makefile:117: untitled1.elf] Error 2
          
  • 相关阅读:
    Django ORM操作及进阶
    Django ORM字段和字段参数
    Django视图系统
    Django路由系统
    Django模板语言
    Django项目创建及相关配置,在pycharm终端打印SQL语句,在Python脚本中调用Django环境
    SQLALchemy之ORM操作
    SQLALchemy之介绍,基本使用
    SQLAlchemy创建表和删除表
    线程的通信与协作:sleep、wait、notify、yield、join关系与区别
  • 原文地址:https://www.cnblogs.com/xiaolee-tech/p/12706879.html
Copyright © 2011-2022 走看看