搜索
bottom↓
回复: 44

[原创] 支持cortex-M3 的GNU ARM编译器 CodeSourcery 上的第一个STM32F10x例子

[复制链接]

出0入0汤圆

发表于 2007-12-20 00:53:00 | 显示全部楼层 |阅读模式
之前用WinARM来编译ATmel的7S系列arm,上周万利的EK-STM32F板促销,定了一块。
可是后来发现WinARM不支持,ST官方也没有给GNU编译器下的例子。

今天到网上搜了搜,主要从WinARM的网站上看到作者 Martin Thomas的 流明的例子,用的是CodeSourcery.
于是乎我就去down了一个,lite edition是免费的,GNU的编译器,功能没有变。爽阿!(呵呵,终于找到组织了)

但是网上没有一个关于这个编译器对STM32F10x系列的例子,怎么办,自己改东西建一个。
首先看了Martin Thomas的例子,弄清楚组织架构。然后看一下 万利提供的例子。
看完了就着手修改了。

呵呵,经过多次修改,花了整整一晚上功夫,终于让我弄出来了。不容易啊。
不过后来发现也没改啥东西,改了改makefile, .S, 启动文件, ld文档等。

一切ok(可以成功编译了),回到宿舍,先想办法isp芯片,今天刚从网上down的flash loader demostrator
可是弄了很久都没成功,后来怀疑是不是硬件问题,结果果然是,班子上的max202居然坏了,回环测试都不行。晕!我第一次用。
后来外接一个232转换小板,终于可以连上了。 擦除,下载程序,运行。

一开始发现,闪的太快,估计是延时程序有问题,把delay函数里的j++ 换成 asm("nop");后, 不错,可以看见了,液晶循环现实 STM32 LCD DEMO
按两个按键,4个灯会亮和灭,中断正常了阿。
至此应该说就成功了!

发帖自贺!下面把程序发上来,新换GNU 编译器的朋友有兴趣可以参考(免费的编译器哦)
具体使用方法见压缩包内的readme.txt

点击此处下载ourdev_190912.zip(文件大小:1004K)

我后续还会继续研究(就今天一天也研究不出啥玩艺),以后把一些资料发上来。


板板的图片(很不错的板子,可是!我的居然uart那块不通!)

出0入50汤圆

发表于 2007-12-20 01:05:43 | 显示全部楼层
这么经典的帖子得顶才行。

出0入0汤圆

 楼主| 发表于 2007-12-20 01:12:16 | 显示全部楼层
呵呵,可以用GNU来玩 cortex-m3核的microcontroller了

出0入0汤圆

发表于 2007-12-20 07:53:46 | 显示全部楼层
顶楼主。



万利的延时程序不规范,
延时程序要加volatile。

asm("nop")也不保险,

asm volatile("nop").

Sourcery G++ litle以前装过,编译过LM3S的例子,makefile自己写有点不便,删了。

出0入0汤圆

发表于 2007-12-20 08:19:28 | 显示全部楼层
支持BOZAI 。 太厉害了几天就一个大作 , 比什么摩尔定律还来的快。

出0入0汤圆

发表于 2007-12-20 09:29:21 | 显示全部楼层
bozai 章其波
?在无锡啦?

出0入0汤圆

发表于 2007-12-20 09:43:59 | 显示全部楼层
祝贺下,本来我有ZLG那的流明开发板就用的这软件,还有几个流明的芯片,可惜都没怎么搞~现在还放那呢~自己太堕落了~

出0入0汤圆

发表于 2007-12-20 09:52:25 | 显示全部楼层
哈哈,我也刚买了那板,估计明天可以收到。

准备还是用IAR。

出0入0汤圆

 楼主| 发表于 2007-12-20 12:09:12 | 显示全部楼层
to 【3楼】 ATmega32 cortex-m3
    还是装上吧。 WinARM应该快会支持cortex-M3了,我问作者,他说gcc4.3.0应该会支持cortex-m3的,到时候就又可以用winARM了。

to 【4楼】 jackiezeng
    这哪里是大作啊,只不过修改了些东西。对于高手来说太简单了。

to 【5楼】 heky
    是的,工作在无锡,以前在苏州上学

to 【6楼】 ppa2001
    你也用阿,呵呵。我知道你太忙了,最近。

to 【7楼】 benladn911 AVR猎手
    呵呵,可以用哪个调试,IAR不错的软件,但是我在公司不能装盗版的软件(即使是个人电脑),限制版的,虽说32K大部份也够用了,不过有时候还是会写大程序的。

出0入0汤圆

发表于 2007-12-20 14:02:22 | 显示全部楼层
很不错啊,楼主动作好快。lite的和其它版本有什么差别么?

出0入0汤圆

发表于 2007-12-20 15:55:37 | 显示全部楼层
要学的东西实在太多。
最近学通讯,AVR串口总是出毛病。

armgcc总是要学的,现阶段还是以IAR为主。

出0入0汤圆

发表于 2007-12-20 18:31:08 | 显示全部楼层
呵呵,这几天我也关心st的板。
bozai 章其波, 万利的板如何,资料全吗。大家有用过英蓓特的开发吗?

出0入0汤圆

发表于 2007-12-20 20:31:30 | 显示全部楼层
万利的资料的就四个demo程序,什么都没有。

楼主的例子,我自己参照我原先的AVRGCC的的MAKEFILE编译通过了,但不知道对不对。

出0入8汤圆

发表于 2007-12-20 20:52:44 | 显示全部楼层
支持GCC使用例子的,只是不是使用WinARM,是使用RIDE。给位参加过研讨会应该记得那个红色的STM32 Primer吧,上面靠ST位移传感器(MEMS)控制的吃豆子游戏,上面用的就是GCC,使用的IDE是RIDE,是免费的,可以下载,只是它的调试器费劲。
有兴趣可以去这个网址看看,有些源代码可以下载参考。

http://www.stm32circle.com/hom/index.php

出0入0汤圆

发表于 2007-12-20 22:35:30 | 显示全部楼层
现在看好英倍特的开发板,价钱要600多。具体功能硬件资源还要再去打听一下。
开发板图片

出0入0汤圆

 楼主| 发表于 2007-12-20 22:40:39 | 显示全部楼层
to【9楼】 yyccaa:
   这个是核心,IDE环境只是架在这上面的一个壳,所以一样的。

to【11楼】 only:
   如12楼所说,便宜阿,自然东西就少了

to【12楼】 ATmega32 cortex-m3
   把bin文件烧进取看看便知,isp工具st的网上有的。程序主要是初始化那块,中断向量表对了就可以了

出0入0汤圆

 楼主| 发表于 2007-12-22 11:35:27 | 显示全部楼层
谢谢 【13楼】 Grant 给的链接,有空看看。
昨天想用codesourcey标准函数库stdio.h里的东西,可惜没搞出来,少很多东西。自己还是太菜了。

出0入0汤圆

发表于 2007-12-22 12:50:07 | 显示全部楼层
哈哈,我们这里有两个 Grant 说的这个开发板。不错的,蛮好完的。

能把游戏做成那样很不错了。

出0入0汤圆

发表于 2007-12-22 13:10:51 | 显示全部楼层
to bozai 章其波

我用用Sourcery G++自带的连接文件,在\Sourcery G++ Lite\arm-none-eabi\lib下,
使用sprintf函数,编译可以通过。
但是代码大小却陡增十倍



未使用sprintf


使用sprintf





STM32官方推的GCC编译器是Primer GCC,freertos实例用的是Primer GCC
http://www.stm32circle.com/resources/stm32primer.php#resources&is_js_confirmed=0
楼主试试这个GCC咋样

出0入0汤圆

 楼主| 发表于 2007-12-23 19:12:44 | 显示全部楼层
to 【18楼】 ATmega32 cortex-m3
    我昨晚把该加的段都给加上,编译一下结果很你的一样,而且程序不能运行。
到现在我还没找到用codesourcery用printf的实例,所以也不清楚该怎么用。

    有空试试这个官房推荐的gcc看看。

出0入0汤圆

发表于 2007-12-23 20:26:24 | 显示全部楼层
print类的代码其实可以到象linux内核代码或者avr-libc的源代码里自己提取的。

出0入8汤圆

发表于 2007-12-23 22:36:56 | 显示全部楼层
我手上的ST开发板种类可多了,可以搞个演示柜了。Embest的那块板,实际上应该也是拿到ST官方STM3210的PCB文件,再它上面修改的,将CPU Pack提出。我看上面的元件,大部分的封装都是一样的,基本的布局也是一样的。

出0入0汤圆

 楼主| 发表于 2007-12-23 23:09:00 | 显示全部楼层
毕竟也是块高级玩意儿,那么多外设,那么多东西,业余时间不知道啥时候能玩熟。

出0入0汤圆

发表于 2007-12-24 19:17:26 | 显示全部楼层
我最后还是买了万利的板,确实做工不错。以后多向大家学习了。

目前进展接了ST-LINK usb看了看demo,其他还不会弄。

出0入0汤圆

发表于 2007-12-25 22:31:54 | 显示全部楼层
个人觉得还是先看ST的UM0427文档比较合算,有全部ppp的API,在main中直接调用就可以了。

出0入0汤圆

 楼主| 发表于 2008-1-3 01:05:20 | 显示全部楼层
关于如何使用printf等标准库函数的使用,我在另一个帖子里有了解决方法。

具体的ld文档怎么写,程序如何写,请参照那里提供的程序。

不过使用标准的pirntf耗掉了非常非常多的资源,建议只用过调试用,真正用还是自己写些简单的。

CodeSourcery目前看来还不错。

那个primler我还没用过,我也没有那个玩具。

另外GCC4.3.0已经在测试,开始支持cortex-M3,不久就会release,相信不久WinARM也会支持cortex-M3的cpu
不过不管是哪个,都是GCC编译器,只要用一个就好了。

出0入0汤圆

发表于 2008-6-6 17:43:39 | 显示全部楼层
强贴留名

出0入0汤圆

发表于 2008-7-10 13:18:57 | 显示全部楼层
mark,学习

出0入0汤圆

发表于 2008-7-19 10:30:10 | 显示全部楼层
spintf 函数可以自己写一个 简单的和一个复杂的库
  这样代码就不会太大

出0入0汤圆

发表于 2008-8-1 21:40:09 | 显示全部楼层
学习!

出0入0汤圆

发表于 2008-8-2 11:56:47 | 显示全部楼层
你们用什么下载工具,我有一个万利的st-linker II,我想用gcc,但编译出来的bin文件如何烧进去

出0入0汤圆

发表于 2008-8-2 20:27:29 | 显示全部楼层
学习ing

出0入0汤圆

发表于 2008-9-8 18:58:12 | 显示全部楼层
bozai 章其波

你好!我現在在应用cortex-M3内核的arm,你说用CodeSourcery编译,于是我下了个arm-2008q1-126-arm-none-eabi.exe,并且直接安装了,我按照软件的getting-started说明,写了一个hello.c文件,它是存在d盘下的,软件是装载C盘的。我运行命令行工具,

(原文件名:Snap1.JPG)

不知道该怎么改?
我看你给的那个readme,我还是不会,你能不能给一个更加详细的。
我邮箱yss133_dpj@163.com
谢谢了。找了好久也没有找到应用CodeSourcery的具体实例。

出0入0汤圆

发表于 2008-9-9 08:09:01 | 显示全部楼层
谢楼主分享

出0入70汤圆

发表于 2009-4-9 20:40:45 | 显示全部楼层
这个记下

出0入0汤圆

发表于 2009-5-23 22:41:51 | 显示全部楼层
32楼
你的错误是链接时没有链接脚本。
你看看楼主的帖,已经很详细了。这个makefile写得相当有条理。
读起来很舒服。
另外问一下,有没有人研究它的debug方式,看它的文档是支持RDI方式的,因此应该可以用J-LINK

出0入0汤圆

发表于 2009-8-6 11:18:41 | 显示全部楼层
今天装了一个Sourcery G++,没有make,只有cs-make,在project/codesourcery 直接make不行,只能cs-make,要不然会出错,说make不是系统内的命令,输入cs-make后:cs-make:*** No target spcified and no mafile found .Stop

出0入0汤圆

发表于 2009-8-7 11:45:45 | 显示全部楼层
今天安装了个make,在lib目录下给make 也能clean,但到了project下出现以下提示:
在project下make:
\porject\CodeSourcery>make
c:\Program: C:\Program:No such file or directory
make: *** [begin] Error 127

出0入0汤圆

发表于 2010-3-23 10:26:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-12-7 15:31:14 | 显示全部楼层
mark!

出0入0汤圆

发表于 2012-5-4 17:11:16 | 显示全部楼层
worldsing 发表于 2009-8-7 11:45
今天安装了个make,在lib目录下给make 也能clean,但到了project下出现以下提示:
在project下make:
\porj ...

我遇到了你说的这个问题,请问是哪里的问题啊?谢谢1!

出0入0汤圆

发表于 2012-10-27 12:45:55 | 显示全部楼层
mark         

出0入0汤圆

发表于 2014-1-22 00:13:36 | 显示全部楼层
C:\ourdev_190912\project\CodeSourcery

出0入0汤圆

发表于 2014-1-22 00:17:20 | 显示全部楼层
make: *** [begin] Error 127

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-4-20 19:51

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

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