IAR Visual State图形化建模工具

IAR Visual State是一个用于设计和代码生成的工具。它以图形方式设计状态机并生成C/C ++源代码。使用IAR Visual State可以加快原型制作时间并缩短产品上市时间。同时,可以确保代码质量和智能功能, 还使您能够进行模块化设计,从而实现高效的团队合作。由于该工具是为嵌入式系统而设计的,因此您能够以简单直观的方式使用状态机,并且不需要不必要的操作功能。

IAR Visual State图形化建模工具


IAR Visual State是一个用于设计和代码生成的工具。它以图形方式设计状态机并生成C/C ++源代码。


随着复杂性的增加,如何确保在代码中实现完整的设计? 

当项目复杂性增加时,如何确保按计划进行?

当一个团队开发一个大型项目时,如何确保所有部件协同工作?


使用IAR Visual State可以加快原型制作时间并缩短产品上市时间。同时,可以确保代码质量和智能功能, 还使您能够进行模块化设计,从而实现高效的团队合作。由于该工具是为嵌入式系统而设计的,因此您能够以简单直观的方式使用状态机,并且不需要不必要的操作功能。


特点:

1、生成非常紧凑的代码

2、基于UML进行设计

3、通过状态机设计中的直接反馈提供对硬件调试的支持:立即查看哪些状态配置处于活动状态以及哪些变换到达哪里

4、与IAR Embedded Workbench紧密集成

5、自动生成文档

6、包括验证和检验工具


常问问题


1.我可以在高完整性系统上使用IAR Visual State吗?


IAR Visual State是处理功能安全的许多设计任务的绝佳工具。例如,IEC-61508功能安全标准明确建议将状态机作为一种设计方法来满足更高的SIL水平。

通过在IAR Visual State中设计状态机系统,可以利用逻辑验证来查找设计中几乎无法编写的全覆盖率测试套件的问题。可以发现的问题包括: 死锁情况,无法到达的部分,从不使用的输入等。 


2.为什么使用UML的子集 - 为什么不使用不同的模型语法?


UML的状态机子集易于学习,清晰且具有明确的语义定义。 UML也是许多软件工程师工具箱的一部分,并在学校和大学广泛教授,因此容易掌握。

明确的语义定义使其适用于严格的自动代码生成,而无需设计人员指导代码生成来解决歧义等。 


3.IAR Visual State和其它UML工具如何比较?


IAR Visual State是一个纯状态机器工具。集成的逻辑验证,测试和验证工具, 以及经过充分验证的代码生成器, 它带来的额外好处意味着对于许多应用程序而言,您实际上并不需要其它任何东西。

另一方面,如果您已经在设计中使用了完整的UML工具,那么如果您要将部分设计表示为复杂的状态机系统, IAR Visual State会给您提供极大的帮助。由于IAR Visual State强大的测试和验证功能,您将从使用它的第一天起, 就会提高生产力和产品的质量。


4.UML和IAR Visual State的状态机子集好学吗?


假设您是一位经验丰富的C开发人员,并且知道如何编写ISR和设备驱动程序,那么您应该可以在一天内就学会UML语法和基本的IAR Visual State操作。在第二天,您将掌握基本的Validator操作,例如: 单步执行状态,设置断点,动画,脚本。您将在短短几天内使用IAR Visual State高效地完成现实世界的应用程序。如果您已经熟悉UML和自动代码生成,那么您将能够更快地掌握它!

为了帮助您成为IAR Visual State的更高效用户,IAR Systems提供培训课程。


5.可以使用IAR Visual State创建可在PC上运行的应用程序吗?


是。IAR Visual State是解决面向所有状态机问题的理想选择, 它生成的代码与运行的机器无关。

如果只有部分应用程序由状态机组成,则很容易将生成的代码集成到周围的应用程序中。对于中等复杂到非常复杂的状态机系统,软件开发的生产率的大幅提升和质量问题确在减少。实际上,IAR Visual State在工具本身的开发中被用作内部开发工具!


6.IAR Visual State代码生成器生成什么样的代码?


有两个选项:一个是基于表的非常紧凑的模式,另一种是将生成的状态机直接转换为可读C代码的模式。您选择哪种模示取决于您在速度和大小权衡方面的特定应用要求, 以及手动检查生成代码的需要。


7.IAR Visual State生成的代码是否真的可移植?


是。生成的代码不对任何编译器特定功能进行任何假设,也不使用任何不完全符合ISO / ANSI标准的构造。


8.代码可以根据我的特定目标平台和编译器进行定制吗?


是。代码生成器可以配置为使用特定于编译器的关键字将状态机代码和数据放在您选择的内存区域中。出于速度目的,数据实体的大小可以强制为16位或32位以匹配目标体系结构,即使模型仅需要8位表示。有许多选项可以用来配置代码生成器, 以平衡MCU目标,编译器和编码标准的需求。


9.如何在中断时使用IAR Visual State?


IAR可视化状态引擎处理事件,事件可以看作是环境中发生事物的抽象。如果中断应该对状态机产生影响,这很自然使得中断映射到IAR可视状态事件。

如果有要处理的事件,典型的IAR Visual State应用程序将状态机引擎作为主循环的一部分运行。

中断例程如何与状态机引擎进行通信取决于您自己。但实现方法的范围从让中断例程设置主循环可以检测到标志,到使用全功能RTOS队列或信号量。

您的应用程序结构与通常相同。如果中断服务例程生成状态机系统的输入,则例程只是将适当的事件放入状态机事件队列并返回。

10.我可以通过设计级别的反馈来调试我的应用程序吗?


是的你可以。如果您是IAR Embedded Workbench的用户,您可以选择使用C-SPY Link工具直接在C-SPY调试器中获得高级设计模型反馈。该功能包括执行时状态图中的图形动画,可以在状态机级别而不是C级别设置断点以及跟踪和记录功能。

如果您使用的是非IAR构建链, 则无法使用带有C-SPY的硬件调试解决方案,可以使用RealLink工具通过单独的通信通道传递状态机数据。


11.如何在RTOS中使用IAR Visual State?


使用IAR Visual State设计任务的控制逻辑或任务的一部分。使用RTOS将您的任务与各自的优先级集成到系统中,就像您手动编写应用程序一样。

为了能够将IAR可视状态代码拆分在不同任务中运行,可以将状态机拆分为不同的IAR可视状态系统。IAR可视状态系统是状态机的集合,它们被设计为一个单元,可以作为一个单元运行,并且可能彼此之间具有相当紧密的联系。RTOS应用程序可以包含任意数量的系统,系统可以使用可用的RTOS原语在任务级别进行通信。

系统可以任意分配给RTOS任务,因此任务实际上可以一次容纳多个系统。


12.我可以在使用硬件之前对设计进行原型设计吗?


IAR Visual State生成的代码可以与使用RAD工具(如Altia Design,Microsoft®VisualBasic®,Microsoft®VisualC ++®,Borland®DelphiTM或您选择的任何其他GUI工具包)开发的应用程序轻松集成。


13.我该如何处理异步事件?


如果将异步事件转发到IAR Visual State引擎,则会处理它们。这通常通过将它们放入事件队列来完成。只要事件在事件队列中,它最终将由IAR可视状态控制逻辑处理。 


14.我可以修改生成的代码吗?


IAR Visual State生成的代码侧重于状态机系统的控制逻辑。这部分代码不应该手工修改,原因有很多,其中最重要的一点是设计始终是控制逻辑的唯一显式表示。这样,模型和执行代码始终保持同步。

无论原始设计和实施方法如何,手动修改状态机代码总是存在在状态和条件的内部引入难以发现的错误的风险。


IAR Visual State图形化建模工具


IAR Visual State是一个用于设计和代码生成的工具。它以图形方式设计状态机并生成C/C ++源代码。


随着复杂性的增加,如何确保在代码中实现完整的设计? 

当项目复杂性增加时,如何确保按计划进行?

当一个团队开发一个大型项目时,如何确保所有部件协同工作?


使用IAR Visual State可以加快原型制作时间并缩短产品上市时间。同时,可以确保代码质量和智能功能, 还使您能够进行模块化设计,从而实现高效的团队合作。由于该工具是为嵌入式系统而设计的,因此您能够以简单直观的方式使用状态机,并且不需要不必要的操作功能。


特点:

1、生成非常紧凑的代码

2、基于UML进行设计

3、通过状态机设计中的直接反馈提供对硬件调试的支持:立即查看哪些状态配置处于活动状态以及哪些变换到达哪里

4、与IAR Embedded Workbench紧密集成

5、自动生成文档

6、包括验证和检验工具


常问问题


1.我可以在高完整性系统上使用IAR Visual State吗?


IAR Visual State是处理功能安全的许多设计任务的绝佳工具。例如,IEC-61508功能安全标准明确建议将状态机作为一种设计方法来满足更高的SIL水平。

通过在IAR Visual State中设计状态机系统,可以利用逻辑验证来查找设计中几乎无法编写的全覆盖率测试套件的问题。可以发现的问题包括: 死锁情况,无法到达的部分,从不使用的输入等。 


2.为什么使用UML的子集 - 为什么不使用不同的模型语法?


UML的状态机子集易于学习,清晰且具有明确的语义定义。 UML也是许多软件工程师工具箱的一部分,并在学校和大学广泛教授,因此容易掌握。

明确的语义定义使其适用于严格的自动代码生成,而无需设计人员指导代码生成来解决歧义等。 


3.IAR Visual State和其它UML工具如何比较?


IAR Visual State是一个纯状态机器工具。集成的逻辑验证,测试和验证工具, 以及经过充分验证的代码生成器, 它带来的额外好处意味着对于许多应用程序而言,您实际上并不需要其它任何东西。

另一方面,如果您已经在设计中使用了完整的UML工具,那么如果您要将部分设计表示为复杂的状态机系统, IAR Visual State会给您提供极大的帮助。由于IAR Visual State强大的测试和验证功能,您将从使用它的第一天起, 就会提高生产力和产品的质量。


4.UML和IAR Visual State的状态机子集好学吗?


假设您是一位经验丰富的C开发人员,并且知道如何编写ISR和设备驱动程序,那么您应该可以在一天内就学会UML语法和基本的IAR Visual State操作。在第二天,您将掌握基本的Validator操作,例如: 单步执行状态,设置断点,动画,脚本。您将在短短几天内使用IAR Visual State高效地完成现实世界的应用程序。如果您已经熟悉UML和自动代码生成,那么您将能够更快地掌握它!

为了帮助您成为IAR Visual State的更高效用户,IAR Systems提供培训课程。


5.可以使用IAR Visual State创建可在PC上运行的应用程序吗?


是。IAR Visual State是解决面向所有状态机问题的理想选择, 它生成的代码与运行的机器无关。

如果只有部分应用程序由状态机组成,则很容易将生成的代码集成到周围的应用程序中。对于中等复杂到非常复杂的状态机系统,软件开发的生产率的大幅提升和质量问题确在减少。实际上,IAR Visual State在工具本身的开发中被用作内部开发工具!


6.IAR Visual State代码生成器生成什么样的代码?


有两个选项:一个是基于表的非常紧凑的模式,另一种是将生成的状态机直接转换为可读C代码的模式。您选择哪种模示取决于您在速度和大小权衡方面的特定应用要求, 以及手动检查生成代码的需要。


7.IAR Visual State生成的代码是否真的可移植?


是。生成的代码不对任何编译器特定功能进行任何假设,也不使用任何不完全符合ISO / ANSI标准的构造。


8.代码可以根据我的特定目标平台和编译器进行定制吗?


是。代码生成器可以配置为使用特定于编译器的关键字将状态机代码和数据放在您选择的内存区域中。出于速度目的,数据实体的大小可以强制为16位或32位以匹配目标体系结构,即使模型仅需要8位表示。有许多选项可以用来配置代码生成器, 以平衡MCU目标,编译器和编码标准的需求。


9.如何在中断时使用IAR Visual State?


IAR可视化状态引擎处理事件,事件可以看作是环境中发生事物的抽象。如果中断应该对状态机产生影响,这很自然使得中断映射到IAR可视状态事件。

如果有要处理的事件,典型的IAR Visual State应用程序将状态机引擎作为主循环的一部分运行。

中断例程如何与状态机引擎进行通信取决于您自己。但实现方法的范围从让中断例程设置主循环可以检测到标志,到使用全功能RTOS队列或信号量。

您的应用程序结构与通常相同。如果中断服务例程生成状态机系统的输入,则例程只是将适当的事件放入状态机事件队列并返回。

10.我可以通过设计级别的反馈来调试我的应用程序吗?


是的你可以。如果您是IAR Embedded Workbench的用户,您可以选择使用C-SPY Link工具直接在C-SPY调试器中获得高级设计模型反馈。该功能包括执行时状态图中的图形动画,可以在状态机级别而不是C级别设置断点以及跟踪和记录功能。

如果您使用的是非IAR构建链, 则无法使用带有C-SPY的硬件调试解决方案,可以使用RealLink工具通过单独的通信通道传递状态机数据。


11.如何在RTOS中使用IAR Visual State?


使用IAR Visual State设计任务的控制逻辑或任务的一部分。使用RTOS将您的任务与各自的优先级集成到系统中,就像您手动编写应用程序一样。

为了能够将IAR可视状态代码拆分在不同任务中运行,可以将状态机拆分为不同的IAR可视状态系统。IAR可视状态系统是状态机的集合,它们被设计为一个单元,可以作为一个单元运行,并且可能彼此之间具有相当紧密的联系。RTOS应用程序可以包含任意数量的系统,系统可以使用可用的RTOS原语在任务级别进行通信。

系统可以任意分配给RTOS任务,因此任务实际上可以一次容纳多个系统。


12.我可以在使用硬件之前对设计进行原型设计吗?


IAR Visual State生成的代码可以与使用RAD工具(如Altia Design,Microsoft®VisualBasic®,Microsoft®VisualC ++®,Borland®DelphiTM或您选择的任何其他GUI工具包)开发的应用程序轻松集成。


13.我该如何处理异步事件?


如果将异步事件转发到IAR Visual State引擎,则会处理它们。这通常通过将它们放入事件队列来完成。只要事件在事件队列中,它最终将由IAR可视状态控制逻辑处理。 


14.我可以修改生成的代码吗?


IAR Visual State生成的代码侧重于状态机系统的控制逻辑。这部分代码不应该手工修改,原因有很多,其中最重要的一点是设计始终是控制逻辑的唯一显式表示。这样,模型和执行代码始终保持同步。

无论原始设计和实施方法如何,手动修改状态机代码总是存在在状态和条件的内部引入难以发现的错误的风险。


  • 宝贝详情
  • IAR Visual State图形化建模工具


    IAR Visual State是一个用于设计和代码生成的工具。它以图形方式设计状态机并生成C/C ++源代码。


    随着复杂性的增加,如何确保在代码中实现完整的设计? 

    当项目复杂性增加时,如何确保按计划进行?

    当一个团队开发一个大型项目时,如何确保所有部件协同工作?


    使用IAR Visual State可以加快原型制作时间并缩短产品上市时间。同时,可以确保代码质量和智能功能, 还使您能够进行模块化设计,从而实现高效的团队合作。由于该工具是为嵌入式系统而设计的,因此您能够以简单直观的方式使用状态机,并且不需要不必要的操作功能。


    特点:

    1、生成非常紧凑的代码

    2、基于UML进行设计

    3、通过状态机设计中的直接反馈提供对硬件调试的支持:立即查看哪些状态配置处于活动状态以及哪些变换到达哪里

    4、与IAR Embedded Workbench紧密集成

    5、自动生成文档

    6、包括验证和检验工具


    常问问题


    1.我可以在高完整性系统上使用IAR Visual State吗?


    IAR Visual State是处理功能安全的许多设计任务的绝佳工具。例如,IEC-61508功能安全标准明确建议将状态机作为一种设计方法来满足更高的SIL水平。

    通过在IAR Visual State中设计状态机系统,可以利用逻辑验证来查找设计中几乎无法编写的全覆盖率测试套件的问题。可以发现的问题包括: 死锁情况,无法到达的部分,从不使用的输入等。 


    2.为什么使用UML的子集 - 为什么不使用不同的模型语法?


    UML的状态机子集易于学习,清晰且具有明确的语义定义。 UML也是许多软件工程师工具箱的一部分,并在学校和大学广泛教授,因此容易掌握。

    明确的语义定义使其适用于严格的自动代码生成,而无需设计人员指导代码生成来解决歧义等。 


    3.IAR Visual State和其它UML工具如何比较?


    IAR Visual State是一个纯状态机器工具。集成的逻辑验证,测试和验证工具, 以及经过充分验证的代码生成器, 它带来的额外好处意味着对于许多应用程序而言,您实际上并不需要其它任何东西。

    另一方面,如果您已经在设计中使用了完整的UML工具,那么如果您要将部分设计表示为复杂的状态机系统, IAR Visual State会给您提供极大的帮助。由于IAR Visual State强大的测试和验证功能,您将从使用它的第一天起, 就会提高生产力和产品的质量。


    4.UML和IAR Visual State的状态机子集好学吗?


    假设您是一位经验丰富的C开发人员,并且知道如何编写ISR和设备驱动程序,那么您应该可以在一天内就学会UML语法和基本的IAR Visual State操作。在第二天,您将掌握基本的Validator操作,例如: 单步执行状态,设置断点,动画,脚本。您将在短短几天内使用IAR Visual State高效地完成现实世界的应用程序。如果您已经熟悉UML和自动代码生成,那么您将能够更快地掌握它!

    为了帮助您成为IAR Visual State的更高效用户,IAR Systems提供培训课程。


    5.可以使用IAR Visual State创建可在PC上运行的应用程序吗?


    是。IAR Visual State是解决面向所有状态机问题的理想选择, 它生成的代码与运行的机器无关。

    如果只有部分应用程序由状态机组成,则很容易将生成的代码集成到周围的应用程序中。对于中等复杂到非常复杂的状态机系统,软件开发的生产率的大幅提升和质量问题确在减少。实际上,IAR Visual State在工具本身的开发中被用作内部开发工具!


    6.IAR Visual State代码生成器生成什么样的代码?


    有两个选项:一个是基于表的非常紧凑的模式,另一种是将生成的状态机直接转换为可读C代码的模式。您选择哪种模示取决于您在速度和大小权衡方面的特定应用要求, 以及手动检查生成代码的需要。


    7.IAR Visual State生成的代码是否真的可移植?


    是。生成的代码不对任何编译器特定功能进行任何假设,也不使用任何不完全符合ISO / ANSI标准的构造。


    8.代码可以根据我的特定目标平台和编译器进行定制吗?


    是。代码生成器可以配置为使用特定于编译器的关键字将状态机代码和数据放在您选择的内存区域中。出于速度目的,数据实体的大小可以强制为16位或32位以匹配目标体系结构,即使模型仅需要8位表示。有许多选项可以用来配置代码生成器, 以平衡MCU目标,编译器和编码标准的需求。


    9.如何在中断时使用IAR Visual State?


    IAR可视化状态引擎处理事件,事件可以看作是环境中发生事物的抽象。如果中断应该对状态机产生影响,这很自然使得中断映射到IAR可视状态事件。

    如果有要处理的事件,典型的IAR Visual State应用程序将状态机引擎作为主循环的一部分运行。

    中断例程如何与状态机引擎进行通信取决于您自己。但实现方法的范围从让中断例程设置主循环可以检测到标志,到使用全功能RTOS队列或信号量。

    您的应用程序结构与通常相同。如果中断服务例程生成状态机系统的输入,则例程只是将适当的事件放入状态机事件队列并返回。

    10.我可以通过设计级别的反馈来调试我的应用程序吗?


    是的你可以。如果您是IAR Embedded Workbench的用户,您可以选择使用C-SPY Link工具直接在C-SPY调试器中获得高级设计模型反馈。该功能包括执行时状态图中的图形动画,可以在状态机级别而不是C级别设置断点以及跟踪和记录功能。

    如果您使用的是非IAR构建链, 则无法使用带有C-SPY的硬件调试解决方案,可以使用RealLink工具通过单独的通信通道传递状态机数据。


    11.如何在RTOS中使用IAR Visual State?


    使用IAR Visual State设计任务的控制逻辑或任务的一部分。使用RTOS将您的任务与各自的优先级集成到系统中,就像您手动编写应用程序一样。

    为了能够将IAR可视状态代码拆分在不同任务中运行,可以将状态机拆分为不同的IAR可视状态系统。IAR可视状态系统是状态机的集合,它们被设计为一个单元,可以作为一个单元运行,并且可能彼此之间具有相当紧密的联系。RTOS应用程序可以包含任意数量的系统,系统可以使用可用的RTOS原语在任务级别进行通信。

    系统可以任意分配给RTOS任务,因此任务实际上可以一次容纳多个系统。


    12.我可以在使用硬件之前对设计进行原型设计吗?


    IAR Visual State生成的代码可以与使用RAD工具(如Altia Design,Microsoft®VisualBasic®,Microsoft®VisualC ++®,Borland®DelphiTM或您选择的任何其他GUI工具包)开发的应用程序轻松集成。


    13.我该如何处理异步事件?


    如果将异步事件转发到IAR Visual State引擎,则会处理它们。这通常通过将它们放入事件队列来完成。只要事件在事件队列中,它最终将由IAR可视状态控制逻辑处理。 


    14.我可以修改生成的代码吗?


    IAR Visual State生成的代码侧重于状态机系统的控制逻辑。这部分代码不应该手工修改,原因有很多,其中最重要的一点是设计始终是控制逻辑的唯一显式表示。这样,模型和执行代码始终保持同步。

    无论原始设计和实施方法如何,手动修改状态机代码总是存在在状态和条件的内部引入难以发现的错误的风险。


    IAR Visual State图形化建模工具


    IAR Visual State是一个用于设计和代码生成的工具。它以图形方式设计状态机并生成C/C ++源代码。


    随着复杂性的增加,如何确保在代码中实现完整的设计? 

    当项目复杂性增加时,如何确保按计划进行?

    当一个团队开发一个大型项目时,如何确保所有部件协同工作?


    使用IAR Visual State可以加快原型制作时间并缩短产品上市时间。同时,可以确保代码质量和智能功能, 还使您能够进行模块化设计,从而实现高效的团队合作。由于该工具是为嵌入式系统而设计的,因此您能够以简单直观的方式使用状态机,并且不需要不必要的操作功能。


    特点:

    1、生成非常紧凑的代码

    2、基于UML进行设计

    3、通过状态机设计中的直接反馈提供对硬件调试的支持:立即查看哪些状态配置处于活动状态以及哪些变换到达哪里

    4、与IAR Embedded Workbench紧密集成

    5、自动生成文档

    6、包括验证和检验工具


    常问问题


    1.我可以在高完整性系统上使用IAR Visual State吗?


    IAR Visual State是处理功能安全的许多设计任务的绝佳工具。例如,IEC-61508功能安全标准明确建议将状态机作为一种设计方法来满足更高的SIL水平。

    通过在IAR Visual State中设计状态机系统,可以利用逻辑验证来查找设计中几乎无法编写的全覆盖率测试套件的问题。可以发现的问题包括: 死锁情况,无法到达的部分,从不使用的输入等。 


    2.为什么使用UML的子集 - 为什么不使用不同的模型语法?


    UML的状态机子集易于学习,清晰且具有明确的语义定义。 UML也是许多软件工程师工具箱的一部分,并在学校和大学广泛教授,因此容易掌握。

    明确的语义定义使其适用于严格的自动代码生成,而无需设计人员指导代码生成来解决歧义等。 


    3.IAR Visual State和其它UML工具如何比较?


    IAR Visual State是一个纯状态机器工具。集成的逻辑验证,测试和验证工具, 以及经过充分验证的代码生成器, 它带来的额外好处意味着对于许多应用程序而言,您实际上并不需要其它任何东西。

    另一方面,如果您已经在设计中使用了完整的UML工具,那么如果您要将部分设计表示为复杂的状态机系统, IAR Visual State会给您提供极大的帮助。由于IAR Visual State强大的测试和验证功能,您将从使用它的第一天起, 就会提高生产力和产品的质量。


    4.UML和IAR Visual State的状态机子集好学吗?


    假设您是一位经验丰富的C开发人员,并且知道如何编写ISR和设备驱动程序,那么您应该可以在一天内就学会UML语法和基本的IAR Visual State操作。在第二天,您将掌握基本的Validator操作,例如: 单步执行状态,设置断点,动画,脚本。您将在短短几天内使用IAR Visual State高效地完成现实世界的应用程序。如果您已经熟悉UML和自动代码生成,那么您将能够更快地掌握它!

    为了帮助您成为IAR Visual State的更高效用户,IAR Systems提供培训课程。


    5.可以使用IAR Visual State创建可在PC上运行的应用程序吗?


    是。IAR Visual State是解决面向所有状态机问题的理想选择, 它生成的代码与运行的机器无关。

    如果只有部分应用程序由状态机组成,则很容易将生成的代码集成到周围的应用程序中。对于中等复杂到非常复杂的状态机系统,软件开发的生产率的大幅提升和质量问题确在减少。实际上,IAR Visual State在工具本身的开发中被用作内部开发工具!


    6.IAR Visual State代码生成器生成什么样的代码?


    有两个选项:一个是基于表的非常紧凑的模式,另一种是将生成的状态机直接转换为可读C代码的模式。您选择哪种模示取决于您在速度和大小权衡方面的特定应用要求, 以及手动检查生成代码的需要。


    7.IAR Visual State生成的代码是否真的可移植?


    是。生成的代码不对任何编译器特定功能进行任何假设,也不使用任何不完全符合ISO / ANSI标准的构造。


    8.代码可以根据我的特定目标平台和编译器进行定制吗?


    是。代码生成器可以配置为使用特定于编译器的关键字将状态机代码和数据放在您选择的内存区域中。出于速度目的,数据实体的大小可以强制为16位或32位以匹配目标体系结构,即使模型仅需要8位表示。有许多选项可以用来配置代码生成器, 以平衡MCU目标,编译器和编码标准的需求。


    9.如何在中断时使用IAR Visual State?


    IAR可视化状态引擎处理事件,事件可以看作是环境中发生事物的抽象。如果中断应该对状态机产生影响,这很自然使得中断映射到IAR可视状态事件。

    如果有要处理的事件,典型的IAR Visual State应用程序将状态机引擎作为主循环的一部分运行。

    中断例程如何与状态机引擎进行通信取决于您自己。但实现方法的范围从让中断例程设置主循环可以检测到标志,到使用全功能RTOS队列或信号量。

    您的应用程序结构与通常相同。如果中断服务例程生成状态机系统的输入,则例程只是将适当的事件放入状态机事件队列并返回。

    10.我可以通过设计级别的反馈来调试我的应用程序吗?


    是的你可以。如果您是IAR Embedded Workbench的用户,您可以选择使用C-SPY Link工具直接在C-SPY调试器中获得高级设计模型反馈。该功能包括执行时状态图中的图形动画,可以在状态机级别而不是C级别设置断点以及跟踪和记录功能。

    如果您使用的是非IAR构建链, 则无法使用带有C-SPY的硬件调试解决方案,可以使用RealLink工具通过单独的通信通道传递状态机数据。


    11.如何在RTOS中使用IAR Visual State?


    使用IAR Visual State设计任务的控制逻辑或任务的一部分。使用RTOS将您的任务与各自的优先级集成到系统中,就像您手动编写应用程序一样。

    为了能够将IAR可视状态代码拆分在不同任务中运行,可以将状态机拆分为不同的IAR可视状态系统。IAR可视状态系统是状态机的集合,它们被设计为一个单元,可以作为一个单元运行,并且可能彼此之间具有相当紧密的联系。RTOS应用程序可以包含任意数量的系统,系统可以使用可用的RTOS原语在任务级别进行通信。

    系统可以任意分配给RTOS任务,因此任务实际上可以一次容纳多个系统。


    12.我可以在使用硬件之前对设计进行原型设计吗?


    IAR Visual State生成的代码可以与使用RAD工具(如Altia Design,Microsoft®VisualBasic®,Microsoft®VisualC ++®,Borland®DelphiTM或您选择的任何其他GUI工具包)开发的应用程序轻松集成。


    13.我该如何处理异步事件?


    如果将异步事件转发到IAR Visual State引擎,则会处理它们。这通常通过将它们放入事件队列来完成。只要事件在事件队列中,它最终将由IAR可视状态控制逻辑处理。 


    14.我可以修改生成的代码吗?


    IAR Visual State生成的代码侧重于状态机系统的控制逻辑。这部分代码不应该手工修改,原因有很多,其中最重要的一点是设计始终是控制逻辑的唯一显式表示。这样,模型和执行代码始终保持同步。

    无论原始设计和实施方法如何,手动修改状态机代码总是存在在状态和条件的内部引入难以发现的错误的风险。