站在巨人的肩膀上(下)

构建工程

参照demos文件夹的例程目录新建工程,打开IAR开发环境,点击Project –>Create New Project 新建工程test并保存….\test\Test\test\MyFirstSdkProject\iar\KV46F150, 最好参照demos例程的目录结构构建你自己的工程,这样结构清晰,不容易出错,即使有错误也可以参照demo例程查找原因。

在新建的工程test上点右键->option,选择device单选框,继续点右侧按钮进行厂商选择,选freescale,找到需要的芯片,完成后点击ok按钮,完成芯片选择。

复制SDK安装目录下boards文件夹,platform文件夹,lib文件夹下的内容到test工程test目录下,如果想精简你的工程,可以删除掉拷贝的目录里无用的文件,只保留跟所选择芯片相关的文件,不删除也可以,完全可以编译通过,初学者可以不用删除,待你熟悉SDK目录架构后,可自由裁剪。

添加库工程到新建的test工程,如下图所示。

为test工程添加组别方便不同工程文件的管理,在工程test上点击右键->Add->Add Group…添加source,同理添加board,startup组别。

右键单击新建的组别board->Add->Add Files, 添加test工程下boards目录下的文件,以及其他组别文件

根据SDK的编码风格,和架构修改部分代码以适应硬件平台,因为是裸机程序,所以在test工程中以内核24位定时器提供1ms tick作为系统的时基, LED以1s的周期闪烁。

  • 修改系统时钟,SDK默认的系统时钟是148M,可根据芯片datasheet时钟章节修改系统时钟,主要是对system_MKV46F15.h文件的修改配置以,适合自己的时钟,初学者建议保留默认配置。
  • 修改board组别中的文件完成硬件配置,这个组别中的文件都是与系统硬件相关,在test工程中主要是完成LED 管脚的配置和映射,修改hardware_init函数完成硬件初始化。
  • 编码main.c文件,添加hardware 定时器的回调函数,为系统提供时基,调用IO驱动函数GPIO_DRV_TogglePinOutput 驱动LED 闪烁。

参考以下图片配置工程,根据自己的下载器选择适合自己的,本人使用的是Multilink,所以driver 要选PEmicro

采用批处理编译: project->batch build, 为工程test添加batch build 名字,点击make 或者Rebuild all

完成编译无错误后,下载程序到硬件板件运行,验证基于SDK的应用软件开发是否工作正常,对于test工程观察LED灯以1s的周期进行闪烁。进行在线下载运行,或者下载程序project->download->downloadfile找到test.out文件下载到板件中运行, 如下图所示。

程序下载完成后,重新上电,观察到LED灯以1s的周期进行闪烁,与设计目标吻合,完成基于SDK的应用软件开发,为后续利用SDK开发应用程序提供了很好的移植基础。

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

【新书连载】一波三折:释放内存导致数据库崩溃

编辑说明:《Oracle性能优化与诊断案例精选》出版以来,收到很多读者的来信和评论,我们会通过连载的形式将书中内容公布出来,希望书中内容能够帮助到更多的读者朋友...

39880
来自专栏源码之家

DEDE整站动态化或整站静态(伪静态)设置方法

21340
来自专栏容器云生态

linux系统性能分析对策

解决系统性能问题的一般思路 下面从影响操作系统性能的因素、性能优化工具、系统性能评价标准三个方面介绍优化Linux的一般思路和方法。 影响Linux性能的...

34290
来自专栏一名合格java开发的自我修养

一句话说清分布式锁,进程锁,线程锁

 在分布式集群系统的开发中,线程锁往往并不能支持全部场景的使用,必须引入新的技术方案分布式锁。

14920
来自专栏FreeBuf

Java代码审计丨某开源系统源码审计

java源代码审计相关资料一直比较少,今天抽空给大家写一篇简单的开源代码审计,这是个做公司网站的开源模板,由于项目比较小,本次就针对几个比较严重的漏洞讲解一下发...

16730
来自专栏deepcc

ajax 请求中多出现一次OPTIONS请求及其解决办法

W3C规范!在跨域请求中,分为简单请求(get和部分post,post时content-type属于application/x-www-form-urlenco...

54240
来自专栏Django Scrapy

文件系统格式各有哪些优点和缺点?

1、什么是NTFS-新(N)技术(T)文件(F)系统(S)? 想要了解NTFS,我们首先应该认识一下FAT。FAT(File Allocation Table)...

346110
来自专栏java学习

针对java初学者以及自学者的一篇入门教程

Java基础 | 数据库 | Android | 学习视频 | 学习资料下载 最新通知 按照我去培训机构的学习经历,给初学还有自学Java 的同学一个基本的学习...

44390
来自专栏互联网杂技

为何webpack风靡全球?三大主流模块打包工具对比

前端的模块系统经历了长久的演变,对应的模块打包方案也几经变迁。从最初简单的文件合并,到AMD 的模块具名化并合并,再到browserify将CommonJS 模...

39780
来自专栏张戈的专栏

Linux系统内存监控、性能诊断工具vmstat命令详解

最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。 看...

38650

扫码关注云+社区

领取腾讯云代金券