前两天使用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
============================================================
使用gcc编译器 对于像延时这样的操作 记得基本的变量加volatile
意思是
int i;
改为
volatile int i;
不谢
没事 不至于这么客气 我以前也遇到过 我是基于windows下用的gcc编译器 也曾经遇到过这种情况 最后单步调试后发现延时根本就没有执行过 然后才发现是编译器把延时的那个局部变量给优化了
上一篇:STM32在Ubuntu上编写USB上位机程序实现
下一篇:STM32F407 PC13-PC15作为GPIO的方法
推荐阅读
史海拾趣
Rohde & Schwarz推出结合频谱分析仪和相位噪声测试仪的设备 罗德与施瓦茨(Rohde & Schwarz)公司最新发布该公司第一款专门设计用于测量相位噪声和产生RF信号源的仪器,R&S FSUP。该仪器结合了该公司多年开发高品质频谱分析仪的以及低噪声振荡器和合成器的 ...… 查看全部问答∨ |
|
如今的开关稳压器和电源越来越紧凑,性能也日益强大,而越来越高的开关频率是设计人员面临的主要问题之一,正是它使得PCB的设计越来越困难。事实上,PCB版图已经成为区分好与差的开关电源设计的分水岭。本文针对如何一次性创建优秀PCB版图提出一些 ...… 查看全部问答∨ |
|
来源:http://bbs.c114.net/viewthread.php?tid=372433 国庆60周年,电影市场中涌现出大量关于抗ri、建国的影片,如***、风声、邓稼先等,其中风声让我感觉特别亲切。不是周迅一贯冷酷的演技感动了我,也不是李冰冰优美气质的身段刺激了我;而是风 ...… 查看全部问答∨ |
|
作为后PC时代及后网络时代的新秀,嵌入式系统凭借其在网络安全、智能家电、车载电子、消费类电子、工业控制、医疗电子等领域内日益广泛地应用和发展,已无疑成为后PC时代的擎天之柱,现在的电子技术俨然已成为嵌入式系统技术的天下。 2010年 ...… 查看全部问答∨ |
|
我在工程的Header Files里添加了miracl.h和mirdef.h两个头文件,还添加了ms32.lib文件,但在编程中使用otnum()等等miracl库中的函数时仍提示错误。 Repw.obj : error LNK2019: unresolved external symbol "int __cdecl otnum(struct bigtype *, ...… 查看全部问答∨ |
我想在代码中动态修改指定函数的代码,向指定函数地址写入新的代码后,用内存窗口或汇编窗口查看,新代码都是写入了的,但 是当我转到这段新代码执行时,依然执行的是原来的指令,软件仿真硬件仿真都不行~~愁死了~,我的代码段分在L2SRAM,memory ...… 查看全部问答∨ |