一步步学习MQX实时操作系统(2)

上次简单介绍了MQX的一些背景和知识,今天我们来学习以IAR为开发环境,以kv4x系列控制器为平台,学习分析例程,搭建SDK+MQX开发环境。

准备工作

安装SDK软件Freescale_KSDK1.1.0_KV4xF_1.0.0.exe

可在飞思卡尔网站免费下载,这个版本的SDK已经集成支持了MQX。

安装编译环境IAR7.3(Code Warrior/Kds/Keil) 本笔记以IAR为例说明,其他开发环境类似,配置会有不同。

SDK+MQX目录结构

还是那句话,其实移植修改任何的源码包,第一件事情就是熟悉源码包目录结构,下图就是SDK安装完的源码目录结构。

boards文件夹 是管脚定义,配置。

platform文件夹是链接文件,启动代码,和SDK的源码。

Lib文件夹包含编译好的库文件。

demos文件夹是一些基于SDK的软件例程。

Filesystem文件夹是跟文件系统相关的

rtos文件夹是几个实时操作系统(MQX,uCOSII,uCOSIII等)相关的文件 这些在用到操作系统时候才会用到,如果你是基于裸机的程序可以不用考虑这个文件夹

打开rtos文件夹进入MQX文件夹就是MQX系统的源码目录结构,

Build: 所有支持的板子的不同工具的build工程

Config:配置文件

Doc: 说明文档

Lib: 库文件

Mqx:mqx源码包和例程

Mqx_nshell:shell 命令解析器文件

Mqx_stdlib:mqx标准库文件

像之前我们讲到过的基于SDK的裸机程序开发一样,在弄懂SDK结构的基础上,在来弄懂MQX源码目录结构,分析例程,在建立自己的第一个基于MQX的应用程序。

例程分析

以timer例程为例来做说明:

  1. 打开timer例程工程
  1. batch build 编译 采用batch build 编译(如何进入batch build在《基于飞思卡尔SDK的应用软件开发指南》中已经讲过,步骤类似,可参考那篇文章)。
  1. 下载程序

编译完成后如没有错误下载可执行文件到硬件飞思卡尔公司的塔式系 统板件中,打开串口调试助手,并设置为:

波特率: 115200bps

校验位:无

数据位: 8

停止位: 1

运行程序,在串口调试助手中可观察到下图

如果编译不过,要将MQX_USE_TIMER在small_ram_config.h和mqx_sdk_config.h文件中宏定义为1,因为timer是MQX的可选组件,默认是禁止的,需要用户自己配置打开,在重新编译内核文件和工程,直至编译通过。

结构分析

从工程目录结构就可以分析出,一个MQX+SDK工程需要包含哪些内容,如下图所示:

MQX库子工程,SDK库子工程和,mqx 塔式系统kv46f150workspace,以及用户自己的应用软件工程,

其中自己的应用软件工程应该包括:

BSP(boardsupport package) 板载支持包组件

配置文件群组

调试平台文件群组

SDK系统启动文件群组

用户自己的源码群组

分析完工程的构成,就得看看工程主要的几个配置:

以上的配置项都是非常重要的,关乎程序正常运行和编译。大部分配置跟在《基于飞思卡尔SDK平台的应用软件开发指南》中讲的基本类似。

今天先讲到这里,下次将以例程为模板搭建我们自己的工程,并添加外设驱动,开发应用程序。更多精彩内容,请继续关注嵌入式程序猿。

原文发布于微信公众号 - 嵌入式程序猿(InterruptISR)

原文发表时间:2015-04-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据和云计算技术

常见Linux调优命令和工具

引言: 应同学的要求,分享些基础的知识。 没有比Linux更基础了,关键问题来了,你真的认真看了和转发了吗? O(∩_∩)O哈哈~ 要实现对Linux的调优,就...

7909
来自专栏linux、Python学习

Linux吃掉了我的内存

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1755
来自专栏腾讯DevOps

SVN切换到Git方法及坑点

SVN和Git同样都是在特定时代下比较优秀的版本控制系统,但是随着时代的发展,SVN越来越不能满足多人开发的需求,尤其是在多种多样,天马星空的业务场景面前,SV...

3335
来自专栏FreeBuf

PHP代码审计实战思路浅析

对于面向过程写法的程序来说,最快的审计方法可能时直接丢seay审计系统里,但对于基于mvc模式的程序来说,你直接丢seay审计系统的话,那不是给自己找麻烦吗?

1193
来自专栏北京马哥教育

Linux内存被吃掉了,它去哪里了?

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1342
来自专栏熊二哥

快速入门系列--WCF--08扩展与新特性

最后一章将进行WCF扩展和新特性的学习,这部分内容有一定深度,有一个基本的了解即可,当需要自定义一个完整的SOA框架时,可以再进行细致的学习和实践。 ? 服务...

2127
来自专栏大神带我来搬砖

分布式数据存储系统kudu使用总结

Kudu是Cloudera开源的新型列式存储系统,专门为了对快速变化的数据进行快速的分析。 在国内,小米和神策都已经采用了kudu。 我们使用了kudu 1...

3739
来自专栏unlike

用paxos实现多副本日志系统--multi paxos部分

上篇 basic paxos : https://cloud.tencent.com/developer/article/1147420

3698
来自专栏生信宝典

测序文章数据上传找哪里

在我们发表高通量测序文章之前通常要上传测序数据到GEO数据库,现总结流程如下。 注册账户、填写MetaSheet 在NCBI GEO官网注册一个账号,然后登陆。...

2116
来自专栏FreeBuf

滥用Edge浏览器的“恶意站点警告”特性,实现地址栏欺骗

前言 在过去的几个月里,我们看到使用这种以技术支撑的骗术日益增多,用户的浏览器会被辣眼睛的红屏以及类似”你的电脑可能存在风险”的提示消息”锁定”。当然,这种情形...

2319

扫码关注云+社区

领取腾讯云代金券