使用Clion开发stm32的时候怎么设置IAP烧写地址?程序运行的起始地址是0x8000000,怎么更改成0x8020000
keil5作为IDE来说,在代码补全方面、界面、流畅性和操作逻辑方面相比现在主流的IDE来说已经几乎没有优势了,之前开发小项目的时候盯着白底黑字debug时候的心情让人难以忘记,debug一下午,感觉眼睛都不属于自己的了。针对这个问题,有许多代替keil的方案,比如用vscode,或者其他基于eclipse修改的IDE。cubemx也支持了许多不同的IDE。
在很久之前的项目中写Python的时候接触了pycharm,被它流畅的开发和强大的代码补全能力深深吸引,直到最近用clion开发ros系统的时候,被clion的函数参数提示正式圈了粉。于是开始配置基于clion的stm32开发环境。
具体如何配置环境有许多大佬写过文章这里就不赘述了,我参考的是稚晖君在bilibili上发的教程,亲测可用。链接如下
当时想用stm32的dsp库,由于clion用的人比较少,网上关于这个问题的教程也几乎没有,所以当时花了很多时间去整,现在终于搞定了,写下来希望可以帮助到有和我同样问题的人。
当我们用keil开发的时候,想导入dsp库的时候网上搜搜有一大把可以搜,但是能在clion上用的很难找。其实cubemx已经为我们准备好了一切。
首先用cubemx创建一个工程,单片机选择自己使用的单片机,这里我选择的是stm32f103zet
中间没有必要选择外设设置,直接到最后。这里的关键是不要选择 Generate under root
然后选择code generator
会发现本来灰色不能选中的copy all used libraries into project folder可以选中了,我们选中,然后创建工程
创建完工程后,可以看到Drivers/CMSIS里面多了许多的文件,这就是cubemx给我们的库啦,我们这里要用到的是Lib和DSP里面的文件
Lib库里面有三个文件,对应的是不同的编译器,我们这里用GCC里面的.a格式的linux静态库
这就是我们要用的库
还有就是DSP/Include里面的三个头文件,这个和keil是一样的
然后在自己正在编辑的工程中创建文件放置这些文件,文件名可以随便取,自己有一套逻辑就好
在keil上操作的时候我们要天机头文件路径,导入库等。同样,在clion中也要告诉编译器这些信息。但是和keil不同的是,clion是用cmake组织编译文件,关键就是要编写cmakelists。
我们这里在cmakelists中添加库文件
然后添加头文件目录,我这里直接添加在原来就有的命令中了
ok
这样我们就可以使用啦,编译一下没有问题,就可以在工程中使用dsp库啦。
如果是f4系列,要记得在cmakelists中开启对fpu的支持。
如果这篇文章对你有帮助,点个赞呗~
首先,需要在STM32CubeMX中更改烧写地址。具体步骤如下:
在“_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进行编译和烧写程序。具体步骤如下:
在GDB窗口中输入以下命令来连接到板子:
(gdb) target remote localhost:3333
现在,可以开始使用Clion进行程序烧写和调试了。
请注意,在对地址进行更改之前,也应该仔细考虑硬件和软件的兼容性。如果您不确定如何正确更改烧写地址,请咨询硬件和软件专家的帮助。如果您对一些步骤不熟悉,建议先学习一下STM32开发的基础知识。