怎么在ubuntu下开发stm32

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在ubuntu下开发stm32相关的知识,希望对你有一定的参考价值。

环境:

ubuntu 13.10

stm32f103zet6

一、STM 32 GCC 安装

stm32 属于arm cortex-m系列thumb指令集,所以给arm用的arm-none-eabi就可以了,首先是下载

下载地址:

https://launchpad.net/gcc-arm-embedded/+download

下载其中的gcc-arm-none-eabi-version-linux.tar.bz2

解压到目录会产生gcc-arm-none-eabi的文件夹

把该编译器添加到用户的环境中:

在最后一行添加:

因为之前有添加过树莓派的编译器了,所以实际上是这样的:

两个编译器环境中间用冒号隔开;

注销后测试:

可以查看到该编译器的版本,就表示可以了。


二、工程环境的建立

新建个工程文件夹及其目录

下载安装官方库:

1、stm32的寄存器不像51 avr等单片机那么少,自己写写库,背背寄存器就可以了,所以ST公司提供了官方的库。为了避免重复造轮子,就直接采用其库,库版本为STM32_USB-FS-Device_Lib_V4.0.0,这个库多了usb支持,下载的话到st官网搜索stm32f10x就有了。

2、解压把解压好的文件夹复制到刚才新建的libs里面.

3、在工程根目录下新建Makefile.common文件,这个为通用makefile。

编译库文件:

进入libs文件夹,新建Makefile:

编译该库:

就会在lib目录下生成libstm32.a,这个就是编译好的静态库了。

建立工程编译ld文件

这个ld文件,为在编译时告诉编译器把代码放到什么地址,根据芯片的内存以及flash容量不同有所调整。

在工程根目录下新建linker.ld文件

根据芯片型号不同,选择相应的RAM FLASH大小。

在工程根目录下新建Makefile文件:

在src里面添加测试源码,主要是startup.c 以及main.c。

然后进入工程主目录下make就好了。

参考技术A 主要是在Ubuntu下进行的工作。在Windwos下基本相同。前一阵实验了Eclipse 开发ARM Linux的程序。现在有项目需要用STM32,建立一个STM32的开发环境。

插件:org.eclipse.cdt.cross.arm.gnu-updatesite.zip
test工程:test.zip
以及本文相关的工具下载在

到Linux公社的1号FTP服务器里,下载地址:

FTP地址:ftp://www.linuxidc.com

用户名:www.linuxidc.com

密码:www.muu.cc

在 2011年LinuxIDC.com\5月\Ubuntu下用Eclipse CDT开发STM32

下载方法见 http://www.linuxidc.net/thread-1187-1-1.html

1 下载工具。

下载编译工具。下载arm-2009q3-68-arm-none-eabi-i686-pc-linux-gnu.tar.bz2

解压到/opt/codesoourcery目录下。然后设定系统path,指定/opt/CodeSourcery/Sourcery_G++_Lite_eabi/bin路径。因为还要开发arm linux程序,系统path中还指定了/opt/CodeSourcery/Sourcery_G++_Lite_linux/bin路径。

也就是说在/opt/CodeSourcery目录下安装了两套编译器。

后面后会讲到如何在eclipse中选择编译器配置arm linux程序和cortex-m3程序。

下载eclipse cdt包。可以下载最新的版本。eclipse-cpp-galileo-SR1-linux-gtk.tar.gz

解压到/opt目录下。

下载cross arm插件。org.eclipse.cdt.cross.arm.gnu-updatesite.0.5.3.200904131820.zip

2 修改插件

因为机器中有codesourcery的两套编译器。arm-none-linux-gnueapi-gcc和arm-none-eapi-gcc。这两个编译器都要分别使用。而下载的cross arm插件在linux下的只配置了arm linux的工具。所以要对该插件就行修改,增加非linux程序工具。照猫画虎地修改了cross arm插件,增加ARM RTOS GCC(Sourcery G++ Lite),起名叫RTOS,其实有没有RTOS核无所谓。修改插件的需要用eclipse rcp ide,主要是java的插件编程和测试,过程比较麻烦,这里就不罗嗦。编译好的插件附在后面,为org.eclipse.cdt.cross.arm.gnu-updatesite.zip。

3 安装插件

在eclipse的Help->Install New Software菜单中选择org.eclipse.cdt.cross.arm.gnu-updatesite.zip,然后去掉group itmes by category选项,在上篇arm linux的开发中就提到要用上一个版本的eclipse,否则安装不上arm 插件,就是因为这个选项的阻碍。然后,选next安装即可。

4 测试

在eclipse中建立信的c project,建立名为test的工程。工程选项中选择cortex-m3处理器。

然后向这个工程中添加一个cortex-m3的权威指南中例子程序text.c 文件。

然后再右键选这test工程,选Clean Project,对工程进行build,最后生成elf、map、list等文件。本回答被提问者和网友采纳

怎么样在ubuntu环境下配置sdk

参考技术A  1 搭建Android SDK开发环境

  参考在在Ubuntu下搭建Android
SDK开发环境(图文) 首先在Ubuntu下搭建Android SDK开发环境.

  2 下载NDK开发包

  下载解压到 ~/bin 目录下,有关如何解压tar.bz2压缩包,请参考链接:linux下各种解包打包命令大全

  3 配置NDK环境参数

  打开 ~/.bashrc文件:

  $sudo vim ~/.bashrc

  在文件最后一行添加一行如下指令:

  export PATH=$PATH:~/bin/android-ndk-r7b

  保存关闭.

  这样配置后,以后就可以很方便地使用NDK包中所包含的工具了。

  接下来测试一下.打开终端输入如下指令:

  $ndk-build -v

  如果出现如下显示,就表示可以了.

  完!本回答被提问者和网友采纳

以上是关于怎么在ubuntu下开发stm32的主要内容,如果未能解决你的问题,请参考以下文章

我的stm32开发板 串口和jlink都下不进去程序

野火STM32开发板中的UCGUI LIB是怎么生成的

电机与stm8/stm32开发工具的连接怎么连接

STM32CubeMx + makefile --- 开发环境搭建

一个辅助 VSCode 下开发 STM32 的脚本

一个辅助 VSCode 下开发 STM32 的脚本