Keil for arm 入门
- 格式:doc
- 大小:552.00 KB
- 文档页数:15
Keil(MDK-ARM)系列教程(七)_菜单Ⅰ、写在前⾯原⽂:/ybhuangfugui/article/details/51689271⾮常好的KEIL教程:/ybhuangfugui/article/category/6482658本⽂带来关于Keil软件菜单的内容,系列教程中前⾯讲述的内容都可以通过菜单⽽找到,只是⼤部分内容都可以通过快捷按钮或快捷键找到,该⽂就讲述主菜单⾥每⼀个⼦菜单的内容。
Keil有些菜单在编辑模式和调试模式下可能有所不同,也就是说在不同模式下有些功能或许不能使⽤,下⾯内容会将每项菜单在不同模式下的区别提出来。
按照前⾯⽂章编辑⽅式,为了使⽂章内容精简,过于简单和不常⽤且过于复杂的内容只简述。
本⽂内容已经整理成PDF⽂件,提供给⼤家下载:Ⅱ、File⽂件菜单File⽂件菜单在两种模式下略有不同。
⽐较简单,只简述。
1.New:新建⽂件2.Open:打开⽂件3.Close:关闭⽂件4.Save:保存当前⽂件5.Save As:⽂件另存为6.Save All:保存⽂件(⽂件及⼯程设置)7.Device DataBase:器件数据库(信息)8.License Management:许可证管理9.Print Setup:打印设置10.Print:打印11.Print Preview:打印预览Ⅲ、Edit编辑Edit菜单在两种模式下相同。
Edit菜单⽐较常⽤,⼤部分都有快捷键和快捷按钮,内容和前⾯⽂章【Keil(MDK-ARM)系列教程(⼆)_⼯具栏详细说明】中的快捷按钮⼀样。
1.Undo:撤销编辑2.Redo:恢复编辑3.Cut:剪切4.Copy:复制5.Paste:粘贴6.Navigate Backwards:跳转到上⼀步7.Navigate Forwards:跳转到下⼀步8.Insert/Remove Bookmark:插⼊/移除书签9.Go to Next Bookmark:跳转到下⼀个书签10.go to Previous Bookmark:跳转到上⼀个书签11.Clear All Bookmarks:清除所有标签12.Find:查找13.Replace:替换14.Find in Files:查找所有⽂本15.Incremental Find:增加查找16.OutLining:提纲(如显⽰函数名称,隐藏函数体)17.Advanced:(更多)先进功能18.Configuration:配置Ⅳ、View视图View菜单包含状态栏、⼯具栏、窗⼝等视图,在调试模式下⽐在编辑模式下要多出⼀些调试视图窗⼝,⽽上⾯常规的视图窗⼝都⼀样。
目录一、RealViewMDK4.01安装及破解步骤 (2)1.安装 (2)2.添加库文件 (2)3.破解 (3)二、J-LINK 驱动安装 (7)三、在RealViewMDK4.01中新建一个 (11)1. 创建工程 (11)2 .工程管理 (14)3. 工程基本配置 (16)4.工程的编译链接 (20)5 .程序烧写到FLASH (20)6 .代码运行 (20)hm1236@一、RealViewMDK4.01安装及破解步骤1.安装运行mdk401prc.exe,一路“next”,直至”finish”.2.添加库文件复制” driverlib.lib”文件到“C:\Keil\ARM\RV31\LIB\Luminary”,选择“替换”复制” luminary”文件夹到“C:\Keil\ARM\INC”,选择“全部替换”3.破解运行“Keil uVision4”,点击“file——license management”在弹出的对话框中复制CID码。
TARGET中选择“ARM”.点击“generate”,并复制序列号。
将序列号粘贴至“license management”对话框的“new license id”框中,点击“ADD LIC”破解成功后可以看到使用期限,一般可以达到几十年~~,如果过期则重新点击“generate”,获取新的序列号直至成功。
二、J-LINK 驱动安装安装驱动很简单,只要将下载的ZIP 包解压,然后直接安装即可,默认安装,一路点击“NEXT”即可:安装完成后,请插入JLINK 硬件,然后系统提示发现新硬件,一般情况下会自动安装驱动,如果没有自动安装,请选择手动指定驱动程序位置(安装目录),然后将驱动程序位置指向到JLINK 驱动软件的安装目录下的Driver 文件夹,驱动程序就在改文件夹下。
安装完成可以桌面出现两个快捷图标,如上图,J-Link可以用来进行设置和测试。
连接好J-Link后,双击图标,可以显示J-Link连接是否正常,如下图为正常显示。
Keil For ARM工程模板使用说明1.1 模板说明1.1.1 EasyARM2100工程模板该工程模板在文件夹EasyARM2100下,适用于EasyARM2104和EasyARM2100开发板。
该模板在文件夹EasyARM2100下,适用于EasyARM2100开发板,仅适合于用ADS编译器的器情况。
模板文件夹下有一些文件夹,用于存放产生的文件。
src文件夹用于存放用户的源文件。
模板包含了EasyARM系列开发板的启动代码、初始化文件、分散加载文件等。
这些文件和ADS模板的文件相同。
模板已经为用户设置好了各种生成目标的设置选项,包括仿真片内RAM调试、片外RAM 调试、片内FLASH调试、片内FLASH发布,以及所需要的初始化文件。
对不同开发板和不同芯片,生成目标会有所不同。
在模板文件夹下有各种不同生成目标的文件夹,用于存放各自的输出文件。
EasyARM2100模板,有Simulator、Debug in RAM、Debug in FLASH和Release in FLASH 4种生成目标。
1. Simulator用于模拟仿真。
l 入口地址:0x40000000l 初始化文件:debug_in_ram.ini2.Debug in RAM在RAM调试。
l 入口地址:0x40000000l 分散加载文件:无l 初始化文件:debug_in_ram.inil 宏定义:__DEBUG_RAM3.Debug in FLASH在FLASH调试。
l 入口地址:0x00000000l 分散加载文件:mem_c.scfl 初始化文件:无l 宏定义:__DEBUG_FLASH4. Release in FLASHFLASH发布版,同时加密,不能调试。
l 入口地址:0x00000000l 分散加载文件:mem_c.scfl 初始化文件:无l 宏定义:__IN_CHIP EN_CRP1.1.2 EasyARM2200工程模板该模板在文件夹EasyARM2200下,适用于EasyARM2200开发板,仅适合于用ADS编译器的器情况。
Keil创建ARM工程操作步骤1、双击keil uvision4,打开keil开发环境2、选择project—> new uvision project 创建新项目,在创建新项目时,最好先新建一个文件夹,把新项目创建在新文件夹里,这样项目所生产的文件都在该文件夹下,便于项目的管理。
3、在弹出的对话框中选择芯片类型芯片选择好后,点击OK退出。
这时弹出一个对话框,询问是否添加启动代码到新项目中,选择“是”。
4、选择file-->new,新建文件。
在文件输入主函数程序代码。
输入完后,点击保存,假设命名为main.c 。
注意保存路径,要和项目在同一文件夹下。
5、右键点击source group1,选择add file to source group1.添加mail.c文件。
若项目中包含文件较多,均可采用该方法添加文件。
6、配置相关选项。
点击红框的target options弹出选择output标签然后点击“select folder objects”,弹出一对话框,在这里新建一个文件夹,命名为“obj”,然后双击进入obj文件夹。
然后点击ok退出。
本步骤的目的是将生产的目标文件都放在obj文件夹里。
7、选择listing标签,点击select folder for listings ,新建文件夹list,并双击进入该文件夹,然后点击ok直接退出。
8、选择linker标签,勾掉use memory layout from target dialog,选择Scaterfile 后面的第一个按钮,选择文件。
然后点击编辑。
9、选择debug标签。
配置如下图。
选择Ext_RAM.ini,然后点击编辑。
在Ext_RAM.ini中修改可执行文件名称。
第一步拷贝可执行文件名称,该名称在output标签中。
第二步修改Ext_RAM.ini中名称。
10、选择utilities标签,配置如下保存退出11、编译,仿真。
KEIL FOR ARM 下LPC22xx 的外部RAM 用法工作笔记:调试外部RAM,我是在CS0 上外扩了一个64K 的RAM,也就是地址从0X80000000 开始。
开始不知道REALVIEW 的设置,所以总是不能读写RAM,没有输出信号,在KEIL 下要做如下设置。
一、在Options for Target Targe 1 下,选择Asm 菜单,在Conditional Assembly Control Symbols 下的输入框中填上EXTERNAL_MODE,然后按OK 结束,二、Startup.s 这个文件也要做一定的改动。
EMC_SETUP EQU 1 ;使能外部RAM 控制。
BCFG0_SETUP EQU 1 ;使能CS0 控制。
如果用到别的片选,则都要使能。
BCFG0_Val EQU 0x1000554A; ;;此时要注意BCFG0 这个寄存器的设置,要仔细看内容,其分别定义了读、写、连续的时钟周期,重要的是,如果是RAM,RVLE 位一定要置1,别的要根据你RAM 的速度,来设置一个合适的值,位29、28 决定了RAM 的宽度,8 位、16 位、32 位等。
三、另一个设置就是比较重要的PINSEL2PINSEL2_Val EQU 0x0F000914的设置的为16 位总线,A1-23 地址线使能,使能CS0,OE ,WE;别的引脚则设置为了I/O,这个寄存器的位4、5 应该看明白,你选择的是多少位的总线,然后就是看你需要的选择了。
综上,设置了这几种寄存器,外部RAM 就可以正常工作了。
如果以上设置的不对,则可能没有WE 信号,也可能不产生CS0;下面是一个简单的例子。
#define RAMADDR 0x80000000 //外部RAM 的基址。
Keil MDK(Microcontroller Development Kit)是一套用于嵌入式系统开发的工具,其中包括编译器、调试器、模拟器等。
以下是关于Keil MDK ARM编译的一些基本步骤。
请注意,具体步骤可能会根据你的项目和硬件平台而有所不同。
Keil MDK ARM 编译手册基本步骤:创建新工程:打开Keil MDK,选择"Project" -> "New µVision Project"。
在弹出的对话框中,选择工程的存储位置和工程名称,然后点击"Save"。
选择目标设备:在弹出的"Device" 对话框中,选择你的目标微控制器或处理器型号,然后点击"OK"。
添加源文件:在"Project" 窗口中,右键点击"Source Group 1",选择"Add New Item to Group 'Source Group 1'",然后添加你的源代码文件。
配置编译选项:在"Project" 窗口中,右键点击你的工程,选择"Options for Target 'Target 1'"。
在弹出的对话框中,配置"C/C++"、"Miscellaneous" 和其他选项,例如选择编译器、调试器、优化选项等。
设置链接脚本(可选):在"Options for Target 'Target 1'" 对话框中的"Linker" 选项卡中,你可以设置链接脚本,以指定程序的内存布局。
编写源代码:打开添加的源代码文件,编写你的程序代码。
构建项目:点击工具栏上的"Build" 按钮或者使用快捷键(通常是F7)进行编译。
Keil uVision4环境下ARM工程的创建与设置操作步骤:1、打开 Keil uVision 4。
2、单击菜单 Project ✂ New uVision Project…。
3、在 Create New Project 窗口中输入创建项目文件的名称。
一个项目的所有文件要在一个文件夹。
文件夹的命名规则:月日+学号后两位+其他。
例:030700_01。
尽量不要使用中文。
建议项目名称和文件夹名一致。
4、选择器件。
在Select Device for Target 窗口选择ARM芯片。
在左侧Data base 栏目中,找到Samsung ✂ S3C2410A。
5、在是否添加启动代码到工程中的对话窗口,选择‚否‛。
6、单击菜单 File New…。
新建汇编语言源文件,在文件编辑窗口输入。
在输入汇编语言源文件要注意:1.标号要在一行的最左端,不能有空格。
2.汇编指令和伪指令的前面必须有空格,建议使用TAB 键,一次插入多个空格并且能上下行对齐。
3.伪指令和其他操作指令的对齐位置有区别。
7、保存汇编语言源文件并添加到项目源文件组中。
保存汇编语言源文件,文件名可以与工程名一致,扩展名为.s 。
双击项目的源文件组Source(可以见文件组名“Source Group 1”修改为“Source”),在窗口中,在“文件类型”下拉列表中选择汇编语言文件“Asm Source file”,找到文件添加到项目中。
8、进行项目设置。
单击菜单Project Option for Target ‘Target 1’。
9、打开的‚Option for Target ‘Target’‛设置窗口中进行如下三个选项卡的设置。
此处的文件名删掉10、创建一个配置文件DebugINRam.ini。
文件内容://*** <<< Use Configuration !disalbe! Wizard in Context Menu >>> *** //Name: DebugINRam.iniFUNC void Setup (void){// <o> Program Entry Point, .AXF File download AddressPC = 0x030000000;}//map 0x00000000,0x0200200 READ WRITE execmap 0x30000000,0x30200000 read WRITE execSetup(); // Setup for Running//g,main11、编译。
Keil for arm 入门ARM7 TDMI结构的Keil开发套件采用最新设计的超豪华uVision3集成开发环境,内嵌C编译器/汇编器/工程管理器/调试器等功能功能模块,是一款稳定/可靠/高效的开发工具,适用于不同层次的的用户,完全满足从专业的应用开发工程师到初学嵌入式软件开发的学生的所有使用要求。
类似于8051的智能平台将大幅度缩短您的开发周期,各大半导体厂商的所有ARM型号将逐一得到全面支持。
Keil uVision调试器可以帮助用户准确地调试ARM器件的片内外围功能(I2C、CAN、UART、SPI、中断、I/O口、A/D转换器、D/A转换器和PWM模块等功能)。
ULINK USB-JTAG转换器将PC机的USB端口与用户的目标硬件相连(通过JTAG或OCD),使用户可在目标硬件上调试代码。
通过使用Keil uVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。
支持Philips、Samsung、Atmel、Analog Devices、Sharp、ST等众多厂商ARM7内核的ARM 微控制器。
特点∙高效工程管理的uVision3集成开发环境* Project/Target/Group/File的重叠管理模式,并可逐级设置;* 高度智能彩色语法显示;* 支持编辑状态的断点设置,并在仿真状态下有效。
∙高速ARM指令/外设模拟器* 高效模拟算法缩短大型软件的模拟时间;* 软件模拟进程中允许建立外部输入信号;*独特的工具窗口,可快速查看寄存器和方便配置外设;* 支持C调试描述语言,可建立与实际硬件高度吻合的仿真平台;* 支持简单/条件/逻辑表达式/存储区读写/地址范围等断点。
∙多种流行编译工具选择* Keil高效率C编译器;* ARM公司的ADS/RealView 编译器;* GNU GCC 编译器;* 后续厂商的编译器。
∙JTAG仿真器ULINK* USB通讯接口高速下载用户代码;* 存储区域/寄存器查看;* 快速单步程序运行;* 多种程序断点;* 片内Flash编程。
∙支持器件* Philips:LPC2104, LPC2105, LPC2106, LPC2114, LPC2119, LPC2124, LPC2129,LPC2132, LPC2138, LPC2194, LPC2212, LPC2214, LPC2290, LPC2292, LPC2294;* Samsung:S3C44B0X;* Analog Devices:ADuC7020, ADuC7021, ADuC7022, ADuC7024,ADuC7025,ADuC7026, ADuC7027;* Atmel:AT91C140, AT91F40416, AT91F40816, AT91FR40162,AT91FR4042,AT91FR4081, AT91M40400, AT91M40800, AT91M40807,AT91M42800A, AT91M43300,AT91M55800A, AT91M63200, AT91R40008,AT91R40807, AT91SAM7A1, AT91SAM7A2,AT91SAM7A3, AT91SAM7S128,AT91SAM7S256, AT91SAM7S32, AT91SAM7S64;* Sharp:LH75400, LH75401, LH75410, LH75411;* ST Microelectronics:STR710FZ1T6, STR710FZ2T6, STR711FR1T6,STR711FR2T6, STR712FR1T6, STR712FR2T6。
新建工程在菜单栏里选择PROJECT-NEW PROJECT,选择路径,保存。
此主题相关图片如下:保存好后,出现一个对话框,选择所用的芯片。
然后确定.此主题相关图片如下:接着出现一个对话框,是否加入启动代码,按否。
接下来加入KEIL的启动代码.点击浏览该文件SAM7. S接下来新建文件,添加文件到工程里。
此主题相关图片如下:在FILE菜单里选择-NEW,建交一个新文件。
此主题相关图片如下:然后保存该文件,保存为**.c。
接着加入到工程里。
此主题相关图片如下:然后我们选择刚才新建的C文件文本,选择它,然后点“ADD“此主题相关图片如下:此主题相关图片如下:在编译之前要设置一下,使这输出HXE文件。
此主题相关图片如下:钩上CREAT HEX FILE选项此主题相关图片如下:还有一点有设置一下,如下图此主题相关图片如下:接下来就可以编译文件了,我们就选择PROJECT菜单下的BUILD TARGET 或按F7就可以了。
如下图所示。
此主题相关图片如下:上面所设置的只能输出HEX文件,而下载工具要求的是BIN文件。
所以要借助于一个HEX转BIN的第三方软件。
这里我们选择GCCARM。
GCCARM安装完成后C盘会出现一个:Cygnus文件夹(默认安装)。
然后在KEIL里设置如下。
钩上RUN USER PROGRAM ,在空格里填入arm-uclibc-objcopy -I ihex **. hex -O binary **.bin**的地方写入前面的HEX文件名。
此主题相关图片如下:BUILD之后就可生成BIN文件。
下面是设置好的KEIL的模板,以后只要在main.c里写自己的程序.Arm硬件调试笔记电源问题1.VDDCORE和VDDIO引脚电源A)VDDCORE和VDDIO引脚电源必须连接到使用退耦电容的干净的直流电源上;退耦电容应尽可能的接近微控制器的VDD和GND引脚;退耦电容典型值是33nF到100nF。
B)除保证复位的延时时间大于两个电源的上升时间外,对电源的时序上没有特殊的要求。
C)值得注意的是在VDDCORE一直给微控制器供电保存内部RAM和寄存器内容时V DDIO供电不能停止,如果这样的话他不是破坏性的,带能导致内部外围设备的输入进入一个不确定的状态。
此外,除电流连续状态下的阻性负载外,VDDIO的电流消耗依赖于连接到EBI的I/O线和PIO线切换时的负载电容。
这就是说,当CPU处于备用状态时不需要停止VDDIO.2.VPP引脚VPP用来提高FLASH的编程和擦除速度。
电压范围参见数据手册。
VPP引脚可以不连接,为防止意外,可以考虑施加一个已知的电平以防止步必要的动作。
主时钟引脚1.MCKI引脚MCKI引脚是微控制器的主时钟输入引脚。
此引脚输入一个方波时钟信号。
外部时钟的高半周期(tCH)和低半周期(tCL)有一个最小值,见数据手册。
AT91X40X 系列没有内部振荡器,仅仅连接一个晶振是不可以的。
2.MCKO引脚MCKO引脚提供一个延时的MCKI引脚的时钟输入信号的镜像以提供系统内的其他设备使用。
MCKO驱动能力低,用它来驱动几个TTL负载是不可行的。
当使用BGA封装的AT91X40X系列微控制器时,如果这个引脚不使用,强烈建议你将它作为PCB上的测试点。
这样用来快速判断微控制器是否有一个正确的时钟NRST输入引脚NRST引脚用于主系统复位。
它为低时复位所有内部设备寄存器,ARM内核的程序计数器和JTAG/ICE端口。
在系统引导时他采样BMS和NTRI引脚。
NRST必须被保持到提供给微控制器的电源稳定和依照外部振荡器的启动时间。
在释放NRST引脚前必须保持0电平至少10个时钟周期以便能够正确的采样BMS 和NTRI引脚。
复位期间采样的引脚1.引导模式选择引脚(BMS)P25/BMS输入引脚在NRST引脚的上升沿采样。
这个引脚使ARM7TDMI内核从他的内部闪存,或连接到EBI的片选0(NCS0)的一个或多个闪存开始读取指令。
一旦BMS引脚在复位期间被采样完毕并且处理器正确初始化,P25/BMS引脚能够作为通用I/O引脚。
依赖于BMS引脚的电平,能够选择引导用存储器数据总线宽度的选择,8位或1 6位。
具体请参见数据手册。
2.三态输入引脚为了调试的方便,AT91X40X系列提供了一个三态模式。
这能够从目标板连接仿真探头到应用板。
在三态模式,所有AT91X40X系列微控制器的输出驱动引脚均被禁止。
对于基于闪存的AT91FR40X系列微控制器,三态模式使编程器像对待A TMEL闪存一样对待微控制器。
当用户不使用AT91系列的三态模式时,在复位期间NTRI引脚必须通过一个400 KR的电阻上拉。
注意,NTRI引脚复用为I/O线P21和USART1的TXD1引脚。
如果此引脚连接到一个内部包含400KR电阻的标准RS232驱动器,则不需要上拉电阻。
详细参见RS232驱动器。
JTAG/ICE端口引脚在带IEEE1149标准的JTAG/ICE端口的任何ARM处理器中,TDI,TDO,TMS和TCK 是最少的引脚。
除TDO引脚外的其他所有引脚内部均有大约10KR的上拉电阻。
这些引脚用来访问ARM内核的ICE以进行调试。
ATX40X系列在数字I/O单元不具有边界扫描特性,因此在此系列中JTAG的边界扫描特性不能使用。
PIO引脚1.复用引脚大多数的I/O引脚复用为一个或两个内部设备。
这些引脚的大多数在PIO模式重新安排状态,举例来说,对于P21/TXD/NTR1示例来说,不受内部设备驱动。
其他一些引脚像地址线A20-A23在外围模式有他们自己的安排状态,举例来说,受EBI驱动。
如果这些引脚复位后由不由外围设备驱动,他们作为通用I/O引脚。
未使用的引脚不用连接但为了避免一些外部异常信号导致的不必要行为和/或内部震荡导致的额外电流损耗,通常考虑在初始化代码中设置这些未使用的引脚为输出模式。
这些I/O线在嵌入式微控制器中没有上拉或下拉电阻。
2.单一功能的PIO引脚单一功能的PIO引脚不和任何内部设备复用的I/O引脚。
缺省状态,所有I/O引脚在复位后在输入模式。
未使用的I/O引脚可以不连接,但要在初始化代码中设置为输出模式。
这些I/O线在嵌入式微控制器中没有上拉或下拉电阻。
1.地址线引脚AT91X40X系列地址总线有24根地址线并且因此能够访问16M的存储器空间。
地址线A0-A23不能和任何PIO线或内部设备复用。
地址线A20-A23复用为PIO线和四个附加的4个片选线。
在访问设备时如果这4个高4位地址线不使用,他们能够作为片选线或PIO线。
当使用基于闪存的AT91X40X系列微控制器时,注意地址线A20复位后不得作为片选线(CS7)或PIO线。
A20是内部闪存的MSB(最高位)。
2.数据总线引脚AT91X40X系列数据总线能够使用8-位或16-位模式,这依赖于片选线0(NCSO)的BMS引脚状态和其他所有片选线的EBI芯片选择寄存器的配置。