需要用到的硬件
现在开始,ubunt系统安装在vmware里,版本18.04,已安装软件,git,Sogou输入法,wps,其余均未动过
vscode安装
百度vscode,第一个就是,下载时候选择deb后缀的包
选择svaefile
下载完成后安装,和win10下安装软件几乎一样,只是多了一个输入密码的步骤
可以看到,vscode已经在了
stmcubemx安装
需要先安装jdk或者jre,此处选择安装jdk,因为比较简单,终端输入以下命令
可以看到安装的是openjdk,和oraclejdk略有区别,但并不影响使用,详情可
以自行百度,此处不纠结。我们遵循两个原则,第一,能用开源免费的东西
尽量用开源免费的,能使用最少的依赖搭建起来尽量不多用任何一个条件。
sudo apt-get update 更新软件包列表
sudo apt-get install openjdk-8-jdk 安装jdk8
java -version 查看是否安装成功,出现下面这段就证明安装成功
去官网下载stm32cubemx包,地址:https://www.st.com/zh/embedded-software.html
后续填入邮箱和姓名后stm会发送一个下载地址到邮箱,前提是你要注册了账号,现在我们到邮箱下载该包。
下载完成后解压该包,解压后会有一个.linux的包,在该目录下打开终端
我是没有动,直接就在Downloads文件夹下就提取了,复制该文件名字,输入以下代码,可以看到在安装过程中遇到一些问题,大家可以仔细看一下上图终端的指令以及报错信息,主要就是权限问题,即使root了还是权限不够,后来输入了chomd a+x filename后解决了,filename就是要安装的包的名字,也就是我们刚才复制的名字,弹出安装界面后一路next就可以了。
安装路径最好记一下,因为这个软件不会创建图标。
点击其他位置到根目录下,进入安装路径文件夹下
到相应的路径下,双击该图标即可打开软件
点击help,点击管理嵌入式软件包
根据芯片,选择最新版安装,我的是f1,所以就选择了f1
根据芯片型号创建工程
选择芯片,选择封装,开始配置,这里有两个,其实就是引脚的封装区别
高速时钟选择外部晶振,低速我也不会选,此处就没有选,但不影响等会我门测试,如果有会设置低速外部晶振的大佬麻烦教程发我邮箱以下,谢谢[email protected]
调试选择jtag5针
PB5设置位输出,战舰板的led接在pb5脚上,方便后面演示
sudo apt update 更新安装包列表
sudo apt-get install build-essential 该包内包含GCC套件
sudo apt-get install openocd
sudo apt-get install gcc-arm-none-eabi
安装这些插件,我圈起来的是必须的,其他装不装无所谓
使用vscode打开刚才使用stm32cubemx生成的工程文件夹
在根目录下新建文件详情看图示
然后配置Launch文件和task文件,选择C++
launch文件配置
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "STM32F103ZET6", //调试入口显示的名字,随便起
"cwd": "${workspaceRoot}", //工作目录,根路径
"executable": "${workspaceFolder}/build/${workspaceRootFolderName}.elf", //调试文件
"request": "launch",
"runToMain": true,
"type": "cortex-debug", //配置为使用插件调试
"servertype": "openocd", //映射openocd
"configFiles": ["${workspaceRoot}/openocd.cfg"], //openocd配置
"preLaunchTask": "Build", //启动前执行的任务,对应待会要配置的task文件里的标签
"postDebugTask": "Reset" //同上,调试结束执行的任务
}
]
}
task文件配置,点击ctrl+shift+p生成task文件
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "Build", //对应launch文件里的属性
"command":"make -j8", //编译指令
"problemMatcher":[
"$gcc"
],
"group": "build"
},
{
"type": "shell",
"label": "Update", //对应launch文件里的属性
"command": "make -j4;make update", //编译指令
"problemMatcher": [
"$gcc"
],
"group": "build"
},
{
"type": "shell",
"label": "Reset", //对应launch文件里的属性
"command": "make reset", //编译指令
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
makefile文件修改,使得可以在调试前自动下载hex文件到flash
此处上图我圈的可能有一点问题,好像只有update:和reset:是我们后来添加的
update:
openocd -f openocd.cfg -c init -c halt \
-c "program $(BUILD_DIR)/$(TARGET).hex verify reset exit"
reset:
openocd -f openocd.cfg -c init -c halt -reset -c shutdown
# *** EOF ***
可以看到LED灯已经被点亮,至此环境搭建完成,期间可能会遇到很多坑,结合csdn的一些教程基本都能解决,下一章会讲解怎样把原子的教程搬到这个环境下。
有问题发邮件[email protected]