在Linux下搭建STM32开发环境攻略

发布者:千变万化最新更新时间:2021-05-13 来源: eefocus关键字:Linux  STM32  开发环境 手机看文章 扫描二维码
随时随地手机看文章

Linux发行版是64bit的Fedora19,方案选择为:Eclipse+CodeSourcery+OpenOCD+STLINKv2。


NO1.准备STM32的开发板,购买仿真器STLINKv2。


NO2.安装 CodeSourcery


如果是64bit机器,首先确认它能够运行32bit的软件。CodeSourcery可以在官网https://sourcery.mentor.com下载,名称为arm-2013.05-23-arm-none-eabi.bin,安装它。


CodeSourcery是编译好的二进制GCC程序包。


NO3.安装 OpenOCD


实际上,使用下面这个命令就可以:


yum install openocd


openocd是开源仿真软件,支持 STLINKv2。


NO4.安装 STLINKv2的驱动


在google使用关键字搜索即可,也是开源软件。安装它可能要费一番周折,你可能需要先安装systemd-devel,libusb-1.0,autoconf和automake,然后export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig,执行这些操作的理由都会在config.log文件中找到。另外别忘了将rules文件加入/etc/udev/rules文件夹,并且载入它。


NO5.安装 Eclipse及ARM插件


在Eclipse官网下载它,解压就能用。 在打开的界面上点击help->Install New software,安装ARM插件。


NO6.下载STM代码


包括所有的.h和.c文件,以及启动代码startup_stm32f10x_md.S(注意S要大写)和.ld配置文件。


NO7.编译STM代码


使用Eclipse新建C Project,将STM代码放进去。根据你自己的STM32芯片类型,修改.S和.ld文件内容,注意.ld文件中要使用绝对路径。修改工程属性,注意要修改头文件路径、芯片类型和GCC工具(即CodeSourcery,同样使用绝对路径)。点击build all即可。如果编译不成功,就根据Eclipse的console提示,搜索解决方法。


NO7.openocd和arm-none-eabi-gdb仿真与调试


连接好硬件之后,执行


openocd -f stlink-v2.cfg -f stm32f1x_stlink.cfg //注意要有绝对路径


如果硬件和STLINKv2的驱动都没有问题,它会出现:


Info : This adapter doesn't support configurable speed


Info : STLINK v2 JTAG v16 API v2 SWIM v4 VID 0x0483 PID 0x3748


Info : Target voltage: 3.269657


Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints


在另外一个终端执行arm-none-eabi-gdb,在它的提示符下输入下面的命令:


(gdb) target extended-remote : 3333


(gdb) monitor reset init


(gdb) load maria_test.hex


(gdb) monitor reset


现在,STM32就会正常运行了。


关键字:Linux  STM32  开发环境 引用地址:在Linux下搭建STM32开发环境攻略

上一篇:Keil5 + STM32F2xx_StdPeriph_Lib_V1.1.0 建立工程 
下一篇:STM32之NVIC知识讲解

推荐阅读最新更新时间:2024-11-17 05:01

stm32定时器主从模式
TIM2作master;TIM3,TIM4作slave 定时器2事件更新被用作触发输出TRGO 从定时器TIM3,TIM4工作在从模式:门控模式 触发选择设为:ITR1,这样TIM2的TRGO就连到了TIM3和TIM4的内部触发输入ITR1上,经过一系列选择器之后TIM2的TRGO就是TIM3和tim4的TRGI; 这样一来就可以通过控制TIM2的period和Pulse来控制TIM3和TIM4输出一定的脉冲个数;
[单片机]
<font color='red'>stm32</font>定时器主从模式
STM32_DAC输出三角波形
今天的软件工程下载地址(360云盘): https://yunpan.cn/cPi8GB2DyeKzI 访问密码 1a45 STM32F10x的资料可以在我360云盘下载: https://yunpan.cn/crBUdUGdYKam2 访问密码 ca90 工程概要说明:该工程通过配置,输出固定三角波形,频率和幅度也是固定的,当然也是可以变化,如果有朋友需要可以微信公众号中留言。 关于“STM32F103 DAC输出三角波形” 我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。 一、RCC时钟配置 该函数位于在bsp.c文件下面; 使能RCC时钟:RC
[单片机]
STM32_DAC输出三角波形
STM32学习之路-SysTick的应用(时间延迟)
前面已经说了SysTick的工作原理什么的了,这里就不说了.. 先来做第一个实验: 盗自奋斗的例子,嘿嘿, 用SysTick产生1ms的基准时间,产生中断,每秒闪烁一次(LED1 V6) (1)外围时钟初始化(系统时钟初始化这里就不写了,上次说了) (2)LED初始化 (3)SysTick配置 (4)中断优先级 (5)中断处理函数 (6)延迟函数 OK,上代码: (1)外围时钟初始化 void RCC_Config(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_A
[单片机]
<font color='red'>STM32</font>学习之路-SysTick的应用(时间延迟)
ARM-Linux 中断分析
ARM体系结构中,把复位、中断、快速中断等都看作‘异常’,当这些‘异常’发生时,CPU会到固定地址处去找指令,他们对应的地址如下: 地址 异常类型 进入时的工作模式 0x00000000 Reset Supervisor 0x00000004 Und Undefined 0x00000008 Soft interupt Supervisor 0x0000000c Abort(prefetch) Abort 0x00000010 Abort(data) Abo
[单片机]
stm32之pwm输出实验
首先是一些必要的声明 #include stm32f10x.h #include pwm.h u32 Sys_Clk=1000000;u16 pwm1_2_Freqz;//pwm波1,2输出口的频率u16 pwm3_4_Freqz;//pwm波3,4输出口的频率u16 TIM2_PERIOD;//定时器跳转周期数u16 TIM4_PERIOD;u16 CCR_VAL1 ;//定时器的比较寄存器的取值,当实际值大于此值时,电平取反u16 CCR_VAL2 ;u16 CCR_VAL3 ;u16 CCR_VAL4 ;123456789101112 下面是正文……注释全是手打啊(≧▽≦)/ void PWM_GPIO_Config(voi
[单片机]
<font color='red'>stm32</font>之pwm输出实验
STM32八种IO口模式区别
STM32八种IO口模式区别 (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 以下是详细讲解 (1)GPIO_Mode_AIN 模拟输入 即关闭施密特触发器,将电压信号传送到片上外设模块(不接上、下拉电阻) (2)GPIO_Mode_IN_FLOATING 浮空输入 浮空输入状态下,IO
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved