ARM的KEIL工程建立及编译过程
keil4建立ARM(STM32)工程和设置
![keil4建立ARM(STM32)工程和设置](https://img.taocdn.com/s3/m/5441fa6daf1ffc4ffe47ac85.png)
此篇根据个人的mdk4.5+JlinkV8使用状况,来写的日记,我只捡一些个人碰到的一些大众化的问题来说,其他的我就贴图了(也会简单说一下),高手可以掠过。
呵呵1新建工程,和增加源代码a.创建工程:点上述的按钮后,自己输入自己的工程名称,选择路径,然后保存.b.增加一个Groupc.增加源文件:1.自己编写的源文件:File New ,Ctrl+s ,输入源文件名, 选择路径,然后保存2.复制已有的源文件到一个文件夹下,然后如下图所示, 把所有源文件增加进来.(个人比较懒,实验工程,所以就一个group把所有的源码全加进来了。
)增加所有源文件后的界面2 keil4设置,我把我的设置全部贴图,我自己碰到的问题,会提出来说下。
a.点击target option按钮,进入设置界面图1. device(我的是STM32F103ZET6芯片)图2 Target上述的注意的几个地方:Xtal :( 我用的是8M晶振)System_V iew File:根据我之前的情况来看,只要其他的选好了,keil是可以自行增加的,这里关注下,我的是手动添加的(这里用的是绝对路径,至少我尝试是无法设置成相对路径的)。
这个文件大家可以在..\Keil\ARM\SFD\文件夹下找到相应的文件ROM和RAM的设置:各自根据自己的实际情况来设置3.Output选项卡需要选中debug information,Browse information (碰到在C中无法增加断点的情况,个人误打误撞选中这两个后就可以了,后来实验过取消和增加确实和能不能增加断点有关系,还是建议勾选上)4.Listing选项卡和User选项卡,ASM选项卡我没有做任何更改,就略过.(如果用汇编的话,应该要设置的吧)5.C/C++选项卡我只修改了Inlcude Path 选项卡(包含的头文件路径)a.使用绝对路径。
点击右侧小按钮,然后挨个挨个找吧(不方便移植)。
关于在Keil中建立ARM模板的说明
![关于在Keil中建立ARM模板的说明](https://img.taocdn.com/s3/m/e8150b1aff00bed5b9f31dcb.png)
2)分散加载文件要做修改,最简单的例程如下:(注意外部 RAM 在这里作为程序区,内部 RAM 作为堆栈和数据区) ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x80000000 { ; load region
中填入自己编写的分散加载文件(。sct)。在下载到内部 RAM 中,分散加载最简单的 例程如下:(注意内部 RAM 在这里既作为程序区,也作为堆栈和数据区) ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x40000000 { ; load region ER_IROM1 0x40000000 0x00001000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_RAM1 0x40002000 0x00001000 { ; RW data .ANY (+RW +ZI)
keil工程文件的建立以及简单代码的编写
![keil工程文件的建立以及简单代码的编写](https://img.taocdn.com/s3/m/de68b8146bd97f192279e974.png)
KEIL工程的建立以及简单程序的编写下载相关软件及硬件实验平台单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。
而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。
这次教程开发程序所用到的软件为keil uVision2下面分别介绍这keil uVision2和实验板的使用方法,在程序编写完成后需把程序烧写到单片机中,我们是用ISP在线下载工具,这里一并进行介绍。
为了便于大家学习,这里我们写一个以1602液晶为显示器件的可显示时、分、秒的电子时钟程序为例介绍整体程序从编辑、编译到下载的全过程。
(具休程序已事先写好并经正常调试无误,后面课程会具体介绍,这里暂不作讲解)在正式的写程序之前,需进行keil uVision2软件的安装和实验板驱动程序的安装,相关的软件及驱动程序请大家直接在实验室网站下载中心进行下载,这里给出下载地址。
keil uVision2软件件及安装方法、实验板驱动程序及安装方法。
安装安成后,即可按下面的步骤进行。
1、KEIL软件的使用及工程文件的建立51单片机程序设计所用到的开发软件主要是keil uVision,它是由德国Keil Software公司开发的,2005年Keil公司被ARM公司收购,并于2009年发布了keil uVision4,这个版本的软件支持ARM系列的芯片,如现目前流行的STM32等芯片 ,我们这里使用的是uVision2版本。
(1)、打开KEIL软件双击keil快捷方式图标(软件安装好后,一般在桌面上会有快捷方式,双击即可),出现启动界面如图1,紧接着出现编辑界面如图2。
图1 启动keil软件时的界面图2 进入keil后的编辑界面 (2)、新建工程进入keil编辑界面后,点击Project菜单中的New Project选项如图3所示(注意,如果之前该软件已经建立过工程,需要点击Close Project后再新建工程)。
keil_MDK建立工程步骤方法
![keil_MDK建立工程步骤方法](https://img.taocdn.com/s3/m/160fc86148d7c1c708a14577.png)
KEIL工程建立步骤点击Next,勾选安装协议:下一步,选择安装路径(笔者因硬盘空间不足安装在E盘,但若读者硬盘资源充裕,则建议安装在C盘,跑起来快些):下一步,填写用户信息,个人用户随意填入即可:点击Next 就进入实质的安装过程啦,Wait for a Whle……很快安装完毕,看到2 个可选项:1、保持当前uVision 的设置。
2、载入以下选择的工程实例,默认即可。
点击Next,来到最后一个安装界面:1.是否安装ULINK Pro Driver V1.0驱动?2.是否显示软件发布说明?读者可以按照自己的需求勾选。
点击Finish,KEIL MDK就完成安装了,可以发现桌面上生成了名为“Keil uVision4”的可执行文件快捷方式。
双击“Keil uVision4”图标打开Keil uVision4开发环境,此时Keil uVision4会自动载入一个工程项目(依安装的倒数第二步勾选而定),我们就此可以简单地看看KEIL MDK 的用户界面。
如图所示,KEIL MDK的基本用户界面也是很简洁的,也是由一些菜单栏,工具栏,状态栏等区域构成。
当然KEIL MDK的软件界面远远不止这么简单,读者可以在日后漫长的工程师生涯逐一熟悉。
至此,KEIL MDK的安装工作已经完毕了。
接下来我们要开始建立我们的第一个工程。
在开始之前,请读者先从网上获取ST公司提供的STM32固件库“stm32f10x_fw_archive v2.0 (May 2009)”,然后将其解压。
首先请读者在任意一个地方建立一个空文件夹,并将其命名为“STM32_FW”。
然后在STM32_FW 里新建6个文件夹,分别命名为“boot”、“library”、“src”、“obj”、“list”、“library”。
如下图所示:接下来请执行如下操作:1、在刚才解压“stm32f10x_fw_archive v2.0(May2009)”得到的文件夹里按照路径\stm32f10x_fw_archive v2.0 (May 2009)\Archive,找到um0427.rar并将其解压。
keil创建arm工程操作步骤
![keil创建arm工程操作步骤](https://img.taocdn.com/s3/m/6edc7d2daf45b307e87197c5.png)
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、编译,仿真。
linux 环境下编译keil项目
![linux 环境下编译keil项目](https://img.taocdn.com/s3/m/8c50d12158eef8c75fbfc77da26925c52cc59120.png)
linux 环境下编译keil项目一、背景介绍Keil是一款嵌入式开发工具,广泛应用于嵌入式系统开发。
在Windows环境下,Keil提供了强大的集成开发环境(IDE)和编译器,方便开发人员进行项目开发和调试。
然而,在Linux环境下,Keil并不直接支持,因此需要采取一些额外的措施来实现在Linux 下编译Keil项目的目的。
二、安装必要的工具和库在Linux环境下编译Keil项目,首先需要安装一些必要的工具和库。
其中,最重要的是安装ARM交叉编译工具链,这是因为Keil使用的是ARM架构的处理器。
可以通过包管理器来安装ARM交叉编译工具链,例如在Ubuntu系统上,可以使用以下命令进行安装:```sudo apt-get install gcc-arm-none-eabi```还需要安装一些其他必要的工具和库,如make、libc等。
三、创建项目文件夹在Linux环境下,创建一个用于存放Keil项目的文件夹。
可以使用以下命令创建文件夹:```mkdir keil_project```进入该文件夹:```cd keil_project```四、导入Keil项目文件将Keil项目文件从Windows环境中导入到Linux环境中的keil_project文件夹中。
可以通过多种方式实现文件的导入,如使用网络传输工具或者通过U盘等移动存储设备进行文件的迁移。
五、编译Keil项目在Linux环境下,使用ARM交叉编译工具链对Keil项目进行编译。
首先需要切换到keil_project文件夹中:```cd keil_project```然后,执行以下命令进行编译:```make```编译过程可能需要一些时间,具体时间取决于项目的复杂程度和硬件性能。
六、查看编译结果编译完成后,可以查看编译结果。
在keil_project文件夹中,会生成一些编译产物,如可执行文件、目标文件等。
可以通过以下命令查看编译结果:```ls```通过该命令,可以列出当前目录下的所有文件和文件夹。
keil arm编译手册
![keil arm编译手册](https://img.taocdn.com/s3/m/cc48b05315791711cc7931b765ce0508763275ce.png)
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环境ARM工程创建与设置
![Keil环境ARM工程创建与设置](https://img.taocdn.com/s3/m/ff9914370066f5335a81215f.png)
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实例教程(一)编辑源代码,建立单一工程
![Keil实例教程(一)编辑源代码,建立单一工程](https://img.taocdn.com/s3/m/5f65ea0af78a6529647d539a.png)
Keil 工程文件的建立、设置与目标文件的获得单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
我们将通过一些实例来学习Keil软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。
图1所示电路图使用89C51单片机作为主芯片,这种单片机性属于MCS-51系列,其内部有4K的FLASH ROM,可以反复擦写,非常适于做实验。
89C51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的第一个任务是让接在P1引脚上的发光二极管依次循环点亮。
一、Keil工程的建立首先启动Keil软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision的图标以启动该软件。
keil编译操作步骤
![keil编译操作步骤](https://img.taocdn.com/s3/m/c7fffd00c4da50e2524de518964bcf84b9d52d99.png)
keil编译操作步骤第1步:打开Keil uVision2/3第2步:新建工程project->new project将弹出 creat new project框,写入工程名称,例如 test。
为了便于集中管理建议新建一个文件夹(上面第二个图标)。
点击确定后弹出一个芯片选择项,你可以选一个。
例如选atmel AT89C51。
很多单片机,上面可能没有列举,我们任意选一个即可,51单片机选AT89C51代表即可。
然后弹出一个框,选择“否”第3步:新建文件。
file--new将弹出一个文本框,你可以写入程序。
例如#includemain(){P1=0XAA;}然后保存这个文件file--save弹出框save as 填写你要保存的文件名。
例如main.c。
注意一定要带上后缀.c。
切记第4步:加载程序。
把我们编写的c文件加载进入看到左边source group1,点击右键,选择倒数第四项“add files....”进入add框,选择你刚才保存的main.c文件,然后add看到左边source group1下面是不是加载上main.c了第5步:编译。
编译前要进行一个重要的操作。
生成HEX文件。
右边 target 1 右键弹出框,找到output,再找到creat hex fi:前面复选框选中 OK开始编译了,project--build target或者按F7或者看到上面图标(一个图标有两个方向向下的箭头)编译的时候,你会发现最先面编译结果,0 Errors恭喜你,你已经成功编译了程序。
打开你先前建立的test文件夹,你会发现有个test.hex文件记住步骤,慢慢就很熟练了,用快捷方式或图标更方便祝好。
keil for arm教程
![keil for arm教程](https://img.taocdn.com/s3/m/5b97d4067cd184254b35358d.png)
目录一、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)一、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码。
运行“keygen”文件夹下“arm keygen.exe”,将CID码粘贴到对应位置,并在TARGET中选择“ARM”.点击“generate”,并复制序列号。
将序列号粘贴至“license management”对话框的“new license id”框中,点击“ADD LIC”破解成功后可以看到使用期限,一般可以达到几十年~~,如果过期则重新点击“generate”,获取新的序列号直至成功。
二、J-LINK 驱动安装安装驱动很简单,只要将下载的ZIP 包解压,然后直接安装即可,默认安装,一路点击“NEXT”即可:安装完成后,请插入JLINK 硬件,然后系统提示发现新硬件,一般情况下会自动安装驱动,如果没有自动安装,请选择手动指定驱动程序位置(安装目录),然后将驱动程序位置指向到JLINK 驱动软件的安装目录下的Driver 文件夹,驱动程序就在改文件夹下。
安装完成可以桌面出现两个快捷图标,如上图,J-Link可以用来进行设置和测试。
keil4使用方法入门——基于ARM9的程序
![keil4使用方法入门——基于ARM9的程序](https://img.taocdn.com/s3/m/4bd6658da0116c175f0e4808.png)
首先创建一个空文件夹来存在工程(Keil不会为我们创建工程文件夹)。
Open keil > project > new uVision Project > 输入工程名称> SAVE在建立的文件夹里新建一个文本文件,格式修改为.s在project窗口中右击Source Group1,选择Add files to source group 1,在弹出的窗口中选中刚才建立的.s文件,然后点击ADD,再点击close弹出的窗口。
可以看到project窗口出现了我们添加的.s文件。
Flash > configure flash tools….,弹出如图Device选项里可选择要仿真的处理器,我们选择ARM9 (little end)小端。
Target选项里可设置ROM/RAM起始地址,这里的起始地址要跟Linker选项里的地址一致。
CODE Generation设置成ARM-mode接下来在.s文件里编写我们的ARM汇编,如下。
;在ARM状态下生成由64个整数构成的数组的初始值。
;在THUMB状态下将上述数组复制到一个新的地址,并转换成字符数组;再返回ARM状态,计算Thumb状态下所产生数组所有元素值的和。
AREA block, CODE, READONLYN EQU 64FIR EQU 0x01ENTRYstart;送数组入口地址LDR R0, =AMOV R3, #N-1 ;init counterLDR R4, =FIR ;init the first number of A arrayinit64 ;produce 64 numbers; CMP R3, #0; BEQ init_finhSTR R4, [R0], #4ADD R4, R4, #1 ;SUBS R3, R3, #1 ;递减BPL init64 ;循环;init_finhLDR R0, =ALDR R1, =BMOV R3, #N*4-1 ;init counterADRL R7, change+1BX R7 ;处理机状态切换为THUMB CODE16;复制转换change; CMP R3, #0; BEQ change_finhLDRB R2, [R0] ;读取字节; ADD R2, #65 ;转换为字符STRB R2, [R1]ADD R0, #1ADD R1, #1SUBS R3, #1BPL change;change_finhLDR R1, =BMOV R3, #N*4-1ADR R7, sum ;状态切换BX R7CODE32sumLDRB R0, [R1], #1 ;计算和,结果保存在R0中sum_loop; CMP R3, #0; BEQ sum_finhLDRB R2, [R1], #1ADD R0, R0, R2SUBS R3, R3, #1BPL sum_loop;sum_finhloopupB loopupAREA datablock, DATA, READWRITEA SPACE 64*4B SPACE 64*4END保存文件夹,然后build 。
实验1-ARM基础编程仿真(Keil)
![实验1-ARM基础编程仿真(Keil)](https://img.taocdn.com/s3/m/801ba1223b3567ec102d8aca.png)
5、ARM汇编实现冒泡算法(选做) 冒泡排序参考流程-----较小的数值排放到后面
24
5、ARM汇编实现冒泡算法(选做)
冒泡排序法原理:
这种方法的基本思想:是将待排序的元素看作是竖着排列的 “气泡”,较大的元素比较重,从而要往下沉。在冒泡排序算法 中我们要对这个“气泡”序列处理若干遍。所谓一遍处理,就是 自上向下检查一遍这个序列,并时刻注意两个相邻的元素的顺序 是否正确。如果发现两个相邻元素的顺序不对,即“轻”的元素 在下面,就交换它们的位置。显然,处理一遍之后,“最重”的 元素就沉到了最低位置;处理二遍之后,“次重”的元素就沉到 了次低位置。在作第二遍处理时,由于最低位置上的元素已是 “最重”元素,所以不必检查。一般地,第i遍处理时,不必检 查第i低位置以下的元素,因为经过前面i-1遍的处理,它们已正 确地排好序。
25
5、ARM汇编实现冒泡算法(选做)
实验步骤: 1、建立新工程,加入实验1.5文件夹中的maopao.s。 2、补充完成源代码中缺失的部分,实现冒泡排序功能。 3、运行Debug进行调试
实验一 ARM基础编程实验
1
一、实验目的与实验环境
实验目的
1.熟悉并掌握常用ARM汇编指令 2.熟悉并掌握“C+汇编”混合编程技术 3.熟练使用ARM软件开发调试工具Keil
实验环境
1. 硬件:PC 机 2. 软件:Windows操作系统,Keil软件
2
二、实验内容
1. 学习使用Keil开发工具 2. 实现累加运算功能(汇编编程,必做) 3. 实现字符串拷贝功能(C+汇编,必做) 4. 实现求和运算功能(C+汇编,必做) 5. 实现冒泡排序算法(汇编编程,选做)
16
2、用汇编语言实现1+2+...+N的累加(必做)
keil基本用法
![keil基本用法](https://img.taocdn.com/s3/m/2eb32f64ce84b9d528ea81c758f5f61fb736288a.png)
keil基本用法Keil是一款全球最受欢迎的嵌入式软件开发工具,它由德国公司Keil开发。
它有很多的优势,可以开发ARM/Cortex-M系列的单片机以及其他软件。
下面我们就去看看Keil的基本用法。
1.建立工程:建立工程有2种方法:一种是点击Keil菜单栏“文件—新建—项目”;另一种是单击KeilDesktop上的“新建工程”图标。
无论哪种方式,都会弹出对话框,让你输入所需的信息并选择你的芯片型号,然后单击“确定”按钮就可以构建一个工程了。
2.添加代码:要正确地添加代码,必须正确选择文件类型,因为Keil只允许添加C文件,不能添加其他文件。
接下来就是编辑代码,可以使用Keil自带的编辑器编辑源代码,也可以使用其他文本编辑器来编辑源代码,但是要将文件添加到Keil工程中。
3. 配置设置:这一步是编译的关键,我们必须进行基本的设置,例如MCU类型、时钟、指令集、编译器优化等,确保芯片正常工作。
4.编译:编译就是把源代码转换成可执行代码,这样就可以在芯片上运行,编译前需要检查一遍代码,来保证代码的正确性,然后点击工具栏“编译”按钮,即可开始编译。
5.下载:下载就是把编译好的可执行代码通过串口或JTAG等下载到单片机中,以便运行,Keil支持通过以太网下载,也可以通过串口或者JTAG下载,只需点菜单栏的“下载”按钮,就可以下载到单片机了。
6.调试:调试是检查代码的重要环节,可以使用Keil自带的Debuger和Simulator来进行调试,Debuger可以发起调试请求,检查芯片状态,而Simulator可以模拟单片机的指令,从而更好地调试代码。
总结:Keil的基本用法就是建立工程,添加代码,配置设置,编译,下载,调试。
Keil是一款非常好用的强大工具,可以很好地帮助我们开发出高质量的程序,更多Keil用法就可以参考官网上相关教程进行学习了。
keilforarm工程建立-5页word资料
![keilforarm工程建立-5页word资料](https://img.taocdn.com/s3/m/1d8ae69c172ded630b1cb6c0.png)
Keil MDK的安装与工程建立KEIL MDK开发工具源自德国 Keil 公司,被全球超过 10 万的嵌入式开发工程师验证和使用,是ARM公司目前最新推出的针对各种嵌入式处理器的软件开发工具。
KEIL MDK 集成了业内最领先的技术,包括μVision4集成开发环境与RealView 编译器。
支持ARM7、ARM9和最新的Cortex-M3/M1/M0 内核处理器,自动配置启动代码,集成Flash 烧写模块,强大的 Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView 编译器的最新版本可将性能改善超过20%。
KEIL MDK出众的价格优势和功能优势,已经成为ARM软件开发工具的标准,目前,KEIL MDK在国内ARM开发工具市场已经达到90%的占有率。
KEIL MDK为我们带来了哪些突出特性呢?1.启动代码生成向导启动代码和系统硬件结合紧密,必须用汇编语言编写,因而成为许多工程师难以跨越的门槛。
KEIL MDK的μVision4工具可以帮您自动生成完善的启动代码,并提供图形化的窗口,随您轻松修改。
无论对于初学者还是有经验的开发工程师,都能大大节省时间,提高开发效率。
2.软件模拟器,完全脱离硬件的软件开发过程KEIL MDK的设备模拟器可以仿真整个目标硬件,包括快速指令集仿真、外部信号和I/O 仿真、中断过程仿真、片内所有外围设备仿真等。
开发工程师在无硬件的情况下即可开始软件开发和调试,使软硬件开发同步进行,大大缩短开发周期。
而一般的 ARM 开发工具仅提供指令集模拟器,只能支持 ARM 内核模拟调试。
3.性能分析器KEIL MDK的性能分析器好比哈雷望远镜,让您看得更远和更准,它辅助您查看代码覆盖情况,程序运行时间,函数调用次数等高端控制功能,指导您轻松的进行代码优化,成为嵌入式开发高手。
通常这些功能只有价值数千美元的昂贵的Trace工具才能提供。
4.Cortex-M3/M1/M0 支持KEIL MDK支持的Cortex-M3/M1/M0系列内核是ARM公司最新推出的针对微控制器应用的内核,它提供业界领先的高性能和低成本的解决方案,未来几年将成为 MCU 应用的热点和主流。
应用Keil进行程序的编译主要步骤为
![应用Keil进行程序的编译主要步骤为](https://img.taocdn.com/s3/m/cc0cc138f111f18583d05ac0.png)
应用Keil进行程序的编译主要步骤为:
1、创建C程序并保存为c文档。
2、新建立工程文件并选择位置保存起来
3、工程保存后选择CPU型号89C51。
4、在创建的工程管理页面左上角点击Source Group1,再右击鼠标选择“Add
File to Group …Source Group1‟”,添加之前保存好的c文档文件。
5、添加后双击文件名3.c,就能够打开程序代码。
6、设置工程属性,在Output选项卡中要把“Creat Hex Fi”选择上。
7、工程设置好之后,点击进行编译、连接和产生目标hex文件。
成功编译后,就可以通过编程器将生成的hex目标文件烧录进去单片机中运行了。
4.4仿真结果
系统上电时间显示15分00秒,甲乙两队分数都是0。
这时可以设置比赛时间按add1 3下,将分钟调到18,按add2 30下将秒调到30。
按下运行按钮,时间开始倒计时。
如果运行后按下甲加,或者乙加,对应的队分数将会加上去。
时间还是设置18分30秒,上场的分数不会丢失。
按运行,又开始倒计时比赛时
间到,喇叭会叫。
keil的编译过程
![keil的编译过程](https://img.taocdn.com/s3/m/c1f8916bdc36a32d7375a417866fb84ae45cc3c0.png)
keil的编译过程Keil是一款由德国公司Keil GmbH开发的集成开发环境(IDE),主要针对嵌入式系统开发。
它基于ARM、C51、C251和C166处理器架构。
Keil的编译过程主要包括以下几个步骤:1. 文件处理:首先,Keil会读取项目文件(.uvp)中的源文件(.c或.cpp),并对它们进行预处理。
预处理包括替换宏、声明头文件和处理条件编译等。
2. 编译预处理:接下来,Keil使用ARM编译器对预处理后的源文件进行编译。
编译过程中,编译器会将源代码转换为目标代码(.o文件)。
此外,编译器还会处理汇编代码、链接符号地址以及生成重定位信息等。
3. 汇编处理:如果项目中包含汇编文件(.asm),Keil会使用ARM 汇编器对汇编文件进行编译。
编译完成后,汇编器将生成汇编代码(.o 文件)。
4. 链接处理:在编译和汇编完成后,Keil会使用ARM链接器对目标文件进行链接。
链接过程中,链接器会合并多个目标文件,消除重定位,生成最终的可执行文件(.elf或.axf)。
此外,链接器还会处理库文件(.lib)和启动代码(.res)等。
5. 生成输出文件:最后,Keil会生成输出文件,如Makefile、HTML 文档、调试信息等。
这些输出文件可以帮助开发者更好地理解和调试项目。
6. 调试:Keil还提供了丰富的调试工具,如MDK-ARM Debugger、Simulator等。
开发者可以在调试过程中查看代码执行状态、实时数据和硬件资源等信息,以便找出潜在问题并加以解决。
总之,Keil的编译过程涵盖了文件处理、编译预处理、汇编处理、链接处理、生成输出文件和调试等多个环节。
通过这些步骤,Keil为嵌入式系统开发者提供了一个高效、便捷的开发环境。
ARM的KEIL工程建立及编译过程
![ARM的KEIL工程建立及编译过程](https://img.taocdn.com/s3/m/f1b133d349649b6648d74732.png)
ARM的KEIL工程建立及编译过程第一步:新建工程点击Project-new uvision Project新建工程,注意工程名没有后缀。
点是,自动生成启动代码,否,要自己写启动代码。
第二步:自己写c程序(用户程序):点击File-New新建文件:注意文件名尾缀为.c。
第三步:添加C文件选中Source Group1点击右键,进行文件添加。
第四步:COPY三个文件:(第一个是用户程序,自己写就不需要添加,最后一个如果自动生成启动代码也不需要添加)Ext_RAM.ini和RuninRAM.sct必须添加。
Ext_RAM.ini:J-LINK初始化脚本,必须添加。
代码执行前必须要初始化CPU内部的一些寄存器。
该文件就是做初始化工作,给J-LINK用。
J-LINK通过读取该配置文件,初始化目标板主CPU相关的寄存器。
RuninRAM.sct:代码编译时需要的链接文件,其主要作用就是组织代码的到该脚本指定的地址。
S3C2440A.s:初始化代码(启动代码)小知识点:RuninRAM.sct:代码分析;*************************************************************;***Scatter-Loading Description File generated by uVision***;*************************************************************;Run in RAMLR_ROM10x30000000{;load region程序运行起始地址。
内存起始地址固定0x30000000ER_ROM10x300000000x0040000{;load address=execution address程序的下载地址,及程序容量*.o(RESET,+First)*(InRoot$$Sections).ANY(+RO)}RW_RAM10x300400000x0040000{;RW data RW段起始地址.ANY(+RW+ZI)}RW_IRAM10x400000000x00001000{//芯片内部4k sram空间,固定式0x40000000开始。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ARM 的KEIL 工程建立及编译过程 精简:1)添加:Ext_RAM.ini 和RuninRAM.sct; 2)选中,去掉3)注意LOAD 1.axf INCREMENTAL // Download program 这个名要与工程名保持一致。
第一步:新建工程点击Project-new uvision Project 新建工程,注意工程名没有后缀。
点是,自动生成启动代码,否,要自己写启动代码。
第二步:自己写c 程序(用户程序):点击File-New 新建文件:注意文件名尾缀为.c。
Un Re gi st er ed第三步:添加C 文件选中Source Group1点击右键,进行文件添加。
第四步:COPY 三个文件:(第一个是用户程序,自己写就不需要添加,最后一个如果自动生成启动代码也不需要添加)Ext_RAM.ini 和RuninRAM.sct必须添加。
Ext_RAM.ini :J-LINK 初始化脚本,必须添加。
代码执行前必须要初始化CPU 内部的一些寄存器。
该文件就是做初始化工作,给J-LINK 用。
J-LINK 通过读取该配置文件,初始化目标板主CPU 相关的寄存器。
RuninRAM.sct:代码编译时需要的链接文件,其主要作用就是组织代码的到该脚本指定的地址。
S3C2440A.s:初始化代码(启动代码) 小知识点:RuninRAM.sct:代码分析Un Re gi st er ed; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAMLR_ROM1 0x30000000 {; load region 程序运行起始地址。
内存起始地址固定0x30000000 ER_ROM1 0x30000000 0x0040000 { // 0100; load address = execution address 程序的下载地址,及程序容量 *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) }RW_RAM1 0x30040000 0x0040000 { ; RW data RW 段起始地址 .ANY (+RW +ZI) }RW_IRAM1 0x40000000 0x00001000 {//芯片内部4k sram 空间,固定式0x40000000开始。
.ANY (+RW +ZI) } }第五步:配置Un Re gi st er ed点击在target 选项中如图进行设置,注意Xtal:设置的时钟频率只是仿真时有用。
在OUTPUT 选项中选中HEX FILE。
Listing、User、C/C++、Asm 选择默认即可 Linker 安装如下进行设置Debug 安装如图进行设置Un Re gi st er ed点击Utilities:安装如下进行设置。
Update target before debugging:选中每次自动更新flash,如果程序在内存中运行要去掉。
第六步:通过keil 下载程序到norflash:如果要烧写到flash 需要点击setting 后点击ADD 进行添加响应的norflash 型号。
Un Re gi st e r ed注意:不建议用该方法进行程序烧写,因为有时候可能导致程序经常复位,可能是keil 自身编译器问题。
第七步:如果用J-LINK 仿真调试时需要将:Ext_RAM.ini 里面的:Init(); // Initialize memoryLOAD 1.axf INCREMENTAL // Download program 这个名要与工程名保持一致。
PC = 0x30000000; // Setup for Running// g, main // Goto MainUn Re gi st er ed第八步:如果要烧写程序,需要先将keil的修改如下:; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAMLR_ROM1 0x30000000 { ; load regionER_ROM1 0x30000000 0x0200000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) }RW_RAM1 0x30800000 0x0800000 { ; RW data .ANY (+RW +ZI) }RW_IRAM1 0x40000000 0x00001000 { .ANY (+RW +ZI) } }修改为:; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* ; Run in RAMLR_ROM1 0x00000000 { ; load region 程序存放到norflash 中。
ER_ROM1 0x00000000 0x0200000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) }RW_RAM1 0x30800000 0x0800000 { ; RW data .ANY (+RW +ZI) }RW_IRAM1 0x40000000 0x00001000 { .ANY (+RW +ZI) } }然后再编译生成hex 烧录代码,然后通过J-LINK 烧写即可。
Un Re gi st er edADS 到KEIL 过程:第一步:新建工程:点击 "否"第二步:修改工程名及分组名、添加文件在添加文件前需要将ads 目录下的inc 、lib 、main.c 复制到新建的KEIL 工程中。
然后编译。
Un Re gi st er e d第三步:配置:Listing 默认:U n Re g i st er edderetsigeRnUderetsigeRnU在2440init.s 中修改修改原因:因为ads 和keil 编译环境不一样,所以要修改,声明这些变量的来源 IMPORT |Image$$ER_ROM1$$RO$$Base| ; Base of ROM code 代码段起始地址 IMPORT |Image$$ER_ROM1$$RO$$Limit| ; End of ROM code (=start of ROM data)代码段结束地址 IMPORT |Image$$RW_RAM1$$RW$$Base| ; Base of RAM to initialise ;rw 段起始地址 IMPORT |Image$$RW_RAM1$$ZI$$Base| ; Base and limit of area zi 起始地址 IMPORT |Image$$RW_RAM1$$ZI$$Limit| ; to zero initialise zi 结束地址 IMPORT:这些变量在其它文件声明,然后通过该符号导入到该文件中。
(这些变量是在KEIL 编译器中)U n Re gi st e r ed使用这些变量将Init 修改为RESET (目的是与runinram.sct 里面的保持一致)。
KEIL 常见小技巧:怎样恢复默认界面:点击WINDOW---Reset View to Defaults 即可。
U n R e gi st er ed自动隐藏编译窗口:点击小喇叭,即可隐藏,再点击就固定。
如果隐藏了想看可以将鼠标移到左下脚即可自动弹出,鼠标移开编译窗口自动隐藏。
Un Re gi st er ed。