搜索
bottom↓
回复: 57

完整且超简化的linux下stm32开发环境(编译,下载)【恢复】

[复制链接]

出0入0汤圆

发表于 2008-11-8 14:47:04 | 显示全部楼层 |阅读模式
  最近要用stm32开发产品,考虑到以前作高端arm,or32开发以及低端的avr开发都用gcc,因此为了降低学习难度和省钱,决定继续使用gcc。

经过搜索网络查阅资料,发现stm32的gcc支持虽然没有问题,但是对普通开发者而言,实在过于复杂,至少比avr-gcc复杂太多,

开发者在编写makefile之外,不得不自己搞定启动初始化代码,甚至自己要写ld文件,这实在不是件舒服的事。

    因此,在参考网络诸多国内外的大侠提供的资料,综合自己的开发经验,经过一段时间完善,有了这个开发环境(并非集成开发环境IDE),

实现了普通开发人员无须关心启动初始化代码和ld文件,简化makefile编写,大大降低stm32 gcc入门难度的目的。

详细功能包括:

1>无须为自己的程序编写启动代码和ld描述文件,只需要写一个高度简化的makefile(提供了编写范例)

2>支持最小改动源码情况下,生成可用IAP程序下载的带ROM OFFSET程序(通过makefile控制),方便用户升级

3>命令行方式下载程序到stm32电路板

4>GUI方式使用IAP下载



注意:所有用到的程序均是开源且可免费获得,这里只是将它们综合起来使用

另:因为本人主要使用Linux环境开发,因此未对win32下进行测试,但是理论上应该是完全和cygwin环境兼容,没有问题。





首先用户自行下载stm32 gcc环境

http://www.codesourcery.com/gnu_toolchains/arm/download.html

注意下载EABI版本



SDK环境压缩文件ourdev_488774.rar(文件大小:1.21M) (原文件名:SDK.rar) 

完整的开发环境设置,包括启动文件,ld文件,makefile模板,st官方fwlib及模板,详细看里面的readme.txt

由于目前手里只有stm32F103,ld文件模板只有这个的ROM(FLASH)方式,其他芯片模板可参考建立(已经进行了简化,很简单),或者等以后俺添加



IAP示例ourdev_488775.rar(文件大小:231K) (原文件名:IAP_AN_gcc.rar) 

针对万利EK-STM32(STM3210B-LK1)的ST官方IAP实例移植及LED测试程序,注意,使用的按键是KEY2,当IAP已装入板子后,启动系统时

如果检测到KEY2为已经按下状态,则进入IAP模式,否则加载0x8002000起的应用程序

其中IAP部分makefile包含了如何使用wine调用win32下的stm32boot下载工具来下载iap.bin到目标板

由于IAP使用了ymodem协议,我使用了linux下可以和这个IAP协同工作的GUI程序cutecom,另还要安装lrzsz,cutecom会自动调用lrzsz,

cutecom设置示意图如下:



cutecom设置画面 (原文件名:cutecom.png) 

注意IAP要求输入命令1时,移到input区输入键盘按键"1"即可



adc及lcd测试示例ourdev_488776.rar(文件大小:20K) (原文件名:adc1_lcd.rar) 

同上,为修改的adc测试程序,额外添加了TIM测试,休眠测试,按键测试及浮点数计算等,默认编译需要使用IAP来下载它。



编程注意事项:

1>makefile中,是通过添加OBJS += xxx.o来添加用户文件的,注意后缀不是.c

2>makefile第一行指定SDK目录位置,自己按自己路径修改

3>为了使同一个程序代码无须修改即可运行于rom offset模式(使用IAP加载)

NVIC_Configuration中对应代码需要修改为如下

#ifdef  VECT_TAB_RAM  

  /* Set the Vector Table base location at 0x20000000 */ 

  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 

#else  /* VECT_TAB_FLASH  */

  NVIC_SetVectorTable(NVIC_VectTab_FLASH, ROM_OFFSET_SIZE);

#endif

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果想吃一顿饺子,就得从冰箱里取出肉,剁馅儿,倒面粉、揉面、醒面,擀成皮儿,下锅……
一整个繁琐流程,就是为了出锅时那一嘴滚烫流油的热饺子。

如果这个过程,禁不住饿,零食下肚了,饺子出锅时也就不香了……《非诚勿扰3》

出0入0汤圆

发表于 2008-12-17 14:18:39 | 显示全部楼层
谢谢了!~!!

出0入0汤圆

发表于 2008-12-17 14:18:35 | 显示全部楼层
谢谢了!~!!

出0入0汤圆

发表于 2008-12-17 14:08:41 | 显示全部楼层
mark

出0入31汤圆

发表于 2008-12-17 13:10:41 | 显示全部楼层
make的规则不是太懂,复杂一点的makefile看起来好费劲

出0入0汤圆

发表于 2008-12-17 08:44:39 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-12-16 20:35:39 | 显示全部楼层
Makefile,如果是要编译当前目录下所有的.c文件,这样修改就可以了:

SRCS          = $(wildcard *.c)

OBJS          = $(SRCS:.c=.o)

出0入0汤圆

发表于 2008-12-16 19:52:46 | 显示全部楼层
帅,哈哈

出0入0汤圆

发表于 2008-12-16 17:18:02 | 显示全部楼层
好贴,顶一下。

出0入0汤圆

发表于 2008-12-16 16:50:38 | 显示全部楼层
mark 记号

出0入0汤圆

发表于 2008-11-13 17:46:03 | 显示全部楼层
好贴,顶

出0入0汤圆

发表于 2008-11-13 14:58:09 | 显示全部楼层
谢谢

出0入0汤圆

发表于 2008-11-9 00:47:38 | 显示全部楼层
买了个stm32都还没弄过.

谢谢.裤啊

出0入0汤圆

发表于 2008-11-9 00:28:33 | 显示全部楼层
谢谢啊。

好好学习了解,我们用MDK上RTOS,不知道能否在LINUX下开发。呵呵

出0入0汤圆

发表于 2008-11-8 21:24:57 | 显示全部楼层
mark 记号 不错 好帖 COOL 学习 谢谢 顶 ! 

出0入0汤圆

发表于 2008-11-8 21:19:07 | 显示全部楼层
酷贴啊,虽然没用,支持!!

出0入0汤圆

发表于 2008-11-8 18:23:38 | 显示全部楼层
COOL

出0入0汤圆

发表于 2008-11-8 15:12:43 | 显示全部楼层
不错 

出0入42汤圆

发表于 2008-11-8 15:06:30 | 显示全部楼层
试试,谢谢

出0入0汤圆

 楼主| 发表于 2008-11-8 15:04:51 | 显示全部楼层
嗯,再补贴个makefile,大家看是否简洁



STM32_SDK_DIR = /src/work/stm32/SDK



TARGET = iap



PCB_BOARD = EK_STM32F

#RUN_MODE = ROM_RUN



APP_BASE      = ..

APP_SRC_DIR   = $(APP_BASE)/source



CFLAGS         += -I$(APP_BASE)/include



OBJS += stm32f10x_it.o

OBJS += stm32f10x_lib.o 

OBJS += stm32f10x_gpio.o

OBJS += stm32f10x_rcc.o

OBJS += stm32f10x_flash.o

OBJS += stm32f10x_usart.o

OBJS += stm32f10x_wwdg.o



OBJS += common.o

OBJS += download.o

OBJS += ymodem.o

OBJS += main.o  

##########################################################################

include $(STM32_SDK_DIR)/pub/config.mk

#########################################################################

upload:$(TARGET).bin

        wine ./stm32boot -e -c com3 $(TARGET).bin





#########################################################################

出0入0汤圆

发表于 2009-7-17 15:12:30 | 显示全部楼层
不习惯,一直认为linux是旁门左道

出0入0汤圆

发表于 2009-8-4 12:37:52 | 显示全部楼层
mark。 支持!

出0入0汤圆

发表于 2009-8-4 13:00:25 | 显示全部楼层
不错。支持。

出0入0汤圆

发表于 2009-8-4 13:08:33 | 显示全部楼层
不错,很有用

出0入46汤圆

发表于 2009-8-6 09:03:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-8-11 09:15:22 | 显示全部楼层
最近在学习stm32,搜索一下老的帖子,很受用,留个记号备用,谢谢

出0入0汤圆

发表于 2009-8-11 10:30:32 | 显示全部楼层
Cool

出0入0汤圆

发表于 2009-8-13 21:37:25 | 显示全部楼层
收藏,正在考虑Linux系统作为常用系统的问题。

出0入0汤圆

发表于 2009-11-18 16:58:33 | 显示全部楼层
试试,希望能够成功。。。

出0入0汤圆

发表于 2010-8-7 11:20:35 | 显示全部楼层
看到了!

出0入0汤圆

发表于 2010-8-7 12:42:17 | 显示全部楼层
这个要mark一下

出0入0汤圆

发表于 2010-11-10 18:02:49 | 显示全部楼层
cool,mark

出0入0汤圆

发表于 2011-6-24 00:04:43 | 显示全部楼层
TKS,mark

出0入0汤圆

发表于 2011-10-15 14:20:04 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-15 15:33:18 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-10-16 01:25:08 | 显示全部楼层
好文。虽然俺从不用Linux做嵌入式开发……

出0入0汤圆

发表于 2011-11-12 13:16:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-12 22:59:53 | 显示全部楼层
先Mark 一下回来仔细研究研究

出0入0汤圆

发表于 2011-11-12 23:33:50 | 显示全部楼层
给toolchain 加上一环

出0入0汤圆

发表于 2011-11-23 10:11:33 | 显示全部楼层

出0入0汤圆

发表于 2011-11-24 14:47:59 | 显示全部楼层
MARK,只是为了记住这里

出0入0汤圆

发表于 2012-1-23 22:14:16 | 显示全部楼层
在用linux
mark一下

出0入0汤圆

发表于 2012-1-23 23:13:54 | 显示全部楼层
mark

出0入30汤圆

发表于 2012-2-2 18:29:28 | 显示全部楼层
好强。顶

出0入0汤圆

发表于 2012-2-2 18:38:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-3 00:13:27 | 显示全部楼层
谢谢,先下载备份

出0入0汤圆

发表于 2012-2-3 00:13:37 | 显示全部楼层
谢谢,先下载备份

出0入0汤圆

发表于 2012-3-30 17:29:05 | 显示全部楼层
mark yixia

出0入24汤圆

发表于 2012-3-30 18:19:59 | 显示全部楼层
是不是图挂了?看不见图~

出0入0汤圆

发表于 2012-4-18 14:55:34 | 显示全部楼层
强大啊,学习啦

出0入0汤圆

发表于 2012-4-18 15:12:04 | 显示全部楼层
玩不转~~~

出0入0汤圆

发表于 2012-9-14 20:31:25 | 显示全部楼层
怎没人试一下呢验证是否可行。我准备用一下,这帖子都发4年了,不知道楼主现在什么情况了,现在是否仍然在linux下做开发,是否仍然使用这种方法呢?

出0入0汤圆

发表于 2012-10-13 19:18:19 | 显示全部楼层
不错,谢谢!!!!!!!

出0入0汤圆

发表于 2013-1-24 14:20:08 | 显示全部楼层
MARK LINUX 开发 STM32

出0入0汤圆

发表于 2013-1-26 15:17:54 | 显示全部楼层
mark......

出0入0汤圆

发表于 2013-6-11 16:27:17 | 显示全部楼层
谢谢了!~!!

出0入0汤圆

发表于 2013-6-12 22:12:23 | 显示全部楼层
看一看,灰常感谢作者。

出0入0汤圆

发表于 2013-6-13 06:07:27 来自手机 | 显示全部楼层
谢谢,我找了很久linux下stm32开发
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-28 23:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表