打印

M4/M3 StellarisWare图形库(Grlib)入门系列(二)——编译环境搭建

[复制链接]
5161|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
TI_MCU|  楼主 | 2011-11-2 10:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 TI_MCU 于 2011-11-2 11:32 编辑

3.StellarisWare图形库基本使用
3.1.开发环境及StellarisWare安装
本文以IAR Embedded Workbench v6.2 (ARM)为开发环境,以TI Stellaris LMS9B96开发板为基础,介绍StellarisWare图形库的用法。

要使用StellarisWare图形库,StellarisWare软件包当然必不可少。在TI官网免费可以下载到这个软件包。

安装StellarisWare后,进入安装路径,在grlib目录下可以找到StellarisWare图形库相关内容。Grlib根目录下包含了图形库的源代码,而诸如ccs、ewarm这些目录包含了针对不同IDE的库文件。


3.2.图形库添加与编译 (显示部分)
为了比较详细地说明用法,我们完全手动建立项目,实际项目时可以从StellarisWare/boards/dk-lm3s9b96/hello示例开始以节约时间。首先介绍的是显示部分的设置,触摸功能将放在下一章。

3.2.1.建立新项目
在IAR中新建项目Stellaris_Demo,设置项目Device为TexasInstruments LM3SxBxx。在项目中加入Stellaris_Demo.c,写一个空的main函数。同时也别忘记加入启动代码startup_ewarm.c (该文件可以在StellarisWare/boards/dk-lm3s9b96/hello中的应用中找到,_ewarm表示该启动代码为针对IAR的)。

新项目中只有默认的中断函数处理程序(定义在startup_ewarm.c中),尝试编译通过,进入下一步。

3.2.2.添加图形库
首先在项目中添加StellarisWare驱动库和图形库。分别在StellarisWare/driverlib和StellarisWare/grlib下面,找属于ewarm的已编译好的库。因为是在M3平台上的,所以用-cm3版本。-cm4f是为LM4F系列准备的,如果是在LM4F平台使用,只需要使用LM4F的库而代码没有变化。


打开程序设置,在C/C++ Compiler中Preprocessor选项卡下Additional include directories添加C:\StellarisWare (StellarisWare的安装路径)。如果使用了LM3S9B96开发板,需要再添加C:\StellarisWare\dk-lm3s9b96。

由于使用IAR作为开发环境,需要在Defined symbols中加入ewarm (小写)定义。TARGET_IS_TEMPEST_RB1是set_pinout需要的,用以区别器件版本。



在Stellaris_Demo.c中加入驱动库和图形库的引用,如下所示:
 
#include "inc/hw_types.h"
#include "driverlib/sysctl.h"
#include "grlib/grlib.h"

int main(void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN);

    while(1);
}

除了图形库和驱动库,还需要有相应硬件的驱动程序。LM3S9B96开发板的驱动程序可以在StellarisWare/boards/drivers找到源代码。将set_pinout.c以及kitronix320x240x16_ssd2119_8bit.c两个驱动加入项目。要说明的是,这里的set_pinout.c只是用于初始化LM3S9B96开发板的外围功能,可以理解为只是显示驱动程序的一部分。




在Stellaris_Demo.c中再加入驱动的引用。

#include "drivers/kitronix320x240x16_ssd2119_8bit.h"
#include "drivers/set_pinout.h"

至此,StellarisWare图形库以及相应驱动已经引入项目。接下来都是代码工作,需要对硬件、图形库进行初始化。

3.2.3.驱动程序初始化
使用以下代码进行显示驱动的初始化:


// 初始化显示驱动
PinoutSet();
Kitronix320x240x16_SSD2119Init();


3.3.图形库添加与编译 (触摸部分)
如果需要触摸功能,则需添加触摸驱动程序及触摸事件处理。否则该节可以跳过。

在3.2节的基础上,在项目中添加触摸屏的驱动程序,若使用了LM3S9B96开发板,就是touch.c 文件(在StellarisWarae/boards/dk-lm3s9b96/drivers目录下)。LM3S9B96的触摸屏驱动使用了ADC Sequence 3中断,所以还需要在startup_ewarm.c的中断向量中添加TouchScreenIntHandler作为中断处理函数。

由于Touch功能往往和控件功能相关,若需要图形库来处理控件事件,还需要在触摸事件发生时调用StellarisWare图形库的事件处理函数。这部分将在后文控件使用章节中介绍。

相关帖子

沙发
tianm| | 2011-11-2 12:41 | 只看该作者
这个好 对初学的朋友 很有帮助

使用特权

评论回复
板凳
liaowei230509| | 2011-11-2 14:15 | 只看该作者
TI的这个图形库基本上是**肋,控件库太少了。而且奇怪的是,经过这么久的升级后,还是那几个控件,感觉TI根本就没重视它

使用特权

评论回复
地板
TI_MCU|  楼主 | 2011-11-2 14:36 | 只看该作者
3# liaowei230509


个人觉得做嵌入式够用就好,这个一般应用足够了,M3/M4毕竟不比A8 A9,贪大求全反而可能影响性能。而且是免费的~实际中也有很多企业在用

使用特权

评论回复
5
永远的不知| | 2011-11-2 16:39 | 只看该作者
3# liaowei230509

现在升级了多语言支持。

使用特权

评论回复
6
kakio| | 2011-11-3 07:06 | 只看该作者
不愧为酷贴啊

使用特权

评论回复
7
kakio| | 2011-11-3 07:06 | 只看该作者

使用特权

评论回复
8
teet| | 2011-11-3 07:19 | 只看该作者
StellarisWare图形库基本使用
真是经典啊

使用特权

评论回复
9
teet| | 2011-11-3 07:20 | 只看该作者
再次谢谢楼主分享

使用特权

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

本版积分规则

0

主题

420

帖子

7

粉丝