内容未完成,编写中
本文档是基于其它教程的自我翻译,
初级版(基本操作)
进阶版(细节操作)可跳过
目录
1.1初级版
下面三个文件夹是我提前手动创建的
注:在IAR里工程必须放在工作空间内。
1.1.1.新建一个工程
创建一个新的工作空间:FIle > New Workspace,
建立一个Empty project:Project > Create New Project,
Tool chain栏中选择STM8,
“OK”后弹出工程保存菜单,
填写工程名“STM8”,然后点击“保存”。
这里使用Debug,
STM8-Debug后面的*号表示当前的工作区和项目经修改后还没有被保存。
现在STM8目录下已生成一个STM8.ewp文件,该文件中将包含与STM8项目设置有关的信息,如编译、连接( build)的选项等。
1.1.2.保存工作空间
File > Save Workspace,
在弹出窗口中填写 workspace名为“STM8”,点击“保存”,
现在STM8目录下已生成一个STM8.eww文件(那个IAR图标,以后使用时可直接打开这个文件),
现在STM8目录下已生成一个settings子目录,这目录下存放保存窗口设置和断点设置等与当前操作有关信息的其他文件。
此时STM8-Debug后面的*号已经消失。
@2.1进阶版
针对不同的要求对IAR进行不同的配置,在同workspace中建立不同的 project,进行统一管理。
2.1.1.建立基本的项目平台
建立“ Platform"文件夹,在" Platform"文件夹下建"boot"、" Hardware Test"、“Project”、“Src”四个文件夹;
“boot":用来存放 bootloader工程程序,
“Hardware Test”:用来存放硬件自动测试工程程序,
“Project”:用来存放项目平台建立时生产的文件,
“Src”:用来存放STM8工程的应用程序。
建立第一个工程
新建一个工程:
创建一个新的工作空间:FIle > New Workspace,
建立一个Empty project:Project > Create New Project,
“OK”后弹出工程保存菜单,
填写工程名“STM8”,然后点击“保存”。
建立第二个工程
建立一个ARM的 Empty project:Project > Create New Project,
“OK”后弹出工程保存菜单,
填写工程名“BOOT”,然后点击“保存”。
建立第三个工程
建立一个ARM的 Empty project:Project > Create New Project,
“OK”后弹出工程保存菜单,
填写工程名“Hardware Test”,然后点击“保存”。
“1“:在图中“3”的位置选择需要设置的工程窗口,
Project > Edit Configurations > New,
Name为“ Hard Ware Test-debug”,在 Factory settings选项上选择“ Debug”,点击“OK”进行保存,
按照上面的方法再建一个Name为“ Hard Ware Test-release", Factory settings选项上选择为“ Release”的版本并保存。
这样的话就可以在不同版本中实现不同的编译等級和输出文件格式。同时也可以有选择的编译一部分,生产自己的库文件,方便其他工程直接调用。
“2”:修改workspace名称。
File > Save Workspace,
在弹出窗口中填写workspace名为“STM8”,点击“保存”。
“3”:是在建立完3个工程后自动生成的, Overview窗口显示所有已经成功建立的工程。
1.2初级版
1.2.1建立文件组
保存工作区后,下ー步在项目中新建文件或添加已有文件。
项目中的文件允许分组,用户可以根据项目的需要和自己的习惯来组织源文件。
在IAR上选择STM8工程界面,在工程中添加 Group文件,如图
我建了一个user文件组(放自己写的.C文件),一个lib文件组(放库文件)。
之后放进这些文件组内的文件可以保存在相应的文件夹里。
1.2.2添加库函数
把下载的STM8库函数文件全部拷贝到“Lib”文件夹中
在工程中添加C文件:在APP工程的“Lib”文件上右键选择“ Add Files”,弹出对话框,找到存放C文件的文件夹,选择全部.C文件,点击“打开”即可
注:往项目中添加文件需添加汇编语言和C语言的源程序,可以不添加头文件(即.h)。
但是用户必须在配置项目的编译器、连接器选项时指明包含头文件的路径和目录。
@2.2进阶版
2.2.1建立文件组
以STM8工程为例,我们在“Src“文件夹下建立“”App”、“Bsp”、" Library" “Module”
“App”存放工程中应用层程序,
“Bsp”用来存储介于系统和硬件驱动之间的程序,
“Library”用来存储移植的一些标准程序,如STM8库函数、uCoSⅢ系统、FatFs文件系统、ucGU图形支持系统等,
“Moudule”用来存放硬件各个模块的驱动程序
2.2.2开始移植STM8的库函数
在IAR上选择STM8工程界面,在工程中添加 Group文件,如图
分别添加“App”、“"Bsp”、“ Library”、“ Module"四个 Group文件
在工程的“ Library” Group文件下建立“ Stlib” Group,用于存放整个ST库函数
且在Platform\Src\Library下建“Stlib”文件夹
把下载的STM8库函数文件全部拷贝到“STLIB”文件夹中
在工程中添加C文件:在APP工程的“STub”文件上右键选择“ Add Files”,弹出对话框,找到存放C文件的文件夹,选择全部.C文件,点击“打开”即可
添加.h文件:在STM8工程右击,选择“ options”,按照下图进行设置即可
$PROJ_DIR$
$PROJ_DIR$\..\Src
$PROJ_DIR$\..\Src\Library
$PROJ_DIR$\..\Src\Library\STib
$PROJ_DIR$\..\Src\Library\STib\inc
1.3初级版
首先在user组中新建需要的main. c文件或添加已有的main.c文件(用于编辑主程序)。
1.3.1.新建一个文件
1.File > New File,
2.点击下面的按钮,
生成了一个空白文件
点击保存按钮,
保存在user文件夹里,保存为.C文件。
然后在工程中添加C文件:
下面这两个选项都可以,第二个是直接加入文件夹,第一个是打开文件夹再选中这个文件,再打开。
接下来就是愉快的编程时间了。
软件设置
1.Options
打开设置的几种方法:
(一定要选中工程名字)
1.Project>Options
2.(Alr+F7)
3.工程名字上用右键打开。
以下是我自己的设置,亲测有效,
从编写>编译>下载>仿真>P100。
o(* ̄︶ ̄*)o这里面内容为其他教程的补充学习和不同点,下面不再重复。
o( ̄︶ ̄)o
o( ̄︶ ̄)o
o( ̄︶ ̄)o
$PROJ DIRS----工程所在目录(ewp文件所在目录)
$TOOLKIT DIRS----IAR给的头文件路径(.inc)。
XDIR…\代表XDIR文件夹的上一层目录
o( ̄︶ ̄)o
ST-Link是硬件调试
o( ̄︶ ̄)o
默认工程 Run to的内容是main,指定了程序调试的起点,
注意这里写的是程序调试的起点并不是程序的起点,
而且我们需要明白main不是程序的起点,编译器把一些初始化工作放在了main之前,比如全局变量的初始化。
那么我们调试的时候也可以输入其它的调试起点,我们可以指定程序中AR识别的任意标号或者函数名称。
软件调试
Project-> Options,然后选择 Debugger列表。在 Setup页,确认在 Driver下拉菜单中选择了 Simulator选项,接着选择 Run to main。点击OK.
2.DEBUG
1:编译
2:编译并生成可执行文件
3:设置断点
4:DEBUG并烧录程序
5:DEBUG
下载运行
1.Projcet > DownLoad and Debug
2.(Ctrl+D )
3.按下面按钮
3.断点
3.1.设置断点
(先将光标定位到要设断点的行)
1.Edit> Togglebreakpoint
2.按下方按钮
3.右键选 Toggle Breakpoint
4.代码最左侧灰色的位置单击鼠标左键
5.F9 设置断点和关闭断点
3.2执行到断点
1.(F5 )
2.按下方按钮
Debug Log:断点的信息
4.执行调试
1:(F10)Debug > Step Over,单个语句和函数进行,(执行完当前的函数,不跟踪进入C函数或者汇编语言子程序);
2:(F11)Debug > Step Into,跳进函数逐条语句执行,(跟踪进入C函数或者汇编语言子程序);
3:(Shift+F11)Debug >Step Out,跳出某函数
4:执行下一条语句,Next Statement
5:从当前位置运行到光标处,Run to Cursor
6:全速运行,Go
7:暂停,Break
8:复位,Reset
5.调试状态下View
常用窗口有 Breakpoints,,Memory,Debug log Disassemble, Locals. Register, Watch Auto
可以在窗口里改变变量值、寄存器值、内存的任意bute的数据,基至IO的输出,当然改之前用户要明白数据的意义。
查看变量(Live Watch 窗口)
View→ Live Watch
用于观察静止位置上的变量,如全局变量
右键要查看的变量,点击 Add to Watch变量的值在执行时会变化并显示出来
Memory(查看存储器)
View >Memory
(用8-bit 显示数据)
可以查看全部内存中的数据,看起来就像一般的16进制编辑器
双击某个全局变量名并用鼠标将其拖到存储器窗口。执行单步,同时观察存储器的内容是如何修改的。用户可以在存储器窗口修改存储单元的内容。只需把插入点放在希望修改的地方,然后输入新值就可以了。
监视寄存器(Register)
CPU 寄存器
可以从寄存器窗口左上方的下拉菜单中选择需要查看的任何寄存器组。
反汇编窗口(Disassembly)
也就是你写的程序经过编译烧写之后,在单片机中的样子
选中函数名称/变量名称然后把函数名称拖放到Disassembly窗口,相关函数就会显示在Disassembly窗口中,