入门准备:
我们常用的
STM32
开发编译环境为 Keil 公司的
MDK
(Microcontroller Development Kit) 和 IAR 公司的 EWARM.
在这里我们提供了比较稳定的新版本编译
软件下载
:
MDK3.50 点击此处下载
EWARM 5.40 点击此处下载
限于篇幅, 在我们的
教程
里面将先以 MDK 下的一个例子来介绍如何使用 MDK 进行嵌入式应用开发.
MDK 安装与配置:
基于 MDK 下的开发中基本的过程:
(1) 创建工程;
(2) 配置工程;
(3) 用 C/C++ 或者 汇编语言编写源文件;
(4) 编译目标应用程序
(5) 修改源程序中的错误
(6) 测试
链接
应用程序
—————————————————————-
(1) 创建一个工程:
在 uVision 3 主界面中选择 “Project” -> “New uVision Project” 菜单项, 打开一个标准对话框选择好你电脑中的保存目录后, 输入一个你的工程名字后点确认.我们的工程中建了一个名字叫 “NewProject” 的工程.
从设备库中选择目标芯片, 我们的 MINI-STM32 开发板使用的是 STM32F103V8T6, 因此选中 STMicrocontroller 下对应的芯片:
ARM 32-bit Cortex-M3 Microcontroller, 72MHz, 64kB Flash, 20kB SRAM,
PLL, Embedded Internal RC 8MHz and 32kHz, Real-Time Clock,
Nested Interrupt Controller, Power Saving Modes, JTAG and SWD,
3 Synch. 16-bit Timers with Input Capture, Output Compare and PWM,
16-bit 6-ch Advanced Timer, 2 16-bit Watchdog Timers, SysTick Timer,
2 SPI, 2 I2C, 3 USART,
USB
2.0 Full Speed Interface,
CAN
2.0B Active,
2 12-bit 16-ch A/D Converter, Fast I/O Ports
选择完芯片型号后会提示是否在目标工程中加入 CPU 的相关的启动
代码
, 如下图所示. 启动代码是用来初始化目标设备的配置, 完成运行的系统初始化工作, 因此我们选择 “是” , 这会使系统的启动代码编写工作量大大减少.
—————————————————————-
(2) 配置工程:
选择菜单中 “Project” -> “Option for Target” 或者 选择快捷菜单中的图标:
因为 MINI-STM32 开发板上使用的就是 8M 的晶振且是使用的片内的 RAM 和 ROM 因此 “taget” 下我们都可以使用默认的配置;
在”Output”菜单下我们需要选中 “Creat Hex File” 来生成编译好的工程代码, 此工程可以通过
仿真器
或者串口 ISP 烧录进开发板中.
注: ISP 烧录过程我们将在入门教程二中给大家介绍.
“Listing” “User” 菜单中我们保持默认即可.
“C/C++” 菜单为我们常用的菜单, 这里简单的介绍下他们的具体功能:
PreProcesser Symbols 中的 Define, Undefine 菜单表示是工程的宏定义中的变量, 我们将在今后的教程中详细介绍这个功能.
Optimization 为优化选项, Level0 为不优化, 这种模式最适合调试, 因为不会优化掉代码, 基本每个用到的变量都可以打断点. Level3 为优化等级最高, 最适合生产过程中下载到芯片中的代码.
Include Path 为工程中的包含路径, 一般需将 .h 文件或者库文件的
地址
配置进去.
“Asm” 和 “Link” 将在今后的高级教程中介绍.
“Debug” 为我们调试使用的配置选项, “Use Simulator” 为使用软件仿真. 这里根据大家手里的仿真器来选择配置环境.
如果你使用的是 Ulink, 那么就选择 “Ulink Cotex Debug”, 如果你选择的是 JLINK, 那么就选择 ” Cotex M3
Jlink
“, 如果你使用的是 ST 公司出的简易仿真器 ST-Link , 那么你就选择 “ST-Link Debug”.
注意: 右边当中的选项 “Run to main{}” 选项如果勾上就表示仿真时进入了就会进入到 main 函数, 如果没有选上就会进入初始地址, 你需要自己打断点运行到你的主程序 main 处.
当插上仿真器后选择上面右图中的 Setting 后会跳出一个仿真器的配置菜单. 左边会
自动
识别出你的仿真器的信息.
如下图为 ULINK2 的信息:
对于 SWJ 选项为三线制调试, 将在后面的高级教程中介绍.
右下方有两个选项:
“Verify Code Download” : 表示下载后校验数据
“Download to
flash
“: 表示当仿真的时候先将目标代码下载到 Flash 中.
Trace 菜单为跟踪配置, 可以实时的将一些变量使用曲线的形式实时表示出来, 我们将在今后的高级教程中介绍这一项功能.
注意: 市面上目前的盗版 Ulink2 不支持这项功能, 正版的支持, Jlink 也不支持这项功能.
“Flash Download” 菜单用来配置使用仿真器程序下载的配置选项, 大家务必选择好和你芯片配套的选项. 如果你是使用的别人模板下修改为你的工程, 这个选项请注意一下, 如果不正确将不能将你的代码下载到芯片中.
配置好 “Debug” 后, 那么 “Utilities” 可以不用配置.
如果你使用的是仿真器仿真, 在你已经正确得将目标板和仿真器建立了物理连接后, 请选择正确的仿真器进行配置.