打印
[STM8]

STM8仿真调试快速入门

[复制链接]
2024|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
powerful1|  楼主 | 2015-3-30 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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的工程文件)



沙发
powerful1|  楼主 | 2015-3-30 21:10 | 只看该作者
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)
调试菜单中的运行到光标处命令,将使程序运行到源代码窗口中光标指示的语句处停止。此时如果遇到用户的断点,程序的运行将不会被挂起。如果程序运行永远达不到光标指示处的语句,程序将一直继续运行,直到被用户停止。当此命令结束后,所有窗口中的信息都将更新。由于此命令是与光标位置有关,所以只有当源代码窗口激活时才有效。

使用特权

评论回复
板凳
vigous1| | 2015-3-30 21:23 | 只看该作者
STM8仿真调试过程

使用特权

评论回复
地板
Vitality1| | 2015-3-30 21:43 | 只看该作者
  软件仿真需要设置相应的寄存器

使用特权

评论回复
5
energy1| | 2015-3-30 21:48 | 只看该作者
使用ST Visual Develop进行仿真调试

使用特权

评论回复
6
zh113214| | 2015-3-30 22:09 | 只看该作者
入门第一课。。。,

使用特权

评论回复
7
wuxin999| | 2015-4-14 12:52 | 只看该作者
入门第一课。。。,

使用特权

评论回复
8
18759302991| | 2019-7-22 17:07 | 只看该作者
全速运行,变量会自动实时更新吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

88

主题

430

帖子

4

粉丝