打印
[STM32F1]

STM32F103C8使用arm-none-eabi-gcc编译出现问题

[复制链接]
1764|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
千帆归尽|  楼主 | 2014-11-14 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前两天使用arm-none-eabi-gcc编译STM32F103C8程序,就是一个简单的流水灯程序。
#include "stm32f10x.h"

int main(void)
{
        int i;
        RCC->APB2ENR=0xFFFFFFFF;
        GPIOC->CRL=0X33333333;//outpp at 50M
        GPIOC->CRH=0X33333333;
        while(1)
        {
                GPIOC->BSRR=(1ul<<13);
                for(i=0;i<720000;i++);
                GPIOC->BRR=(1ul<<13);
                for(i=0;i<720000;i++);
        }
}

编译很成功,也生成了bin文件,但是当烧进单片机的时候,流水灯却没有闪,这是什么原因呢?请各位版主或者玩过GCC的大神给个指导。
启动文件和链接文件都是在ST官网V3.50库文件中trueStudio中的,应该没错。连接文件选择的是F103B文件夹中的,链接文件写的FLASH是128KB,我的单片机是64KB,RAM都是20KB。
编译.c文件的命令行: -Wall -mcpu=cortex-m3 -march=armv7-m -mthumb -Os -Wl,--gc-sections -g -DSTM32F10X_MD -DUSE_STDPERIPH_DRIVER
编译启动文件的命令行:-mcpu=cortex-m3 -march=armv7-m -mthumb


求各位版主指点。。。
沙发
jar1866| | 2014-11-14 22:19 | 只看该作者
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra  -g3 -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../ldscripts" -Wl,-Map,"stm32_demo.map" -o "stm32_demo.elf" $(OBJS) $(USER_OBJS) $(LIBS)

链接脚本是用哪个呢?

使用特权

评论回复
板凳
jar1866| | 2014-11-14 22:22 | 只看该作者
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra  -g3 -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../ldscripts" -Wl,-Map,"stm32_demo.map" -o "stm32_demo.elf" $(OBJS) $(USER_OBJS) $(LIBS)

链接脚本是用哪个呢?

使用特权

评论回复
地板
千帆归尽|  楼主 | 2014-11-15 10:04 | 只看该作者
jar1866 发表于 2014-11-14 22:22
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections - ...

什么意思?怎么用了三个连接脚本?

使用特权

评论回复
5
airwill| | 2014-11-15 12:01 | 只看该作者
为编译设置而折腾这么多, 不值得哦。
强烈给你推荐个软件, CoIDE. 使用 GCCarm 编译器, 支持 STM32.

使用特权

评论回复
6
千帆归尽|  楼主 | 2014-11-15 15:13 | 只看该作者
airwill 发表于 2014-11-15 12:01
为编译设置而折腾这么多, 不值得哦。
强烈给你推荐个软件, CoIDE. 使用 GCCarm 编译器, 支持 STM32. ...

KEIL用多了,希望找个命令行的东西,以后可以玩玩Arduino,移植一下,肯定是要用到GCC的

使用特权

评论回复
7
千帆归尽|  楼主 | 2014-11-15 16:37 | 只看该作者
有没有人用过arm gcc的呢?用过的麻烦来看一下吧,谢谢啦

使用特权

评论回复
8
千帆归尽|  楼主 | 2014-11-15 21:07 | 只看该作者
问题已经找到,在int i的前面加上volatile,GCC会对不加volatile的进行优化

使用特权

评论回复
9
小浣熊| | 2014-11-16 17:02 | 只看该作者
千帆归尽 发表于 2014-11-15 21:07
问题已经找到,在int i的前面加上volatile,GCC会对不加volatile的进行优化

恭喜,解决了就好。。。。

使用特权

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

本版积分规则

7

主题

33

帖子

0

粉丝