拖得有点久了,主要是最近期末事情多。
写在前面:因为是linux新手,一开始的想法是继续windows上的开发,由于keil用不了,别的没上手,先尝试了使用stm32cubeide完成原来的代码,使用过程中出现了些许问题,促使我写下这篇文章,也是希望使用别的ide进行开发时也能触类旁通吧。
Ubuntu上使用stm32cubeide
安装stm32cubeide
官网链接: 可能失效,这个很好找,也要注意代理问题.
这里找到deb下载即可,ubuntu安装在这里不赘述,简而言之:在你需要安装的文件夹下解压文件得到.sh文件,给他执行权限(chmod +x或者右键可执行),然后命令行执行即可,注意一堆英文是在提示权限版权等信息,需要按空格(建议是空格,很多文章说回车)跳到最下,输入Y执行,注意应该是有两到三次Y,最后让你安装stlink还是什么可以N不安装了。
可参考博客:这篇很有帮助,但是比较久远哈哈哈
安装完成可以看到系统应用栏出现了cubeide的图标。
安装openocd
原因是我们需要一个调试器来烧录到单片机上,先给个参考文章openocd下载安装
具体步骤:下载地址下载openocd后sudo make接sudo make install即可,默认路径是/usr/local/share。
尝试开发&烧录程序
正常使用cubeide,一个问题是直接copy来的项目可能出现找不到文件,这里重新不关闭ide,关闭所有窗口,左上角文件重新添加项目即可;第二个问题是使用调试器这里
多数板子会出现硬件大小不够blabla所以我们采用ocd的方法调试,这里要注意enable live expressions这个不要连接,否则接下来的openocd命令行里会提示gdb连接数过多。(这个是卡了我最久的,因为哪里都没说过,google搜了很久有个人才回答我,live expressions这个功能等同于一个gdb连接,ps:所以说还是windows上简单操作)
这里要手动先连接板子,命令行输入openocd的命令:openocd -f /usr/local/share/openocd/scripts/board/stm32f1.cfg即可打开(先连上你的板子),这里讲一下配置:你可以自己按照那个文章的用两次-f选择,也可以像我这样融合到一个文件里方便使用:
我的是stm32f103系列,本身的scripts文件夹里没有自带我需要的板子的配置,所以这里自己新建一个.cfg文件,如下图配置即可:我的便是interface文件夹下的stlink连接+target文件夹下的stm32f1x版型。
连接好之后,注意按照上面那个文章说的,新建一个终端,用来控制板子的烧录,主要也就三个命令
第三个问题是需要使用bin文件来写入板子,在项目上右键选择properties,找到下图这,选择生成bin文件即可。
总结烧录流程
1.编译好你的项目,选择生成bin文件
2.连上板子,命令行打开你的openocd,cubeide选择ocd调试,run,应该如下图
3.新建一个终端,如下图输入:(忽略halt)
先进入4444端口,halt后,flash write_image erase 你的bin文件位置
4.输入reset,完事,程序开始跑了
5.更新你的代码,重来即可
6.高级操作,修改makefile,如上面文章所写操作即可