QM UML状态机建模实例之移植 cortex-m0

---恢复内容开始---

在上一期“Blinky for cortex-m0”中我们介绍了如何在QM中建立一个工程和生成代码,如何使生成的代码在我们的工程师运行起来,为此这一期要介绍如何将QP-NANO(qpn5.4.2)移植到CORTEX-M0中。
移植前的准备工作:
1.StateMachines板一块,使用其中的Systick滴答定时器
2.下载工具一个(我们使用Jlink)
3.下载官方qpn5.4.2代码
  
下面简单介绍下如何下载官方qpn5.4.2代码
首先直接到QP官网http://www.state-machine.com/然后选择Products,接着在右侧找到QP-nano并点击,可以看到跳转到了QP-nano可选资源上,选择QP-nano Downloads会跳转到sourceforge网站上,上面有QP-nano发布的全部版本,
找到5.4.2点击进入,最后选择下载资源的格式(一种为.exe和.zip)等待下载即可,具体请看下图:
<ignore_js_op> 
<ignore_js_op> 
<ignore_js_op> 
<ignore_js_op> 
<ignore_js_op> 
<ignore_js_op>

下载后的.zip格式包解压后如下图所示:

<ignore_js_op>

我们移植需要使用的文件有:
1.include
2.ports
3.source
4.examples
将前三个文件夹拷贝到我们的工程模板中,在System文件夹下建立Qpn文件夹,将以上三个文件夹放入到Qpn文件中按下图路径存放(或者你的工程目录中):

<ignore_js_op>

注意ports下的文件是和硬件平台相关的,我们使用的硬件平台是stm32f030内核是cortex-m0系列的,所以只需要ports下的arm-cm,QP-nano因为我们使用的是合作式的内核,所以选择qv内核,编译器选择arm,具体路径请看下图:

<ignore_js_op>

使用到examples是因为里面有cortex-m0+内核例程,已经有移植好了systick
corter-m0和cortex-m0+的区别主要是功耗和运算能力的区别,所以可以使用里面移植好的bsp。
将examples里面的dpp_nucleo-l053r8例程下的bsp.c和bsp.h拷贝到我们的工程模板Device下(或者你的工程中目录中),具体路径请看下图:
<ignore_js_op> 
<ignore_js_op> 
<ignore_js_op>

注:我们已将bsp文件名改成QpnBsp文件名

移植前的准备工作已经完成了,接下来是在工程中添加QP-nano代码,使用KEIL MDK4.73以上的版本打开工程。在我们的工程中直接在System.Qpn.Core添加QP-nano代码(或者你的工程中目录中)
只需要添加:
1.qepn.c
2.qfn.c
3.qvn.c
在System.Device.Driver目录添加QpnBsp.c,添加好文件路径,并将QpnBsp中不需要使用到的变量和代码删除,具体请看Code.Qpn.QV.QM.Stm32f030Demo.Project V1.0工程
最后可以结合上一期的教程中生成的代码添加到工程中,运行一次验证移植是否成功。
这里简单介绍下QV内核和QK内核的特点
QV内核是带优先级的不可抢占的合作式内核,通俗的说就是使用CPU是合作式的不存在抢占CPU的情况,带优先级是对于所定义的活动对象在产生的事件队列分配运行次序中优先级高的先执行事件,低优先级的后执行事件。
QK内核是带优先级可抢占式的内核,意味着不同优先级的活动对象在任务级分发事件或者ISR分发事件都可能产生抢占,每一时刻都运行最高优先级的活动对象。更多QK,QV调度器资料请看PSiCC2-CN第二部分第6、7、8、10章节。

这样整个移植就介绍完成了,因为官方中已经有Cortex-m0的例程,所以省略了移植的细节部分,如果移植到不同的平台请参考官方的例程,具体的移植细节请参看PSiCC2-CN。

欢迎关注 燕雀窥鸿 的博客,后面会持续更新QM建模的应用。

如须了解更多关于StateMachines板信息X宝搜索QP学习板找到全然电子店铺,QM UML交流扣扣群搜索QM UML找到 QM UML状态机建模编程 群即可。

---恢复内容结束---

时间: 2024-08-08 09:26:45

QM UML状态机建模实例之移植 cortex-m0的相关文章

UML类图实例分析

登录模块 某基于C/S的即时聊天系统登录模块功能描述如下: 用户通过登录界面(LoginForm)输入账号和密码,系统将输入的账号和密码与存储在数据库(User)表中的用户信息进行比较,验证用户输入是否正确,如果输入正确则进入主界面(MainForm),否则提示“输入错误”. 根据以上描述绘制初始类图. 考虑到系统扩展性,在本实例中引入了抽象数据访问接口IUserDAO,再将具体数据访问对象注入到业务逻辑对象中,可通过配置文件(如XML文件)等方式来实现,将具体的数据访问类类名存储在配置文件中,

08-FPGA状态机设计实例——小梅哥FPGA设计思想与验证方法视频教程配套文档

芯航线--普利斯队长精心奉献 ? 实验目的:1.学习状态机的相关概念 2.理解一段式.两段式以及三段式状态机的区别以及优缺点 实验平台:芯航线FPGA核心板 实验原理: 状态机全称是有限状态机(finite-state machine,缩写:FSM)是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型. 状态机分为摩尔(Moore)型有限状态机与米利(Mealy)型有限状态机.摩尔状态机输出是只由输入确定的有限状态机(不直接依赖于当前状态).米利有限状态机的输出不止与其输入有关还于它的

ARM Cortex M0权威指南_PDF电子书下载 带书签目录 高清完整版 http://pan.baidu.com/s/1jGKQSwY MariaDB入门很简单_PDF电子书下载 带

ARM  Cortex  M0权威指南_PDF电子书下载 带书签目录 高清完整版   http://pan.baidu.com/s/1jGKQSwY MariaDB入门很简单_PDF电子书下载 带书签目录 高清完整版  http://pan.baidu.com/s/1hqpgV20 管理就是走流程__没有规范流程,管理一切为零_PDF电子书下载 带书签目录 高清完整版  http://pan.baidu.com/s/1bntuLyf 搜索引擎优化  SEO  方法与技巧  第5版_PDF电子书下

UML数据建模工具之Enterprise Architect(EA)实例

一.需求建模,模拟银行ATM机用户取款实例. 1.新建项目选择模型视图类别 2.将model更改成ATM(项目名称). 3.将Requirements更改成'需求建模',Analysis View 更改成'领域模型',Use Case View更改成'用例模型',将Logical View更改成'逻辑模型'. 4.在需求建模,分别建立包,卡处理,用户登录,取款,用户界面,查询余额,其次, Add a package--->Create diagram--->extended--->Req

uml面向对象建模基础总结

uml九种图,其中的细节不说了.在后面的具体使用中提到这九种图. 建模流程: 1.分析需求. 2.通过分析名词,发现类,使用到类图. 3.建立用例模型,通过参与者分析用例,使用到用例图. 4.为用例建立交互模型和状态机模型,使用到交互图和状态机图,活动图. 5.划分子系统,将各个用例划分为不同的子系统,使用到包图. 6.明确部署结构,使用到部署图,我的理解是各个实体模块中所包含的类. 7.分层,这一步是为了让程序的运转流程更加的清晰,一般就是接口层,业务层和界面层,然后每一层内部的分层我觉得更加

UML软件建模学习与开发基本概念汇总

UML,统一建模语言,对于软件工程专业的学生而言,是一门非常重要的技术,对于从事软件行业的的开发人员,设计人员等等,更是不可或缺的,同样是为了大学阶段的非常boring的考试,花费了不少时间整理考试资料,现在和大家一起分享. 真题汇总 1. 什么是用例图?用例图有什么作用? 定义:由参与者.用例以及他们之间的关系构成的用于描述系统功能的图称为用例图. 作用: (1) 用例图是从软件需求分析到最终实现的第一步,它显示了系统的用户和用户希望提供的功能,有利于用户和软件开发人员之间的沟通. (2) 用

UML 状态机图

状态机图 状态机图对一个单独对象的行为建模,指明对象在它的整个生命周期里,响应不同事件时,执行相关事件的顺序. ? ? 如下示例, 下列的状态机图显示了门在它的整个生命周期里如何运作. 门可以处于以下的三种状态之一: "Opened"打开状态, "Closed"关闭状态,或者"Locked"锁定状态. 它分别响应事件:"Open"开门, "Close"关门, "Lock"锁门 和 &qu

再学UML-Bug管理系统UML2.0建模实例(二)

2.3 BMS顺序图(需求模型)       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型):另一类用于指导设计与实现,构造系统的实现模型(设计模型).       在系统分析时,可以通过顺序图来对执行者和系统的交互过程进行建模,方便用户更好地理解系统的工作流程.对于需求模型顺序图,一般使用用户熟悉的业务语言来进行系统描述,不涉及到实现细节,一方面方便用户理解,另一方面可以指导后续类图的设计.顺序图可显示不同的业务对象如何交互,对于交流当前业务如何进行很有

再学UML-Bug管理系统UML2.0建模实例(一)

1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要.每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非所有的软件组织都知道如何有效地管理自己软件中的缺陷.在软件缺陷管理(Software Defect Management)中,软件缺陷的分类和管理非常重要,因此软件缺陷管理工具的开发和使用将在现代软件开发中发挥重要作用.本系列文章将使用UML2.0对Bug管理系统进行全程建模,该系统名为缺陷管理系统