收藏 分享(赏)

Keil+uVision4+中文教程(文档).pdf

上传人:HR专家 文档编号:6298116 上传时间:2019-04-05 格式:PDF 页数:1472 大小:11.21MB
下载 相关 举报
Keil+uVision4+中文教程(文档).pdf_第1页
第1页 / 共1472页
Keil+uVision4+中文教程(文档).pdf_第2页
第2页 / 共1472页
Keil+uVision4+中文教程(文档).pdf_第3页
第3页 / 共1472页
Keil+uVision4+中文教程(文档).pdf_第4页
第4页 / 共1472页
Keil+uVision4+中文教程(文档).pdf_第5页
第5页 / 共1472页
点击查看更多>>
资源描述

1、Keil公司开发的 ARM开发工具 MDK( Microcontroller Development Kit),是用来开发基于 ARM核的系列微控制器的嵌入式应用 程序。它适合不同层次的开发者使用,包括专业的应用程序开发工程 师和嵌入式软件开发的入门者。 MDK包含了工业标准的 Keil C编译器、宏汇编器、调试器、 实时内核等组件,支持所有基于 ARM的设备,能帮助工程师按照计划完成项目。 Keil ARM开发工具集集成了很多有用的工具 ,如下图所示,正确的使用它们,可以有助于快速完成项目开发。 注意 u Vision IDE集成开发环境和 Vision Debugger调试器可以创建和测试

2、应用程序,可以用 GNU ARM ADS或者 RealView的编译器来编译这些应用程序; u MDK-ARM是 PK-ARM的一个超集; u AARM汇编器、 CARM C编译器、 LARM连接器和 OHARM目标文件到十六进制的转换器仅包含在 MDK-ARM开发工具集中。 除了上表所列工具外, Keil 还提供以下工具: ARM 开发工具集 Part NumberComponentsMDK-ARM2,3DB-ARMVision IDERealView C/C+ Compiler RealView Macro Assembler RealView Utilities RTL-ARM Real

3、-Time Library Vision DebuggerGNU GCC1Page 1 of 2ARM Development Tools2009-2-25mk:MSITStore:M:KeilARMHlparmtools.chm:/armtools.htm ULINK USB-JTAG Adapter 用于通过 JTAG调试和烧写程序。 MCB2100 Evaluation Boards 用于测试基于 Philips LPC2100系列设备的应用程序。 MCB2103 Evaluation Boards用于测试基于 Philips LPC2103系列设备的应用程序。 MCB2130 Eval

4、uation Boards 用于测试基于 Philips LPC2130系列设备的应用程序。 MCB2140 Evaluation Boards 用于测试基于 Philips LPC2140系列设备的应用程序。 MCB2300 Evaluation Boards 用于测试基于 Philips LPCLPC2300系列设备的应用程序。 MCBSTM32 Evaluation Boards用于测试基于 STMicroelectronics STM32 系列设备的应用程序。 MCBSTR7 Evaluation Boards 用于测试基于 STMicroelectronics STR7系列设备的应用

5、程序。 MCBSTR730 Evaluation Boards 用于测试基于 STMicroelectronics STR730系列设备的应用程序。 MCBSTR9 Evaluation Boards 用于测试基于 STMicroelectronics STR9系列设备的应用程序。 RTL-ARM Real-Time Library 用于建立实时库。 RTL-ARM 包含用于嵌入式应用开发的 Flash文件系统、 TCP/IP协议栈。 Copyright (c) Keil - An ARM Company. All rights reserved.Page 2 of 2ARM Developm

6、ent Tools2009-2-25mk:MSITStore:M:KeilARMHlparmtools.chm:/armtools.htm本用户指南提供了有关 RealView编译工具的说明,它是 RealView 微控制器开发工具集的一部分。本指南包括如下小节: 介 绍 部分对 RealView编译工具进行了概述。 嵌入式程序 给出了创建面向微控制器的应用程序所需的内容。 从 CARM移植 部分说明了如何将 Keil CARM下的程序移植到 RealView下。 修订历史 2006.6: 第一版 . 2007.7: 添加了 non-volatile memory, at attribute,

7、和 multiple memory regions。 Copyright (c) Keil - An ARM Company. All rights reserved. 介绍 此用户指南是 RealView微控制器开发工具集的一部分,它介绍了如何使用 RealView编译工具创建高效的 嵌入式程序 。对以前使用过 Keil CARM编译器的用户来说,它介绍如何 将 CARM应 用程序移植 到 RealView编译工具下。 RealView编译工具是 ARM公司 15年来深入研发的结果。 RealView微控制器开发集 (RealView Microcontroller Development

8、Kit) 涵盖了如下 RealView编译工具组件。在 Vision中的 Project Workspace - Books页中可以看到有关这些产品的详细的 PDF手册。 RealView编译工具被工业界认为是最能够充分发挥基于 ARM体系结构处理器性能的编译器。编译器能生成更小的代码映像,可帮助设计人员开发最紧凑的代码,这将大大降低产品成本。该编译器能够生成面向 32-bit ARM 和 16-bit Thumb指令集的代码,并支持完全 ISO标准的 C和 C+。 RealView 编译工具在减少程序代码和提高执行速度两个方面同时进行了优化。下图显示了在过去 7年内这两方面的改进。 基于 V

9、ision的 RealView编译工具概述 RealView 编译工具产品 用户手册 C/C+ 编译器 RV 编译器和库 (RV_CC.PDF)C/C+运行时库 RV 编译器和库 (RV_CC.PDF)RogueWave C+ 标准模板库 RV 编译器和库 (RV_CC.PDF)Macro Assembler(宏汇编器) RV 汇编器 (RV_ASM.PDF)Linker/Locater(链接器 /定位器) RV 链接器 /工具 (RV_Link.PDF)Library Manager (库管理 ) RV 链接器 /工具 (RV_Link.PDF)HEX File Creator (十六进制文

10、件生成器 ) RV 链接器 /工具 (RV_Link.PDF)Page 1 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.RealView微控制器开发工具集有评估版( Evaluation Version)和完整版( Full Version)两个版本可用。其中评估版的限制如下 : 产生的应用程序 ROM映像的大小被限制在 16KB内。 链接器不能使用分散加载文件( scatter-loading description

11、 files)以进行复杂的存储设计。 代码 /常量的基地址被限制为 0xXX000000、 0xXX800000或 0x00080000,其中 XX为 00, 01, ., FF。因此,存储的开始地址必须类似为 0x00000000、 0x12800000等。 不可能产生位置独立的代码或数据。 汇编器不产生列表文件。 不能将此评估版用作商业目的。 嵌入式程序 使用 RealView微控制器开发工具集编写嵌入式程序是相对容易的,本节将介绍嵌入式应用开发所需完成的工作: 启动 代 码 (Startup Code)是在应用程序的 main函数被调用前进行一些初始化工作。此外 ,它还为内存分配函数定义

12、的栈空间及内存堆。 Retarget库 文件 为硬件的 I/O口配置 C运行时库。 链 接器配置( Linker Configuration) 定义的目标硬件的存储映像。 Vision可以自动生成工程所需的链接配置文件。 此外,还要做如下几个指定的工作: 定位程序代码、常量或变量到 指定的存 储 区 。 中 断 服 务 程序 可在直接使用 _irq 关键字用 C语言来写。启动代码中包含了所需的中断微量的重定位。对一些设备和 FIQ中断,需对启动代码进行调整。 向应用程序中添加 软 件中 断 处 理 (Software Interrupt Handler) ,它是应用程序中 SWI函数的入口地址

13、。 定位变量到 绝对 地址 。 使用 non-vlatile存 储 区 。 Page 2 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.RealView 微控制器开发工具集针对不同的硬件平台提供了几个启动代码文件及例程,可以在如下几个文件夹下后到这些文件: 启动代码( startup code) 启动代码用于初始化 CPU以与硬件设计的配置相匹配,参阅 开 始使用 ARM开发 工具集用 户 指南 , CPU启动 代 码

14、可以获取有关启动代码完成任务的详细信息。 不同系列的设备有不同的启动代码。文件夹 ARMStartup 包含了基于 RealView编译工具的一些启动代码,它被配置成适用于不同的硬件平台。当创建一个新的工程时,启动代码被自动地拷贝到用于配置文件的工程文件夹下。 大多数启动文件为设备配置提供了符号定义,可以在 Vision的 Project - Options - Asm - Define下键入这些符号。 下面是常用的选项: REMAP: 在某些设备上执行存储映射。 EXTMEM_MODE: 配置为从片外 Flash ROM执行代码。 RAM_MODE: 配置为从 RAM执行代码。 RAM_IN

15、TVEC: 执行重映射并拷贝中断向量。 有关变量 SET符号的详细说明及相关配置选项在启动代码文件中提供。 对由 Vision自动生成的链接器配置来说,要求启动代码本身位于 Reset段内,且中断向量表位于标号 Reset_Handler (代表 CPU重启地址 )处。 例子 : : : AREA Reset, CODE, READONLY : : EXPORT Reset_Handler Reset_Handler ; CPU Reset Handler (executed after CPU Interrupt) 注意 文件夹 ARMStartup 下的所有启动代码都是按此方法配置。 Re

16、target库文件 RealView微控制器开发工具集带有一个预定义的 retarget库文件,它是许多例程的一部分。 retarget文件修改了底层的 I/O 程序,并禁止了 semi-hosting SWI 中断的使用。 文件夹 内容 C:KEILARMStartup 基于 RealView编译工具的启动代码文件 .C:KEILARMExamples 基于 RealView编译工具的通用例程 .C:KEILARMBoards 基于 RealView编译工具的板级例程 .Page 3 of 9GSARM: Getting Started Users Guide2009-2-25file:/C

17、:Documents and SettingsAdministratorLocal SettingsTemphh.在 ARMStartup 文件夹下提供了 RETARGET.C模板文件,此模板文件实现了所需的字符 I/O函数的功能如 printf和 scanf。 /*/ /* RETARGET.C: Retarget layer for target-dependent low level functions */ /*/ #include #include #include #pragma import(_use_no_semihosting_swi) / disable semihosti

18、ng #include / device specific header file /* Send a character via a UART channel */ int sendchar (int ch) / implementation depends on the microcontroller hardware if (ch = n) while (!(U1LSR U1THR = CR; /* output CR */ while (!(U1LSR return (U1THR = ch); /* Get a character via a UART channel */ int g

19、etkey (void) / implementation depends on the microcontroller hardware while (!(U1LSR return (U1RBR); struct _FILE int handle; /* Add whatever you need here */ ; FILE _stdout; FILE _stdin; / simplified fputc version that only redirects STDOUT int fputc(int ch, FILE *f) / redirect STDOUT return (sendc

20、har(ch); / simplified fgetc version that only redirects STDIN int fgetc(FILE *f) / redirect STDIN return (sendchar(getkey(); int ferror(FILE *f) /* Your implementation of ferror */ return EOF; void _ttywrch(int ch) sendchar (ch); Page 4 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Document

21、s and SettingsAdministratorLocal SettingsTemphh.void _sys_exit(int return_code) while (1); /* endless loop */ 注意: 更多有关 retarge库文件的知识在 RV Compiler and Library Users Guide, The C and C+ Libraries, Tailoring the C library to a new execution environment下提供。 链接器配置 使用 Project - Options for Target - Target

22、 对话框可以指定嵌入式系统的所有可用的存储域。当使能 Project - Options for Target - Linker下的 Use Memory Layout from Target Dialog时,Vision会自动生成 分散加载描述文件( scatter-loading description files ) 。 使能存储器为 Read/Only 和 Read/Write,它作为应用中的默认存储域。只要不用 Options - Properties对话框把源文件或组分配到 指定的存 储 域 ,默认存储域将用于存储应用程序。 用于选择存储启动代码的存储域。这将意味着此存储空间存储了

23、重启 (reset)和中断向量表,链接器会在启动阶段(在进入主程序以前)把所有启动代码分配到此存储域内。 NoInit 复选框用于对某存储域禁止 0初始化。需要注意的是在 C源程序中仍然需要 0(zero_init) 初始化。相关解释见 禁止零初始化 。 注意: 默认的 read/only存储域用于存储程序的初始化数据及 分配到 RAM中的程序代 码 和常量 。 RealView微控制器开发集的评估板不支持分散加载描述文件。 有关分散加载描述文件请参阅 RV Linker and Utilities Users Guide, Using Scatter-loading Page 5 of 9G

24、SARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.Description Files。 分散加载描述文件以 target_name.SCT文件名存储在目标文件夹下 (Object File folder)。可以对其进行编辑,在 Project - Options for Target - Linker对话框下,禁止 Use Memory Layout from Target Dialog 并在 Scatter File下键入所需文件。

25、 散列载入描述文件例子 ; * ; * Scatter-Loading Description File generated by uVision * ; * LR_ROM1 0x01000000 0x00010000 ; load region ER_ROM1 0x01000000 ; load address = execution address *.o (RESET, +First) * (+RO) RW_IRAM1 0x00000020 0x00001FE0 ; RW data * (+RW +ZI) 指定存储域 在 Project Workspace下使用快捷键可在打开 Optio

26、ns - Properties对话框,在此对话框中可以为源文件或组指定存储域。 在 Options - Properties 对话框下可以将 Code / Const, Zero Initialized Data,和 Other Data 分配到在Project - Options for Target - Target对话框中定义的各种存储域中 。 注意: 当 RAM 被用作 Code / Const 时 , _main 初始化会将程序代码和常量拷贝到此 RAM区并执行。映像文件存储在 Project - Options for Target - Target对话框中指定的默认存储域内。 这

27、样的设置用于为链接器产生分散加载文件。如果禁止 Project - Options for Target - Linker, 此设置会被忽略。 此特性在 RealView微控制器开发工具集的评估版下不可用。 中断服务程序 Page 6 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.不同的 ARM微控制器有不同的中断优先级和中断系统。参考 开 始使用 ARM开发 工具集用 户 指南 , 中 断 ,可了解各种中断相关概念。

28、RealView编译器提供关键字 _irq 以定义标准的 (irq)和 (fiq)中断函数。 例子 : _irq void IRQ_Handler (void) /* the interrupt code */ 对没有向量中断处理或 FIQ中断函数的微控制器,需要按要求改变 CPU的启动代码。 例子 : 下面的 C代码实现了一个空的 FIQ_Handler: _irq void FIQ_Handler (void) ; 在启动代码中,要进行如下修改以调用 FIQ_Handler: Vectors LDR PC, Reset_Addr : LDR PC, FIQ_Addr ; Instructi

29、on at FIQ Vector location : PRESERVE8 ; tell linker: stack alignment is 8-byteIMPORT FIQ_Handler ; use external FIQ_Handler FIQ_Addr DCD FIQ_Handler ; FIQ Entry point 软件中断管理 软件中断 (SWI) 函数用于产生原子代码序列,此代码序列被保护,不会响应 IQR中断而执行。参阅支持知识库文件,可以获得更多有关 原子 执 行序列 信息。 使用 RealView编译工具可以很容易地创建 SWI函数。在文件夹 ARMExamplesS

30、WI下提供了一个SWI的例子。 C中的 SWI函数的定义如下: int _swi(0) add (int i1, int i2); / function prototype for calling from C int _SWI_0 (int i1, int i2) / function implementation return (i1 + i2); SWI.S 定义了一个软件中断管理。在此文件下面的表中包含了应用程序 SWI函数的入口。 : IMPORT _SWI_0 IMPORT _SWI_1 IMPORT _SWI_2 IMPORT _SWI_3 SWI_Table DCD _SWI_

31、0 ; SWI 0 Function Entry DCD _SWI_1 ; SWI 1 Function Entry DCD _SWI_2 ; SWI 2 Function Entry Page 7 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.DCD _SWI_3 ; SWI 3 Function Entry : 定位变量到指定的位置 使用定义在头文件 absacc.h中的 _at 宏,可以将变量以如下方式定位到绝对地

32、址处: C 例子 : #include const char MyText _at (0x1F00) = “TEXT AT ADDRESS 0x1F00“; int x _at (0x40003000); / variable at address 0x40003000 汇编例子 : 在汇编文件中可以使用段名,由 |.ARM._AT_|组成来定义位置。下面的例子是将一个段定义到地址 0xFFE0处: AREA |.ARM._AT_0xFFE0|, CODE, READONLY 禁止 0初始化 带有非易失( non-volatile)存储器的嵌入式系统在启动时会要求变量被初始化为 0。 使用 N

33、oInit 可以定义一个存储域为非易失( non-volatile)的。 此外,还需要在 C代码中用 zero_init属性定义变量,如下所示: _attribute_(zero_init) int i; 当存在几个混合的初始化 Read/Write存储域,需要将使用非易失的模块分配到 NoInit存储域。需要在对话框 Options - Properties 下 Zero Initialized Data中选择正确的存储域。详情请参阅 指定存 储区 域 。 注意: 此特性在 RealView微控制器开发工具集的评估版下不可用。 Page 8 of 9GSARM: Getting Starte

34、d Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.从 CARM移植 本节介绍如何将应用程序从 Keil CARM编译器移植到 RealView编译工具下。 将程序从 Keil CARM编译器移植到 RealView编译工具下所需的步骤如下: 1. 在 Project - Components, Environment, and Books - Folder/Extensions下 选择 RealView编译 器。 2. 替 换 并 配置 启动 代 码 。支持不同微控制器的预

35、配置启动代码在文件夹 ARMStartup下。 3. 使用 printf或 scanf检查应用是否使用了控制 I/O函数。若使用的话需要 添加一 个 库 文件 retarget。 4. 配置目 标 硬件的存 储 布局 。 现在可以简单地重新编译应用代码,在编译应用代码时可能遇到下面的情况: RealView编译工具通常趋向于使用更多的栈,这就需要增加应用中的栈空间。 调 整 应 用中的 软 件中 断 函 数 (SWI)。 组合同一个源模块中在 RAM中执行的函数,并 利用 Options - Properties对话 框 把代码 /常量分配到 RAM中。 内嵌汇编函数的语法不同。 使用关键字

36、_at 需要包含头文件 absacc.h。 pragma NOINIT 需要被替换,如 禁止零始化 所述。 Page 9 of 9GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh.感谢您选择了 Keil公司的微控制器软件开发工具。使用这个工具可以创建 ARM、 XC16x、 C16x、 ST10、 251及 8051等微控制器的嵌入式应用程序,详细的设备信息请参考 设备 数 据 库 。 Keil公司将不断地添加新的设备和片上外设的的

37、仿真支持,因此,如果本地设备数据库不包含用户打算使用的设备,请检查一下网络 设备 数 据 库 。 这个用户手册提供了 Keil ARM开发工具的概述。包括如下的章节: 简 介 给出来了开发工具的概述、讨论了文件结构。 开发 工具 描述了包括 Vision IDE/调试器的 Keil ARM开发工具的主要特性。解释了如何选择 Keil CARM 编译器、 GNU或ADS/RealView工具链。 创 建 应 用程序 描述了如何创建工程、编辑源文件、编译和修改语法错误以及产生可执行代码。 测试 程序 描述了如何使用 Vision调试器仿真和测试完整的应用程序。 例程 提供了几个例子程序显示如何使用

38、 Keil Vision/ARM及相关开发工具。 使用片上外 设 显示了如何使用开发工具访问片上外设。 CPU设 置 提供了 CPU启动代码和工具配置的详细信息。 JTAG调试 讨论了如何如何使用 Keil ULINK USB-JTAG仿真器调试目标系统。 Flash编 程 描述了如何通过 JTAG接口设置 Keil ULINK仿真器进行 Flash编程。 RDI接口 驱动 解释了 RDI调试解决方案的使用。 版本历史: 2005年 7月:增加了 RDI接口 驱动 。 2004年 11月: CPU和 Flash编程章节的修订。 2004年 5月:增加了 Keil ARM 工具链及 Vision

39、用户手册的相关部分。 2004年 2月: ARM工具相关资料的收集。 介绍 使用 Keil软件开发工具可以创建基于 ARM, XC16x, C16x, ST10, 251以及 8051等微控制器 (详细的微控制器列表请参考 设备 数 据 库 )的嵌入式应用程序。 Keil公司将不断地向设备数据库中添加新设备以及片上外设的仿真支持,因此,如果在本地安装的 Vision设备数据库中没有合适的设备请参考一下基于网站的 设备 数 据 库 。 这一章将介绍 Keil 软件的可用 ARM开发工具,简单的介绍一下 软 件 开发 周期 以及 ARM开发工具链的 文件 结 构 。 软件开发周期 使用 Visio

40、n 3作为嵌入式开发工具,其开发的流程与其他软件开发工具基本一样,一般分为以下几步: 1) 新建一个工程,从设备库中选择目标芯片,配置工程编译器环境; 2) 用 C或汇编编写源文件; 3) 编译目标应用程序; 4) 修改源程序中的错误; 5) 测试链接应用程序。 下图描述了完整的 Vision /ARM软件开发流程。本节后面将对其中的每一部分做简要描述。 开始使用 ARM开发工具集用户指南 Copyright (c) Keil - An ARM Company。 All rights reserved。 Page 1 of 46GSARM: Getting Started Users Guid

41、e2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh4.Vision IDE Vision IDE集成了工程管理、带交互式错误修正的编辑器、选项设置、编译工具以及在线帮助。使用 Vision可以创建源文件以及将这些源文件组织成定义目标应用程序的工程。用户可将注意力全部集中在 Vision集成开发环境,因为它提供了嵌入式应用程序的自动编译、汇编以及链接。 C编译器和宏汇编器 在 Vision IDE中创建源文件,这些源文件将使用 C编译器编译或宏汇编器汇编。编译器和汇编器处理源文件,产生可重载的目标文件

42、。 在 Keil Vision/ARM中可以使用 GNU 或 ARM ADS/RealView 的开发工具。 Vision/ARM包含了许多使用这些工具链的例程及详细信息。 库管理器 库管理器可以从编译器或汇编器产生的目标文件中创建目标库文件。库是具有特定格式和顺序的目标模块的集合,它在链接器中使用。当链接器处理库文件时,只有那些在程序中使用到的库文件目标模块才会被处理。 链接器 /装载器 链接器 /装载器使用目标模块创建绝对的 ELF/DWARF格式文件,这些目标模块来源于库文件或编译器和汇编器产生的目标文件。绝对的目标文件或模块不包含可重载的代码或数据。所有的代码和数据都存储在固定的内存位

43、置。绝对的 ELF/DWARF文件可以在下述情况下使用: 编程 Flash ROM或其他存储设备。 仿真和目标调试的 Vision调试器。 程序测试的片内仿真器。 Vision调试器 Vision的源码级调试器非常适合快速可靠的调试。这个调试器包括一个高速的软件仿真器,它可以仿真一个包括片上外设和外部硬件的完整 ARM系统。当用户从设备数据库中选择所需芯片时,它的属性将自动被配置。 Vision的调试器为目标硬件上程序的测试提供了几种方法: 使用带 USB-JTAG接口的 Keil ULINK2仿真器进行应用程序的 Flash下载和软件测试,它们是通过集成在 ARM设备中的嵌入式 ICE宏单元

44、实现的。 使用高级的 GDI 接口连接 Vision调试器和目标系统。 目录结构 Page 2 of 46GSARM: Getting Started Users Guide2009-2-25file:/C:Documents and SettingsAdministratorLocal SettingsTemphh4.安装程序将开发工具安将在根目录下的子目录, 默 认的根目录是 C:KEIL。下表列出了 MDK的目录结构。根据软件版本及安装目录的不同这种结构会有所不同,以下说明以默认目录为例。 ARM开发工具 通用 Vision文件 请求协助 Keil公司致力于提供嵌入式软件开发工具及可用文

45、档。如果用户有关于这些产品在线手册的建议或注解,请与 Keil公司联系。如果用户认为发现了这款软件的问题,在请求 Keil公司的技术支持之前做如下处理: 1. 阅读要完成工作或任务所涉及到的数据手册中的相关部分。 2. 确保所用的是当前最新的软件或使用工具。可以在 http:/ /* only to delay for LED flashes */ int main (void) unsigned int i; /* Delay var */ unsigned int j; /* LED var */ IODIR = 0xFF; /* P0.07 defined as Outputs */ w

46、hile (1) /* Loop forever */ for (j = 0x01; j 0x01; j =1) /* Blink LED 7, 6, 5, 4, 3, 2, 1 */ IOSET = j; /* Turn on LED */ for (i = 0; i Files页的文件组上点击鼠标右键,然后在弹出的菜单中选择 Add Files菜单项,这时将打开标准的文件对话框,选择刚才创建的 MAIN.C文件即完成源文件的添加。 添加及配置启动代码 一般来说, ARM程序需要与目标硬件的设计配置相匹配的 CPU初始化代码。当创建工程的时候, Vision要求添加与选定的CPU相匹配的启动代码。根据所使用的工具链的不同,启动代码文件所在的文件夹分别为 ARMStartup (针对 Keil开发工具链 ), ARMGNUStartup(针对 GNU开发工具链 ) 和 ARMADSStartup(针对 ADS开发工具链 )。对于不同的微控制器来说,这些文件夹包含不同的 启动 代 码 。 Philips LPC2106的启动代码文件为

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报