使用Clion开发stm32的时候怎么设置IAP烧写地址?

使用Clion开发stm32的时候怎么设置IAP烧写地址?程序运行的起始地址是0x8000000,怎么更改成0x8020000

  • 这篇博客: 用clion配置开发stm32并且导入第三方库中的 用clion配置开发stm32并且导入第三方库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • ​ keil5作为IDE来说,在代码补全方面、界面、流畅性和操作逻辑方面相比现在主流的IDE来说已经几乎没有优势了,之前开发小项目的时候盯着白底黑字debug时候的心情让人难以忘记,debug一下午,感觉眼睛都不属于自己的了。针对这个问题,有许多代替keil的方案,比如用vscode,或者其他基于eclipse修改的IDE。cubemx也支持了许多不同的IDE。

    ​ 在很久之前的项目中写Python的时候接触了pycharm,被它流畅的开发和强大的代码补全能力深深吸引,直到最近用clion开发ros系统的时候,被clion的函数参数提示正式圈了粉。于是开始配置基于clion的stm32开发环境。

    ​ 具体如何配置环境有许多大佬写过文章这里就不赘述了,我参考的是稚晖君在bilibili上发的教程,亲测可用。链接如下

    稚晖君的clion嵌入式开发教程

    ​ 当时想用stm32的dsp库,由于clion用的人比较少,网上关于这个问题的教程也几乎没有,所以当时花了很多时间去整,现在终于搞定了,写下来希望可以帮助到有和我同样问题的人。

    ​ 当我们用keil开发的时候,想导入dsp库的时候网上搜搜有一大把可以搜,但是能在clion上用的很难找。其实cubemx已经为我们准备好了一切。

    ​ 首先用cubemx创建一个工程,单片机选择自己使用的单片机,这里我选择的是stm32f103zet

    avatar

    中间没有必要选择外设设置,直接到最后。这里的关键是不要选择 Generate under root

    avatar

    然后选择code generator

    会发现本来灰色不能选中的copy all used libraries into project folder可以选中了,我们选中,然后创建工程

    avatar

    创建完工程后,可以看到Drivers/CMSIS里面多了许多的文件,这就是cubemx给我们的库啦,我们这里要用到的是Lib和DSP里面的文件

    avatat

    Lib库里面有三个文件,对应的是不同的编译器,我们这里用GCC里面的.a格式的linux静态库

    avatar

    这就是我们要用的库

    avatar

    还有就是DSP/Include里面的三个头文件,这个和keil是一样的

    avatar

    然后在自己正在编辑的工程中创建文件放置这些文件,文件名可以随便取,自己有一套逻辑就好

    avatar

    在keil上操作的时候我们要天机头文件路径,导入库等。同样,在clion中也要告诉编译器这些信息。但是和keil不同的是,clion是用cmake组织编译文件,关键就是要编写cmakelists。

    我们这里在cmakelists中添加库文件

    avatar

    然后添加头文件目录,我这里直接添加在原来就有的命令中了

    avatar

    ok

    这样我们就可以使用啦,编译一下没有问题,就可以在工程中使用dsp库啦。

    如果是f4系列,要记得在cmakelists中开启对fpu的支持。

    如果这篇文章对你有帮助,点个赞呗~

  • 以下回答由chatgpt基于相关博客总结生成:

    首先,需要在STM32CubeMX中更改烧写地址。具体步骤如下:

    1. 打开STM32CubeMX,创建一个新的工程,并添加所需的外设和中断。
    2. 在“Project Manager”选项卡下,将“Code Generator”选项卡中的“Toolchain / IDE”设置为“Makefile”。
    3. 在“Project Manager”选项卡下,转到“Settings”选项卡。在“Project Settings”下,“Code Generator”选项卡中的“Generate peripheral initialization as a pair of '.c/.h' files per peripheral”需要勾选。
    4. 在“Project Manager”选项卡下,单击“Generate Code”。
    5. 在生成的代码中,找到“startup_stm32f10x_hd.s”文件(根据您的具体型号可能会有所不同)。打开该文件,并定位到“_reset_handler”函数。
    6. 在“_reset_handler”函数前面添加以下代码:

      ; Vector Table Mapped to Addresses in Flash AREA RESET, DATA, READONLY EXPORT __Vectors __Vectors DCD 0x8020000 ; load address of vector table

    这将更改向量表的加载地址为0x8020000。

    接下来,将使用Clion进行编译和烧写程序。具体步骤如下:

    1. 打开Clion,创建一个新的CMake项目。配置好工具链和开发环境。
    2. 将生成的代码复制到Clion项目的“src”文件夹中。
    3. 在Clion中编辑“CMakeLists.txt”文件,以便正确地编译项目。
    4. 将程序下载到STM32F103C6T6小蓝板上。使用ST-Link V2连接板子并运行OpenOCD软件。
    5. 在Clion中使用“Tools -> Run CMake”菜单选项进行编译。
    6. 使用“Tools -> Attach GDB Debugging”菜单选项,打开GDB调试窗口。
    7. 在GDB窗口中输入以下命令来连接到板子:

      (gdb) target remote localhost:3333

    8. 现在,可以开始使用Clion进行程序烧写和调试了。

    请注意,在对地址进行更改之前,也应该仔细考虑硬件和软件的兼容性。如果您不确定如何正确更改烧写地址,请咨询硬件和软件专家的帮助。如果您对一些步骤不熟悉,建议先学习一下STM32开发的基础知识。