Ubuntu STM32工具链安装

OOo,TeX,KO,ABI,GIMP,Picasa,ProE,QCAD,Inkscape,Kicad,Eagle
回复
boiledfish
帖子: 3
注册时间: 2012-08-13 8:52

Ubuntu STM32工具链安装

#1

帖子 boiledfish » 2012-08-13 9:37

------------------------------------------------------------------------------------------------------------------------------------------------------
1. 安装环境
Ubuntu 12.04 32bit版本(64bit不行),中英文都可以。虚拟机下也安装成功过。
------------------------------------------------------------------------------------------------------------------------------------------------------
2. 工具链安装步骤
2.1 先安装git

代码: 全选

sudo apt-get install git
2.2 下载toolchain

代码: 全选

git clone git://github.com/esden/summon-arm-toolchain 
2.3 安装依赖包

代码: 全选

sudo apt-get install zlib1g-dev libtool flex bison libgmp3-dev libmpfr-dev libncurses5-dev libmpc-dev autoconf texinfo 
build-essential libftdi-dev
如果照搬我的说明,依赖包安装不成功,除开zlib1g-dev和libtool,可以直接复制summon-arm-toolchain/README里的命令
2.4 进入summon-arm-toolchain目录,建立一个sources文件夹。

代码: 全选

mkdir sources
到我的百度网盘(http://pan.baidu.com/netdisk/singlepubl ... 4268735819)里拷贝源码包到sources文件夹。
直接执行./summon-arm-toolchain,也是从网络上下载binutils这些源码包,其中gcc-linaro-4.6-2011.10.tar.bz2这个包下载非常缓慢。当然,如果您的网络不错,可以不用从我的网盘拷贝
2.5 再执行./summon-arm-toolchain,安装开始。默认的安装目录是~/sat。
可以在命令后跟参数设定安装目录和其它功能 (详见README)。我的设置是:

代码: 全选

./summon-arm-toolchain PREFIX=~/stm32_toolchain OOCD_EN=0
安装目录是~/stm32_toolchain ,OOCD功能关闭,默认是打开的,打开状态下我没有安装成功,由于是用stlink进行烧写,也就用不上OpenOCD了
2.6 等待等待......大概30分钟(i3,4G内存,您估摸着做点其它事吧)。开启另外一个终端,设置一下PATH。主目录下,编辑.bashrc(隐藏文件),文件末尾加上export PATH=$PATH:~/stm32_toolchain/bin(这个是我的设置)
2.7 安装结束后,运行arm-none-eabi-gcc --version,看到如下提示表示安装
成功。

代码: 全选

arm-none-eabi-gcc --version

代码: 全选

arm-none-eabi-gcc (Linaro GCC 4.6-2011.10) 4.6.2 20111004 (prerelease)
Copyright (C) 2011 Free Software Foundation , Inc
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE
------------------------------------------------------------------------------------------------------------------------------------------------------
3. STLINK安装步骤(这个容易点,只针对V2)
3.1 安装依赖包

代码: 全选

sudo apt-get install libusb-1.0 pkg-config
后面一个包一般是不需要安装的,默认的Ubuntu安装就已经安装好了
3.2 下载stlink

代码: 全选

git clone https://github.com/texane/stlink
3.3 进入stlink目录,执行:

代码: 全选

sudo ./autogen.sh
3.4 再执行:

代码: 全选

sudo ./configure
3.5 接着执行:

代码: 全选

sudo make
3.6 等待安装结束。将stlink文件夹添加到PATH中去,同步骤2.6。
3.7 插上STLINK,执行命令:

代码: 全选

sudo chmod -R a_rwx /dev/bus/usb
修改usb设备访问权限,这样就不需要使用sudo命令就能执行st-flash命令了。
------------------------------------------------------------------------------------------------------------------------------------------------------
4. 开始第一个设计(基于stm32f4xx-discovery板)
4.1 下载模板

代码: 全选

git clone git://github.com/jeremyherbert/stm32-templates.git
4.2 拷贝stm32-templates/stm32f4-discovery到一个新的文件夹下,比如~/blinky

代码: 全选

cp -r stm32-templates/stm32f4-discovery ~/blinky
4.3 删除掉inc/stm32f4xx_it.h,src/stm32f4xx_it.c,src/main.c。建立自己的main.c文件

代码: 全选

rm inc/stm32f4xx_it.h src/stm32f4xx_it.c src/main.c

代码: 全选

touch src/main.c
4.4 修改Makefile文件,将SRCS = main.c stm32f4xx_it.c system_stm32f4xx.c改成SRCS = main.c system_stm32f4xx.c
4.5 将如下代码写入main.c文件

代码: 全选

#include "stm32f4xx_conf.h"

//定时器2中断函数
void TIM2_IRQHandler(void)
{
    if(TIM2->SR & TIM_SR_UIF)
        GPIOD->ODR ^=(1 << 13);
    TIM2->SR = 0x0;
}

int main(void)
{
    //使能GPIOD时钟
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIODEN;
    //使能定时器2时钟
    RCC->APB1ENR |= RCC_APB1ENR_TIM2EN;
    //设置PD13为通用IO输出
    GPIOD->MODER = (1 << 26);
    //使能定时器2中断
    NVIC->ISER[0] |= 1 << (TIM2_IRQn);
    //关闭预分频器,定时器向上计数,和外设时钟同步
    TIM2->PSC = 0x0;
    //使能更新事件
    TIM2->DIER |= TIM_DIER_UIE;
    //计数到1自动重装
    TIM2->ARR = 0x01;
    //自动重装开启,计数使能
    TIM2->CR1 |= TIM_CR1_ARPE | TIM_CR1_CEN;
    //触发更新事件,重装计数器寄存器
    TIM2->EGR = 1;

    while(1);
}
4.6 进入blinky目录下,执行make,等待编译完成
4.7 执行命令,将二进制代码烧写开发板上去。

代码: 全选

st-flash write main.bin 0x8000000
如果是重新插上STLINK,请重新执行如下命令,修改USB设备访问权限。然后再执行烧写命令,否则会提示找不到STLINK。

代码: 全选

sudo chmod -R a+rwx /dev/bus/usb 
4.8 如果是stm32f4xx-discovery开发板,单片机旁的一个黄色LED会亮起来,使用示波器测量LED引脚,会有2.6M的方波出现。
------------------------------------------------------------------------------------------------------------------------------------------------------
5. 相关链接(咱也只是一个搬运工而已)
summon-arm-toolchain
https://github.com/esden/summon-arm-toolchain
stlink
https://github.com/texane/stlink
hua19900322
帖子: 21
注册时间: 2012-06-09 19:50

Re: Ubuntu STM32工具链安装

#2

帖子 hua19900322 » 2012-09-09 9:33

好东西 顶 目前正有把STM32 的开发搬到UBUNTU 上来的意思
我用的 调试器是J-LINK V8 和楼主的有些不同 请问需要修改哪些地方呢?
zyzoe2003
帖子: 1
注册时间: 2012-09-05 16:00

Re: Ubuntu STM32工具链安装

#3

帖子 zyzoe2003 » 2012-09-12 10:02

你好,我下载在折腾这个安装,可是在安装的时候提示:virtual menory exhausted:无法分配内存,然后就离开了安装目录。是在安装gcc-linaro-4.6-2011.10.tar.bz2这个包的吧。我安照网络上的,加大了堆栈,可是问题任然存在。我是第一次接触ubuntu,对于具体的分区还不是很明白,请多多指教!你在汉口吗?我在武昌。我的home分区有20G,现在还有16G。
hijxyz
帖子: 8
注册时间: 2011-08-15 17:25

Re: Ubuntu STM32工具链安装

#4

帖子 hijxyz » 2013-01-08 15:11

支持一下,我也想去试试~~
lovefan0327
帖子: 3
注册时间: 2012-03-17 10:58

Re: Ubuntu STM32工具链安装

#5

帖子 lovefan0327 » 2013-01-21 16:04

jlink v8 在ubuntu下能不能用?? :em07
头像
jasonzf
帖子: 7
注册时间: 2011-07-17 11:01
系统: ubuntu12.04

Re: Ubuntu STM32工具链安装

#6

帖子 jasonzf » 2013-02-16 23:00

这玩意儿目前有点难度,JLINK市面大多都是破解版,烧板时编译器要配专用的ROM地址接口,如果编译器本身没有带这些接口,就要自行对具体的芯片配置,然后才能用JLINK烧,这需要高手啊。
:em20
头像
乡间河太急
帖子: 73
注册时间: 2012-12-16 14:28
系统: ubuntu

Re: Ubuntu STM32工具链安装

#7

帖子 乡间河太急 » 2013-03-31 13:04

lovefan0327 写了:jlink v8 在ubuntu下能不能用?? :em07
我试过,是可以到,很完美到运行JLINK,只不过当时没有bin,只有hex。但是其它命令都是可以用的
任未来存在哪个可能
回复