6 LPCXpresso IDE 调试系统和技巧
6.1 调试系统
6.1.1 调试属性未使能
LPCXpresso的所有属性都是上下文相关的。如果属性被禁止了,或者一些菜单和工具栏按钮被禁止了,双击打开项目管理器中的.c文件进入。如果你正在编译库项目中的.c文件,调试特性也是被禁止的。
6.1.2 寄存器显示错误或起始调试错误
确认MCU型号是否正确。当前选择的MCU型号在LPCXpresso界面窗口下面的状态栏中显示。通过按住键盘上的“Ctrl”键并点击可以修改MCU型号。在弹出的对话框中选择正确的MCU型号。如下图所示。
6.1.3 优化 优化选项使能后,代码将会被重新排序。也即意味着冗余的C代 码行将会被重新整合。另外,初始化部分将会被放在程序最顶部,以使他们只被执行一次。这些改变会使用于调试的代码变得混乱。你会看到一些异常情况:断点只 能在第一次运行的时候有效,调试的时候程序走向指针指示的位置不正确等。最好的解决办法是:在调试的时候,优化等级设置为O0。代码优化能够使代码的大小和性能发生很大变化,用代码优化来测试你最终的产品是个很好的办法。6.1.4 显示汇编指令单击i->图标,在当前指令周围将会显示反汇编观察窗口。
6.1.5 退出调试模式并停止调试 在调试窗口中的工具栏内点击”Stop”按钮(红色方形按钮),即可终止调试并退出调试模式。6.1.6 程序下载。要想获得最好的编程和调试效果,计算机的操作系统应该是Vista 或者Windows 7,在Windows XP操作系统下,调试运行的速度明显要慢一些。但是并不影响代码的执行速度,只是软件的响应速度等变慢了。同样需要确认LPCXpresso开发板正确的直接连接到PC机上。通过hub、网关或USB分线器连接的效果不是很好。6.2 数据手册阅览器 LPCXpresso内置了一个集成网页浏览器,在项目中直接点击右下角的MCU型号,就可以查看该型号MCU的数据手册。如下图所示。6.3 代码长度6.3.1 格式输出 当优化项目大小时,如果使用格式输出,必须在项目属性对话框中将Redlib选为标准库。这个选项必须在两个位置进行设置:头文件、库。最好也要在调试目标和发布目标这两处进行设置。头文件选项在左侧的树形文件列表的C/C++ Build文件夹中。需要确认工具设置标签是否处于激活状态,并且在右侧的树形文件列表中选择MCU C Compiler下面的Target,在设置选框中选择调试或者发布目标,在C库头文件下选择Redlib,这个通常是默认设置。如下图所示。 在相同的对话框中,选择MCU Linker下面的Target选项,再次设置链接时的标准库函数为Redlib。默认设置是Redlib(semihost),语序所有I/O通过LPCXpresso控制台连接到PC。如下图所示。
在Redlib中执行格式输出是Newlib格式输出的一半大小。如果不使用浮点格式字符串的话,可以在Redlib中使用更小的格式输出库。如果要选择更小的库,在编译器( )中定义符号 。为保存更大的空间,避免使用格式输出或者任何C标准库函数功能,并且选择Redlib(none)。根据你的格式输出设置和代码,这样能节省10-20K的flash存储器。
6.3.2 优化
有话可以节省很多flash存储器空间。像设置C标准库一样在相同的对话框中进行优化设置。在“Tool Settings”标签中选择“MCU C Compiler”选项,然后在该选项下选择“Optimization(优化)”选项。高的优化水平会导致高的性能结果,但是也可能会导致代码量的大幅度增加。最好的方式是:在调试时选择-O0优化,在发布时选择更高的优化选项。可以试着选择-Os –mword –relocationss进行代码的最大优化。使用GCC的时候,还有更多可用的优化选项,请访问以下网址获得更多信息:
6.4 显示隐藏窗口 观察窗口在IDE环境中显示各种各样的信息,可以显示源代码、项目树、调试窗口等。如果你不小心关闭了其中一些窗口,可以从Window菜单中选择Showing View and Other,并从中选择打开相应窗口。将会弹出一个对话框允许你选择并显示一个窗口。如下图所示。
6.5 在新工作区创建一个‘skeleton’项目 LPCXpresso包含多种项目模板以帮助快速建立项目文件。6.5.1 创建一个新工作区 从“File”菜单中选择“Switch Workspace”,然后选择“Other…”。将会弹出一个“Workspace Launcher”对话框。输入或者选择一个新的路径,在此将这个新工作区命名为“NewWorkspace”。如下图所示。
然后单击“OK”完成创建并重新回到带有这个新工作区的LPCXpresso环境中。6.5.2 创建“Skeleton”项目在快速启动面板单击“Project and File Wizards”标签。单击“MCU project wizards”,并选择“Creat NXP Project”
在弹出的对话框中输入项目名字。将项目名字命名为“MyProject”,然后单击“Next”。 如果使用的是基于Cortex-based的部分,将会询问是否使用CMSIS。CMSIS支持Cortex控制器的软件接口标准。CMSIS定义了一个通用的访问外设寄存器和定义中断的方式。选中“Use CMSIS”复选框并单击“Next”。如下图所示。
接着弹出询问“源文件信息”选项,输入作者及版本等文本信息。
然后弹出一个选择创建编译设置对话框。选择默认设置即可。如下图所示。
最后,弹出“SelcetProcessorType”对话框。在这里选择MCU的型号。然后单击“Finish”。至此完成了一个项目的创建。本项目中MCU型号是LPC1343。如下图所示。
在编译“skeleton”项目之前,还有最后一步工作。由于在这个例子中我们选择了CMSIS,所以必须在本工作区中输入CMSIS项目。再次点击“Import Example Project”,找到“CMSIS<version/part>.zip”。将这个项目加入到工作区中,在快速启动面板里单击“Build all projects(Debug)”。
恭喜!你成功的建立了第一个项目!
LPCXpresso 目标板和LPC-LINK的原理图如下所示(略)。LPCXpresso开发板与NXP芯片引脚兼容。LPCXpresso可以使用三种供电方式:mini-USB端口供电,3.3V电压直接向板子供电,5V电源通过USB口供电。10芯mini JTAG电缆连接LPC-LINK和目标板,这个可以通过Digi-key购买。
尺寸:LPCXpresso LPC1343的外形尺寸是1.35*5.45英寸。包含两排间距为900mil的焊孔。每一排包含27个间距为100mil的焊孔。