OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 17777|回复: 9

arm-none-eabi-gcc编译STM32F103C8

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-5-17
在线时间
0 小时
发表于 2014-11-15 15:35:58 | 显示全部楼层 |阅读模式
5金钱
前两天使用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


求各位版主指点。。。

最佳答案

查看完整内容[请看2#楼]

使用gcc编译器 对于像延时这样的操作 记得基本的变量加volatile 意思是 int i; 改为 volatile int i; 不谢
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

123

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2012-5-27
在线时间
200 小时
发表于 2014-11-15 15:35:59 | 显示全部楼层
使用gcc编译器 对于像延时这样的操作 记得基本的变量加volatile
意思是
int i;
改为
volatile int i;
不谢
回复

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2014-11-15 19:36:54 | 显示全部楼层
单步一下,就知道原因了。
于20150522停用该账号:http://www.microstar.club
回复

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-5-17
在线时间
0 小时
 楼主| 发表于 2014-11-15 20:22:09 | 显示全部楼层
回复【2楼】STM32F103:
---------------------------------
谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,谢谢,
大哥,给跪了,两天了。。。都准备换ARMCC了,是你将我拯救了,多少个谢谢都不能够表达我的心情啊 !!!!!!!!
灯闪了,闪了啊!!!!!!!!!!!!
哥,要是咱们隔得进就请你吃饭了!!!!!!!!!
有木有邮箱啊,以后有问题可以再请教你啊,
回复

使用道具 举报

6

主题

123

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2012-5-27
在线时间
200 小时
发表于 2014-11-16 13:57:21 | 显示全部楼层
本帖最后由 STM32F103 于 2019-9-27 13:56 编辑

回复【4楼】千帆:
<br>---------------------------------
<br>没事&nbsp;不至于这么客气&nbsp;我以前也遇到过&nbsp;我是基于windows下用的gcc编译器&nbsp;也曾经遇到过这种情况&nbsp;最后单步调试后发现延时根本就没有执行过&nbsp;然后才发现是编译器把延时的那个局部变量给优化了&nbsp; 饭就不用请了&nbsp;以后相互学习&nbsp;嘿嘿
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-2-12
在线时间
0 小时
发表于 2015-2-12 19:01:59 | 显示全部楼层
你好,请问你使用的KEIL 什么版本?  还有你使用arm-none-eabi 工具链编译的时候使用的是什么版本的工具链?
我现在使用keil uvision4,   工具链使用arm-none-eabi ,   
链接命令行: -mcpu=cortex-m3 -mthumb -mthumb-interwork -Wl -o test_tof.elf *.o -nostartfiles -lm 
编译命令行: -c -mcpu=cortex-m3 -mthumb -gdwarf-2 -MD -w -O0 -mapcs-frame -mthumb-interwork -I../include -I../build/STM32F2xx/include -I../build/STM32F2xx_StdPeriph_Driver/include -march=armv7-m -IC:/Keil/ARM/CMSIS/Include -IC:/Keil/ARM/Inc/ST/STM32F2xx -DSTM32F2XX -DPLL_M="10" -DPLL_N="240" -DPLL_P="2" -DPLL_Q="5" -o *.o

结果编译通过了; 链接时报错说命令行参数  -wl   是不识别的参数: arm-none-eabi-gcc: error: unrecognized command line option '-Wl'
请问你有能给点建议吗?
回复

使用道具 举报

0

主题

9

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2013-10-14
在线时间
1 小时
发表于 2016-5-10 23:09:31 | 显示全部楼层
建议用eclipse搭建环境,网上有很多STM32的例子。像流水灯这样的程序有标准范例。之后对比makefile,很有参考价值。希望对你有用。
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2017-12-13
在线时间
11 小时
发表于 2019-9-25 16:16:08 | 显示全部楼层
学习一下gcc arm
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2019-5-15
在线时间
7 小时
发表于 2020-1-13 21:14:33 | 显示全部楼层
arm-none-eabi-gcc -o "carche.elf" @"objects.list"  -lmpllib -mcpu=cortex-m4 -T"F:\Graduation_Project\Slave_STM32\carche\STM32F429IGTX_FLASH.ld" --specs=nosys.specs -Wl,-Map="carche.map" -Wl,--gc-sections -static -L"F:\Graduation_Project\Slave_STM32\carche\mycode\mpu_DMP\mpl" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
e:\stm32cubeide_1.0.2\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.7-2018-q2-update.win32_1.0.0.201904181610\tools\arm-none-eabi\bin\ld.exe: cannot find -lmpllib
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:49: carche.elf] Error 1
"make -j8 all" terminated with exit code 2. Build might be incomplete.
大哥们给看看。。怎么回事
回复

使用道具 举报

10

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
167
金钱
167
注册时间
2019-1-14
在线时间
49 小时
发表于 2020-1-15 12:04:55 | 显示全部楼层
王帆帆 发表于 2020-1-13 21:14
arm-none-eabi-gcc -o "carche.elf" @"objects.list"  -lmpllib -mcpu=cortex-m4 -T"F:\Graduation_Project ...

提示cannot find -lmpllib,-l是指定库文件,找不到名为mpllib的库文件,你看下是不是库名写错了还是文件丢了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-19 17:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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