打印

[原创]STM32F10x 的第一个用GUN编译器编译的例子(CodeSourcery)

[复制链接]
8145|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangqibo|  楼主 | 2007-12-20 01:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前用WinARM来编译ATmel的7S系列arm,上周万利的EK-STM32F板促销,定了一块。 
可是后来发现WinARM不支持,ST官方也没有给GNU编译器下的例子。 

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

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

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

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

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

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

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

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

相关链接:https://bbs.21ic.com/upfiles/img/200712/20071220144412.zip
沙发
hotpower| | 2007-12-20 01:05 | 只看该作者

沙发~~~支持原创~~~扶贫俺这些众多的菜鸟~~~

谢谢楼主了!!!


鞠躬~~~敬礼~~~

使用特权

评论回复
板凳
zhangqibo|  楼主 | 2007-12-20 01:08 | 只看该作者

大叔也在啊,谢谢!

使用特权

评论回复
地板
athlon64fx| | 2007-12-20 01:14 | 只看该作者

强烈支持gcc

我准备使用 stm32 + gcc + FreeRTOS

使用特权

评论回复
5
hotpower| | 2007-12-20 01:17 | 只看该作者

哈哈~~~俺还是个"STM32未成年的处 男"呀~~~

希望多交流~~~俺后天拿到板子~~~

由于周末中学同学要30年大聚会,不参加不行呀~~~

下周上班要做PIC24菜鸟,晚上地里还有LPCARM,AVR,CVI,SQL2000的活.

估计要半夜三更玩STM32了~~~

网友们总说俺"移情别恋"和"风流多情"~~~不过俺还是非常愿意做此"浪荡公子"的~~~

再次感谢!!!

俺遇到什么菜鸟的问题,楼主一定指教一二才是~~~

谢谢了!!!

使用特权

评论回复
6
zhangqibo|  楼主 | 2007-12-20 01:20 | 只看该作者

不客气

我也是小菜一个啊,愿与大家多交流。

睡觉去喽,明天还要上班呢

使用特权

评论回复
7
hotpower| | 2007-12-20 01:22 | 只看该作者

也是~~~GCCAVR俺玩C++很顺当,估计不会遇到阻力

不过GCCARM俺没玩过,但以前下载过~~~

因为玩ARM用的是Keil或IAR,所以案还是想优先选择Keil.

因为它们都可以C++~~~

所以,俺做STM32菜鸟肯定是C++的菜鸟了~~~

俺有C++的编译器绝不编写C的程序...这是俺做"菜鸟"的原则~~~

使用特权

评论回复
8
ATmega16| | 2007-12-20 07:40 | 只看该作者

万利的延时程序不规范

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

asm("nop")也不保险,

asm volatile("nop").

使用特权

评论回复
9
hotpower| | 2007-12-20 07:42 | 只看该作者

哈哈~~~谢谢楼上教俺们菜鸟了~~~

使用特权

评论回复
10
ATmega16| | 2007-12-20 07:44 | 只看该作者

俺们就是菜鸟中的菜鸟中的菜鸟了~~~

hotpower要是菜鸟,
俺们就是菜鸟中的菜鸟中的菜鸟了~~~

使用特权

评论回复
11
hotpower| | 2007-12-20 07:47 | 只看该作者

我晕!!!数据手册都没看一页,"大字一个不识"---俺是菜鸟俺怕

使用特权

评论回复
12
香水城| | 2007-12-20 08:47 | 只看该作者

顶一个,支持开源

我们在研讨会上抽奖的哪个STM32 Primer中就有一套GCC的软件和调试工具,板子上内置了JTAG调试器,拿到的朋友可以玩玩,网上还有一个专门的论坛讨论如何在Primer上开发程序。

使用特权

评论回复
13
zhangqibo|  楼主 | 2008-1-3 01:05 | 只看该作者

printf使用方法已解决,ld文档的修改

关于如何使用printf等标准库函数的使用,我在另一个帖子里有了解决方法。 

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

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

CodeSourcery目前看来还不错。 

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

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

使用特权

评论回复
14
hotpower| | 2008-1-3 01:12 | 只看该作者

今天试了IAR上跑EK-STM32F很好用呀

使用特权

评论回复
15
zhangqibo|  楼主 | 2008-1-3 01:21 | 只看该作者

俺不是追求用free的东西嘛

现在玩的都是清一色的GNU编译器,包括公司用的

使用特权

评论回复
16
hotpower| | 2008-1-3 01:51 | 只看该作者

GCC很规范的~~~虽然出自于洋游击队之手~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

85

帖子

0

粉丝