如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.
分类:
2012-07-13 08:57:54
摘要:
本文讲述MSP430-169LCD上跑自带的LCD显示驱动Demo code遇到的问题,分析解决之,并附上源代码。
最近小老板给了我MSP430-169LCD板和MSP-FET430UIF调试器,让我将UCOS移植上去。我先把官方的Demo code跑通,再移植UCOS。
一、硬件环境
1.1 MSP430-169LCD概述
MSP430-169LCD是olimex公司一款基于MSP430的开发版,具有如下特性[1],外观示意图见图1:
MCU: MSP430F169 with 60K Bytes Program Flash, 256 Bytes data Flash,2K Bytes RAM
NOKIA 3310 LCD 84x48 pixels black & white
Joystick with 4 directions and push button function
SD/MMC card connector
two LEDs: status and power
RESET switch
JTAG connector
32 768 Hz oscillator crystal
8Mhz crystall oscillator
power supply voltage regulators and filtering capacitor
extension headers for all uC pins
PCB: FR-4, 1.5 mm (0,062"), soldermask, white silkscreen component print
Dimensions: 67x66 mm (2.65x2.6")
让我感到惊讶的是,官方没有提供这个版子的用户指南(也许我没找到),只给了原理图、LCD的Demo(这些可从[1]下载)。
图1 MSP430-169LCD示意图
1.2 MSP-FET430UIF调试器
MSP-FET430UIF是TI的FLASH仿真工具,这里只是简单用其作为下载器,详情参考,MSP-FET430UIF外观示意图如下:
图2 MSP-FET430UIF外观示意图
1.3 软件环境
这里选择用IAR Embedded Workbench for MSP430 5.40.3版本,将上述硬件连接好,就可以进行调试Demo code了。
二、调试运行
2.1 unnamed错误
(1) 错误
从[1]下得Demo code压缩包,解压,打开MSP430_169LCD.eww(devices和Debugger Driver已设置好),make下,会提示如下错误:
图3 unnamed错误示意图
(2) 解决
遇到这种问题,首先全局查找(Find in files, 快捷键Ctrl+Shift+F)未定义的符号,看是不是有头文件没被include进去或者有目录没被preprocessor。否则就是没定义了,本Demo恰是这种情况。
那好,现在把这些位定义就行了。通过分析可知,问题出在寄存器的每一位定义上。例如:Demo假定P3DIR的各位定义为P3DIR_0、P3DIR_1、P3DIR_2……,事实上,io430fx16x.h将P3DIR的各位定位为P0、P1、P2……,部分源代码如下:
现在就简单了,我们诸如P3DIR_0、P3DIR_1、P3DIR_2重定义到P0、P1、P2。这里,我们将其统一放在一个新文件io_redef.h,并在lcd_new.c和main.c包含这个文件。io_redef.h源代码如下:
2.2 _HEAP_SIZE未定义
(1) 问题
解决了上述问题,重新make,编译通过,但链接出错,错误提示如下:
图4 _HEAP_SIZE未定义报错
(2) 解决
透过链接的提示信息可以得知,问题出在IAR的链接控制脚本,找到该脚本(我的路径是D:\IAR Systems\Embedded Workbench 6.0 Evaluation\430\config\lnk430f169.xcl)。这里,我们将lnk430f169.xcl拷贝到该工程的文件目录MSP430_169_forweb_modify\下,再修改,我们发现_HEAP_SIZE被注释掉了,如下图,取消注释。
图5 lnk430f169链接控制脚本部分代码
最后一步,将修改过的链接控制脚本覆盖默认的脚本,具体步骤为:project-->options-->linker-->Config选项卡,示意图如下:
图6 覆盖默认链接控制脚本示意图
重新make,没问题了,可以烧进去了:-)
参考资料:
[1] MSP430-169LCD:http://www.olimex.com/dev/msp-169lcd.html
[2] 源代码 MSP430_169_forweb_modify.rar