海同教育-嵌入式培训专家 ARM开发培训班实验指导V1.0
1.2.1创建一个工程
μVision是一个标准的窗口应用程序,可以点击程序按钮开始运行。为了创建一个新的μVision工程必须作如下处理:
选择工具集 ? 创建工程文件 ? 选择设备
?
1.2.1.1选择工具集
μVision可以使用ARM RealView编译工具、 ARM ADS编译器、GNU GCC编译器和Keil C ARM编译器。当使用GNU GCC编译器或ARM ADS编译器时必须另外安装它们编译集。实际使用的工具集可以在μVision IDE的Project – Manage- Components, Environment, and Books对话框的Folders/Extensions页(见下图)中选择。
图1.5 选择工具集
?
Use RealView Compiler复选框表示本工程使用ARM开发工具。RealView Folder文本框指定开发工具的路径。
6
海同教育-嵌入式培训专家 ARM开发培训班实验指导V1.0
下面的例子显示了各种版本的ARM ADS/RealView 开发工具的路径:
a) μVision的RealView编译器: BIN31\\
b) ADS V1.2: C:\\Program Files\\ARM\\ADSv1_2\\Bin c) RealView评估版2.1: C:\\Program
Files\\ARM\\RVCT\\Programs\\2.1\\350\\eval2-sc\\win_32-pentium
?
Use Keil CARM Compiler复选框表示本工程使用Keil CARM编译器、Keil AARM汇编器和Keil LARM链接器/装载器。
?
Use GNU Compiler复选框表示本工程使用GNU开发工具。Cygnus Folder文本框指定GNU的安装路径。GNU-Tool-Prefix文本框指定不同的GNU工具链。下面是各种GNU版本的例子:
a) 带uclib的GNU V3.22: GNU-Tool-Prefix: arm-uclibc- Cygnus Folder: C:\\Cygnus
b) 带标准库的GNUARM V4: GNU-Tool-Prefix: arm-elf- Cygnus Folder:
C:\\Program Files\\GNUARM\\
?
Keil根目录的设置是基于μVision/ARM开发工具的安装目录的。对于Keil ARM 工具来说,工具组件的路径是在开发工具目录中配置的
1.2.1.2创建工程文件
单击Project ->New...->μVision Project菜单项,μVision 3将打开一个标准对话框,输入希望新建工程的名字即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。例如,这里先建立一个新的文件夹,然后选择这个文件夹作为新建工程的目录,输入新建工程的名字Project1,μVision将会创建一个以Project1.UV2为名字的新工程文件,它包含了一个缺省的目标(target)和文件组名。这些内容在Project Workspace->Files中可以看到。
1.2.1.3 选择设备
在创建一个新的工程时,μVision要求为这个工程选择一款CPU。选择设备对话框显示了μVision的设备数据库,只需要选择用户所需的微控制器即可。例如,选择 Philips LPC2106微控制器,这个选择设置了LPC2106设备的必要工具选项、简化了工具的配置。
7
海同教育-嵌入式培训专家 ARM开发培训班实验指导V1.0
图1.6 选择设备
注意:
当创建一个新的工程时,μVision会自动为所选择的CPU添加合适的启动代码。 ? 对于一些设备而言,μVision需要用户手动地输入额外的参数。请仔细阅读这个
对话框右边的信息,因为它可能包含所选设备的额外配置要求。
?
创建源文件以后,就可以将这个文件添加到工程中。μVision提供了几种方法将源文件添加到工程中。例如, 在Project Workspace ->Files页的文件组上点击鼠标右键,然后在弹出的菜单中选择Add Files菜单项,这时将打开标准的文件对话框,选择我们创建的asm或c文件即完成源文件的添加。
1.2.2 编译、链接工程
1.2.2.1 设置目标硬件的工具选项
μVision可以设置目标硬件的选项。通过工具栏按钮或Project - Options for Target菜单项打开Options for Target对话框,在 Target页中设置目标硬件及所选CPU片上组件的参数。下图是LPC2106的一些参数设置。
8
海同教育-嵌入式培训专家 ARM开发培训班实验指导V1.0
图1.7 设置目标硬件
下表描述了Target对话框的选项:
描述
设备的晶振(XTAL)频率。大多数基于ARM的微控制器都使用片上PLL
Xtal 产生CPU时钟。所以,一般情况下CPU的时钟与XTAL的频率是不同
的。
Read/Only Memory
配置片内、片外的ROM区地址以及大小
Area
Read/Write
指定目标硬件的片内和片外的RAM区地址以及大小
Memory Areas
Code Generation 编译产生ARM code 还是Thumb code
对话框项
1.2.2.2 增加链接控制文件
对于GNU和ARM ADS/RealView工具链来说,链接器的配置是通过链接器控制文件实现的。这个文件指定了ARM目标硬件的存储配置。预配置的链接器控制文件 在文件夹..\\ARM\\GNU或..\\ARM\\ADS中。 为了与目标硬件相匹配,用户可能会修改链接器控制文件,所以工程中的那个文件是预配置的连接控制文件的一个副本。这个文件可以通过Project - Options for Target对话框的Linker页添加到工程中。
9
海同教育-嵌入式培训专家 ARM开发培训班实验指导V1.0
图1.8 设置linker选项
对于复杂的memory layout分配方式,应该采用scatter file, 对于简单的工程,直接指定R/O和R/W的基地址即可。
1.2.2.3 编译链接
一般来说,在新建一个应用程序的时候Options ->Target页中的所有的工具和属性都要配置。单击Build Target工具栏按钮将编译所有的源文件,链接应用程序。当编译有语法错误的应用程序时,μVision将在Output Window ->Build窗口中显示错误和警告信息。单击这些信息行,μVision将会定位到相应的源代码处。
图1.9 编译结果
10