STM8应用笔记 STM8单片机快速入门 STM8仿真调试快速入门

STM8仿真调试快速入门

以下资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!

  ● ST Visual Develop的安装
  到 ST 官方网站: http://www.st.com/stonline/products/support/micro/files/sttoolset.exe 下载安装。

  ● ST Visual Develop之设置软件与建立、打开相关调试文件
  ----使用Cosmic C语言,软件仿真
  要用STVD的IDE下使用COSMIC C语言开发的话,首先要在STVD中对COSMIC STM8编译器进行设置。 如下图所示,运行ST Visual Develop 集成开发环境,选择菜单"Tools -> Options",在出现的对话框中选择"Toolset"选项卡。在"Toolset"下拉菜单,选中"STM8S Cosmic",设置编译器的安装路径"Root path",然后选择"确定"。本例中选择的"Root path" 是:C:\Program Files\COSMIC\CXSTM8_16K。至此,就完成了COSMIC C编译器的设置完成。


图1


  ----软件仿真
  要进行软件仿真,则要进行软件设置,选择菜单" Debug instrument -> Target Settings",进入了设置界面。在" Debug session"里面选择"Simulator",这样就完成了软件仿真设置。

打开相关调试文件
1. 打开测试文件test.stw(本教程是用test.stw的工程文件)



2. 载入后进入了编程画面,进入仿真界面,只要按菜单栏上的"Debug -> Start Debugging",或者按菜单栏上的蓝色按钮,就进入了仿真界面进行仿真。


(红色框框就是仿真按钮)

3. 软件仿真需要设置相应的寄存器的,在" Debug instrument"菜单下,可以设置相应的MCU设置。

  ----使用STLink III仿真器,硬件仿真
  要进行硬件仿真,也要进行软件设置,选择菜单" Debug instrument -> Target Settings",进入了设置界面。在" Debug session"里面选择您所使用的仿真器,本例子是用的STLink,所以选择"Swim ST-Link",然后在"Target Port Selection"里面选择USB,接着按OK,这样就完成了硬件仿真设置。

打开相关调试文件
1. 打开测试文件test.stw(本教程是用test.stw的工程文件)



2. 硬件仿真需要设置相应的MCU型号的,如果MCU型号设置与实际不相符则无法进行仿真。载入了源文件之后,在" Project -> Settings -> MCU Selection"设置MUC型号。(修改过MCU型号后需要编译多一次)

3. 设置完MCU型号后,要进入仿真界面,只要按菜单栏上的"Debug -> Start Debugging",或者按菜单栏上的蓝色按钮,就进入了仿真界面进行仿真。


(红色框框就是仿真按钮)


  ● STM8之调试程序

下面简单介绍使用ST Visual Develop进行仿真调试

调试控制栏
调试控制栏可以控制程序的执行状态,所有的调试控制都可以由菜单,快捷键和调试工具栏实现。

1.开始调试(Start Debugging)
此命令将启动调试模式,并使所有的调试控制命令处于有效。此命令将连接调试平台,装载目标文件并执行复位操作。

2.停止调试(Stop Debugging)
此命令将停止调试过程,并断开与调试平台的连接,进入编辑模式。

3.光标跳转到当前程序处(Go To PC)
让光标跳转到当前运行的程序语句行处。

4.全速运行(Run)(Ctrl+F5)
调试菜单中的运行命令将启动(重启动)程序。程序将一直运行直到被用户停止或遇到一个断点。只有当程序处于停止运行状态时才能执行此命令。

5.复位(Reset)( Ctrl+ SHIFT+F5 )
此命令可以让目标程序复位。当程序正在运行时,无法执行此命令。如果用户是在源级模式中,程序会在复位完成后,跳回到第一条用户的源代码语句处。复位命令执行后,所有窗口中的信息都将更新。

6.重新开始应用程序(Restart Application)
此命令可以让目标程序复位并且条状到主函数。当程序正在运行时,无法执行此命令。此复位命令执行后,所有窗口中的信息都将更新。

7.继续运行(continue)
调试菜单中的暂停命令让暂停或者停留在断点的程序继续运行下去。

8.暂停(stop)(SHIFT+F5)
调试菜单中的暂停命令将停止程序运行。当程序停止时,所有窗口中的信息都将更新。只有当程序处在运行状态时才能执行此命令。

9.逐过程(Step Into)(F11)
调试菜单中的逐过程命令只执行一条指令。如果此条指令包含一个函数调用/子程序调用,该函数/子程序也会同时执行。如果在逐过程命令中遇到用户设置的断点,程序运行将被挂起。在逐过程命令执行完毕后,所有窗口中的信息才会被更新。

a.跳跃(Step Over)(F10)
调试菜单中的跳跃命令会使程序不进入子程序运行,直到当前函数结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

b.汇编语言逐过程(Step Into ASM)(Alt+F11)
调试菜单中的逐过程命令只执行一条指令。如果此条指令包含一个函数调用/子程序调用,该函数/子程序也会同时执行。如果在逐过程命令中遇到用户设置的断点,程序运行将被挂起。在逐过程命令执行完毕后,所有窗口中的信息才会被更新。

c. 汇编语言跳出(Step Over ASM)(Alt+F10)
调试菜单中的跳出命令会使子函数程序一直运行,直到当前函数的汇编语言结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

d.跳出(Step Out)(Ctrl+F11)
调试菜单中的跳出命令会使在子函数程序一直运行,直到当前函数的结束。如果遇到用户设置的断点,程序运行将被挂起。当程序处在最外层(如主函数)时,此时执行跳出命令,程序将继续运行,直到遇到一个断点或被用户停止。在该命令执行完成后,所有窗口中的信息都将更新。

e.运行到断点处(Run To Cursor)
调试菜单中的运行到断点处命令,将使程序运行到源代码的断点处停止。

f.运行到光标处(Run To Cursor)
调试菜单中的运行到光标处命令,将使程序运行到源代码窗口中光标指示的语句处停止。此时如果遇到用户的断点,程序的运行将不会被挂起。如果程序运行永远达不到光标指示处的语句,程序将一直继续运行,直到被用户停止。当此命令结束后,所有窗口中的信息都将更新。由于此命令是与光标位置有关,所以只有当源代码窗口激活时才有效。

STM8仿真调试快速入门

——