本帖最后由 jerrylwb 于 2014-8-20 15:37 编辑
要很好的玩转一块开发板首先要有合适的开发平台,目前用于调试LPC1500开发板的编译主要有LPCxpresso、keil和IAR 。LPCxpresso作为官方推荐的开发环境自然不必说,keil和IAR作为第三方开发工具也具有兼容能力强、使用方便稳定的特点,也是非常强大的编译开发环境。由于我不喜欢装过多的开发平台,一直在使用IAR作为编译器,相对要熟悉一些,因此也尝试用IAR来试用LPC1500。没有用过IAR的朋友也可以跟着我的步骤来做。
首先也是下载官方的软件例程,本人下载的是2.08C版本的软件库。大概的目录如下图:
解压软件后打开IAR例程目录:\lpcopen_2_08c_keil_iar_nxp_lpcxpresso_1549\applications\lpc15xx\iar_ewarm_projects\nxp_lpcxpresso_1549,可以看到里面共有4个IAR的工程文件(eww后缀的文件就是IAR的工程文件)。分别是all-example、freertos、periph和usbd_rom,如下图:
也许有人嫌4个例程太少,刚开始我也是这么想的,接下来准备打开“all_example”这个工程。
首先打开IAR for ARM 6.7版本(本实验用的都是该版本,后续略)。
选择菜单“File”-“Open”-"workspace",找到all-example,选择“打开”。
之后工程顺利的被打开了,没有遇到任何的错误提示。打开之后,可以看到左侧有大量的工程文件目录,如下图:
仔细一看才知道,这个工程包含了所有例程包括其它的三个工程例子,可谓是一个大工程包揽万千,不能不赞一下IAR的工程分类,既简洁又方便。闲话少说,来看看左侧的名称最开始以“lib”开头的两个工程,这是两个库文件。从两个工程的名称上很容易猜到第一个“lib_lpc_chip_15xx”是跟15系列的处理器相关的外设源代码,下面的CSP目录包括了所有的外设源代码。这些源代码应该对所有的15系列的处理器都是一样的。另外一个lib文件是“lib_lpc_board_nxp_lpcxpresso_1549”,这是跟本次开发板相关的库文件,其实里面就包含2个C文件,用来设置板上的时钟、功能复用、调试串口和LED灯功能。
我们首先要编译这两个库文件,以生成我们需要的库,这两个库后续会被其它的例程调用。在库文件的名称上单击右键,在弹出的菜单中选择“rebuild all”,下面的“message”信息框会显示编译过程,大概5秒钟的时间,编译完成,很顺利,没有错误。
另外一个库文件也类似操作完成,可以看到生成了两个库文件:chip_15xx_lib.a和board_nxp_lpcxpresso_1549.a
编译完库文件之后,我们就要找个实例来做试验了,找到“periph_blinky”开头的工程,打开工程下的"systick.c"文件,这里有我们关心的main函数和一个SysTick_Handler(void)函数,SysTick_Handler是系统滴答中断服务函数,系统滴答计时器在main函数中设置,每次计时时间到,就翻转LED0和LED1。
这里不对代码做详细分析,在该工程名称上右键“rebuild all”,在“output”中找到“periph_blinky.bin”文件。这就是我们的固件了。
接下来就要把固件下载到开发板上,理论上IAR是支持直接下载的,不过我在测试过程使用“CMSIS DAP”下载出错,我想可能要配置板载的LPClink。不过不要紧,我们可以使用mbed的方式下载,具体参考本版的《LPC1500体验+mbed开发环境的入门》
https://bbs.eeworld.com.cn/thread-441313-1-1.html,也可以直接访问mbed的官网:
https://mbed.org/teams/NXP/wiki/Updating-LPCXpresso-firmware
将程序下载到开发板之后,可以看到开发板上的彩灯闪烁,有没有似曾相识的感觉,原来我们最初拿到的开发板里面就是这个例程。。汗,貌似还在原地踏步。不过至少我们现在知道如何去改变彩灯的闪烁时间了。