ARM的KEIL工程建立及编译过程
keil4建立ARM(STM32)工程和设置

此篇根据个人的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模板的说明

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工程的建立以及简单程序的编写下载相关软件及硬件实验平台单片机系统设计主要包括硬件设计和软件设计,对于单片机初者来说主要在于软件的学习,也就是程序设计,等大家程序这块掌握得差不多了,再去结合具体的项目学习做硬件,最终掌握单片机系统设计的方法。
而在进行软件学习的时候需要用到单片机实验板进行实验验证,实验板建议直接购买,当然如果电子技术基础好的话,自己做板也是可以的。
这次教程开发程序所用到的软件为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工程建立步骤点击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工程操作步骤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项目一、背景介绍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 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 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、编译。
- 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。