使MDK3.80A既能编译ARM又能编译51
51转向ARM
转载:对51转到ARM的新人的一些建议[ 2011-5-4 6:19:00 | By: 大石头 ]看到坛子里有很多人在问51转到arm该如何如何。
我说说自己的经验吧。
我以前一直用的是51,不过一直是C51,对C已经有10多年的经验,汇编用的很少。
后来因为项目需要转到了arm。
一开始对arm什么都不懂,看了本《ar m体系结构与编程》也是云里雾里的。
但是也许是因为无知者无畏吧,我直接就在mdk中建立一个工程,添加了自带的启动文件,然后做了个main函数,里面一个死循环没有操作任何硬件,居然跑起来了。
然后以此为基础,慢慢的开始控制GPIO和串口通信,当时突然发现,我的项目不就是搞搞这些吗?其他的什么运行模式、什么链接寄存器、什么PC寄存器关我鸟事,我只要能控制外设就行了。
至于它是怎么实现的,那是编译器和链接器的事情。
现在回头想想开发arm还是很简单的,特别是使用mdk的话,会c也就能做一些简单的开发了。
不要被那些稀奇古怪的东西给搞糊涂了。
边开发边学习,项目做深了,那些东西自然就懂了。
我们公司来了新人,我一般就叫他做个简单的东西,比如按键、串口等,做完也就差不多会了。
罗嗦这么久说几点建议吧:1.arm的汇编没必要去精通的,能够大概看懂就行了。
我一般在调试的时候才需要看看。
如果一个速度要求苛刻到需要你使用汇编的话,我认为可能你更需要的是转变思路,修改算法。
比如使用查表代替计算等。
我做了5年arm开发,完成了n个项目,至今没写过一句汇编。
2.工业控制方面因为有实时性和成本要求,我一般不使用操作系统,但我会自己实现一些内存管理,事件管理,邮箱之类的东西。
这些需要时间积累,平时写程序注意尽量通用化,然后建立自己的库,以后再用就爽了。
以前使用过一些操作系统,发现并没有提高我的开发速度,而且还造成了调试困难的问题,出了bug 找都没法找。
3.对于公司来说,如果项目很大需要用到操作系统、网络、gui、文件系统等,自己做还不如直接买个板子,人家都已经做好了,而且bug很少,自己只要做应用就行了。
怎样让Keil软件同时兼容51单片机和ARM单片机的问题
怎样让Keil软件同时兼容51单片机和ARM单片机的问题佚名来源:本站原创点击数: 8301 更新时间:2013年08月04日【字体:大中小】相信学ARM的童鞋大多数都是先学过51的,你如果用Keil这样的编译环境的话,也许你会发现之前学校51的Keil开发环境无法兼容ARM,或者你在做项目,同时要用到Keil开发51单片机和ARM单片机,这个时候就开始无奈了,发现装了keil C或ADK 里面都只有51或者ARM一种单片机核可供选。
难道要我们分别安装这两个软件?答案是不可取的,经过了解,KEIL公司是被ARM公司收购了,自从是一家人以后,它们总该相处得好点吧,至少兼容问题总不能自家人排斥自家人,那就太不够意思了,呵呵。
这几天因为公司的破电脑只有 10G的C盘空间被我装软件以与桌面上放的各种文件给填满了,所以打算把一些软件移到其它盘,删除了KEIL软件以后,发现之前可以同时编译51和ARM 的keil夭折了,所以自己研究了一下,把它的过程记录下来留着以后可作参考。
具体方法如下:第一步到.51hei./下载并安装Keil C:直接找开Keil C一直下一步,中间填下SN码,这个在破解的KEIL C软件里面都会有的。
安装完成后的环境如下:第二步把上图Tools文件用文本的方式打开并复制里面的容保存起来,容如下:[C51]BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes")BOOK1=HLP\GS51.PDF("uVision2 Getting Started")BOOK2=HLP\C51.PDF("C51 User's Guide")BOOK3=HLP\C51LIB.CHM("C51 Library Functions",C)BOOK4=HLP\A51.PDF("Assembler/Utilities")BOOK5=HLP\TR51.CHM("RTX51 Tiny User's Guide")BOOK6=HLP\DBG51.CHM("uVision2 Debug mands")BOOK7=ISD51\ISD51.HTM("ISD51 In System Debugger")BOOK8=HLP\FlashMon.CHM("Flash Monitor")BOOK9=MON390\MON390.HTM("MON390: Dallas Contiguous Mode Monitor")TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")TDRV2=BIN\MON390.DLL ("MON390: Dallas Contiguous Mode")TDRV3=BIN\LPC2EMP.DLL ("LPC900 EPM Emulator/Programmer")RTOS1=RTXTINY.DLL ("RTX-51 Tiny")RTOS2=RTX51.DLL ("RTX-51 Full")Version=V7.0PATH="D:\Keil\C51"SN=K1DZP-5IUSH-A01UE我用的软件兼容性还是蛮好的,里面有C251,,,C51的声明段,因为我只要用到51和ARM兼容,所以我只把C51的代码复制下来就行了。
Keil C51与MDK-ARM并存方法
Keil C51与MDK-ARM并存方法本历程系统及软件相关版本:
先安装Keil C51,如下图所示:
默认安装位置为C:\Keil,可以自己更改。
然后安装MDK-ARM,如图所示:
此时选择与Keil C51相同的安装位置,下一步继续安装,安装过程中会弹出下面对话框:
此时点击Replace All,安装程序会用MDK-ARM的程序替换掉刚才安装的Keil C51的程序。
安装完成后,返回桌面,双击桌面上的图标,打开Keil主程序,点击主
菜单File>License Management,如下图所示
出现如下图所示的许可证管理界面,可以看到已安装的程序有两个(下图方框1中):
1)RealView MDK-ARM
2)PK51 prof. Develpers Kit
而这两个程序都是没有激活的。
接下来打开Keil的注册机,将上图方框2中的Computer ID(即CID)复制,粘贴到注册机中的CID文本框中,如下图:
1
2
Target C51,Prof. Devolopers Kit保持不变,点击Generate生产序列号,将得到的序列号复制粘贴到License Management当中,按下图顺序点击
同样的操作,将注册机中的Target改为ARM,下面改为RealView MDK Professional,将生产的序列号复制粘贴到License Management当中,两个版本的程序激活成功,并且能完美共存,如下图。
1
2 3。
51单片机ad转换程序解析
51单片机ad转换程序解析1.引言1.1 概述概述部分旨在介绍本篇文章的主题——51单片机AD转换程序,并对文章的结构和目的进行简要说明。
51单片机是指Intel公司推出的一种单片机芯片,它广泛应用于嵌入式系统中。
而AD转换则是模拟信号转换为数字信号的过程,是嵌入式系统中的重要功能之一。
本文将详细解析51单片机中的AD转换程序。
文章结构分为引言、正文和结论三个部分。
引言部分将给读者介绍本篇文章的内容和结构安排,正文部分将详细讲解51单片机AD转换程序的相关要点,而结论部分将总结正文中各个要点的内容,以便读者能够更好地理解和掌握51单片机AD转换程序的实现原理。
本文的目的在于向读者提供一份对51单片机AD转换程序的详细解析,使读者能够了解51单片机的AD转换功能以及如何在程序中进行相应的设置和操作。
通过本文的学习,读者将掌握如何使用51单片机进行模拟信号的采集和处理,为后续的嵌入式系统设计和开发提供基础。
在下一节中,我们将开始介绍文章的第一个要点,详细讲解51单片机AD转换程序中的相关知识和技巧。
敬请期待!1.2 文章结构文章结构部分主要是对整篇文章的框架和内容进行介绍和归纳,以帮助读者更好地理解文章的组织和内容安排。
本文以"51单片机AD转换程序解析"为主题,结构分为引言、正文和结论三个部分。
引言部分主要包括概述、文章结构和目的三个方面。
首先,通过对单片机AD转换程序的解析,来讲解其实现原理和功能。
其次,介绍文章的结构,帮助读者明确整篇文章的主要内容和组织方式。
再次,阐明文章的目的,即为读者提供关于51单片机AD转换程序的详尽解析和指导,帮助读者深入了解该技术并进行实际应用。
正文部分则分为两个要点,即第一个要点和第二个要点。
第一个要点可以从AD转换的基本概念入手,介绍51单片机AD转换的原理和流程。
包括输入电压的采样、AD转换器的工作原理、ADC的配置和控制等方面的内容。
在此基础上,深入解析51单片机AD转换程序的编写和调用方法,包括编程语言、寄存器的配置、数据的获取和处理等。
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调试 汇编语言
keil调试汇编语言(实用版)目录1.概述2.Keil 调试汇编语言的基本步骤3.Keil 调试汇编语言的优点4.应用实例5.总结正文1.概述汇编语言是一种低级编程语言,它使用计算机处理器能够理解的指令集。
尽管汇编语言在编写程序时具有很高的灵活性和控制能力,但它的语法较为复杂,编写难度较大。
Keil 是一款集成开发环境 (IDE),能够帮助程序员更轻松地编写、调试和运行汇编语言程序。
2.Keil 调试汇编语言的基本步骤使用 Keil 调试汇编语言程序可以分为以下几个基本步骤:(1) 创建一个新的 Keil 工程,并将汇编语言源代码文件添加到工程中。
(2) 使用 Keil 的编辑功能,编写或修改汇编语言代码。
(3) 在 Keil 中配置调试器,以适应目标处理器和硬件平台。
(4) 使用 Keil 的调试功能运行程序,并观察程序的执行过程和结果。
(5) 根据需要,修改汇编语言代码,并重复执行上述步骤,直到程序运行正确。
3.Keil 调试汇编语言的优点使用 Keil 调试汇编语言程序具有以下几个优点:(1)Keil 的集成开发环境提供了方便的编辑、调试和运行功能,使得编写和调试汇编语言程序变得更加简单和高效。
(2)Keil 支持多种处理器和硬件平台,使得其适用于不同的应用场景和需求。
(3)Keil 的调试功能可以实时观察程序的执行过程和结果,便于程序员发现和定位问题。
4.应用实例假设我们要使用汇编语言编写一个简单的程序,该程序在屏幕上显示“Hello, World!”。
我们可以按照以下步骤使用 Keil 调试汇编语言程序:(1) 创建一个新的 Keil 工程,并将汇编语言源代码文件添加到工程中。
(2) 使用 Keil 的编辑功能,编写汇编语言代码如下:```ORG 00hMOV AH, 09hMOV DX, OFFSET HelloWorldINT 21hHelloWorld DB "Hello, World!$"```(3) 在 Keil 中配置调试器,以适应目标处理器和硬件平台。
A51(C51)编译步骤
`一、KeilC51编译环境安装1. 双击开始安装2. 打补本。
将文件复制到C:\Keil\C51\BIN目录中,并双击运行点按钮运行完成后点退出。
3、破解双击快捷方式图标启动KeilC51编译器选择File菜单下的License Management,打开License Managemen窗口然后运行破解程序:选MCU type为51, 并勾上External CID, 然后将License Managemen窗口中的CID复制过来再点Generate按钮生成注册码:将注册码复制到License Managemen窗口中点Add LIC按钮显示*** LIC Added Sucessfully ***表示已经注册成功到此,编译器安装完成。
二、新建工程及工程设置下面以SJ4000DT代码为例进行说明:1.首先建立工程目录在E盘建一个文件夹,命名为SJ4000DT,并将A51源程序复制进来:2.运行KeilC51编译器,选Project\New\uVision Project菜单在打开的窗口中选择工程目录路径,并输入工程文件名,点保存按钮:然后出现器件选择窗口,选择Intel的8032AH点确定后弹出选框,选”否”3. 将A51源文件加入到工程点左边Project Workspace中的“+”号,展开在Source Group 1上点右键,在菜单中选Add Files to Group ‘Source Group 1’选择文件类型为Asm Source file(*.s*;*.src;*.a*)框选.a51源文件点Add按钮,后再点Close.文件就已经加到新建的工程了:4. 工程设置点Options for Target图标弹出窗口:切换到Output选项页,勾选Create HEX File点确定按钮,配置完成。
三、编译源文件生成可烧写芯片的目录文件1.编译打开工程后,点击即可进行编译编译完成后,下方的信息窗口中会显示出编译情况2. 目标文件编译器编译后,生成的最终目标文件为.hex格式的文件。
ARM汇编语言编程详解
ARM汇编语言编程详解作者:机器人小助手摘要:本文旨在为读者提供一份详细的ARM汇编语言编程指南。
在介绍ARM汇编语言的基础知识后,我们将深入讨论ARM指令集的不同类型、寻址方式、寄存器的使用以及常见的编程技巧。
通过本文的学习,读者将能够深入了解ARM汇编语言的编程思想,并能够编写高效的ARM汇编语言程序。
一、ARM汇编语言简介ARM汇编语言是一种低级的程序设计语言,用于编写针对ARM架构的机器码指令。
它是一种类似于其他汇编语言的文本格式,用于表达机器指令和操作数。
通过编写ARM汇编语言程序,我们可以直接控制计算机的硬件资源,实现高效的程序执行。
二、ARM指令集概述ARM指令集是一套针对ARM架构的机器指令集合,包含多条不同功能的指令。
根据指令的功能和操作对象的不同,ARM指令可以分为数据处理指令、分支跳转指令、访存指令以及其他特殊指令。
1. 数据处理指令数据处理指令用于对操作数进行算术运算、逻辑运算、移位操作等。
这些指令可以对寄存器中的数据进行操作,并将结果存储回寄存器。
常见的数据处理指令有加法、减法、乘法、比较以及逻辑运算等。
2. 分支跳转指令分支跳转指令用于控制程序的流程,可以根据条件进行无条件跳转或有条件跳转。
通过分支跳转指令,我们可以实现程序的循环、条件分支等逻辑。
3. 访存指令访存指令用于读取或写入内存中的数据。
ARM汇编语言提供了多种不同的寻址方式,可以根据操作对象的不同进行选择。
使用访存指令,我们可以实现数据的存储和加载操作。
三、ARM汇编语言编程基础在进行ARM汇编语言编程时,我们需要了解一些基本的编程知识和技巧。
1. 寄存器的使用ARM架构提供了多个通用寄存器,用于存储临时数据。
在编写ARM汇编语言程序时,我们需要灵活使用寄存器,将数据加载到寄存器中进行计算,然后将结果保存回寄存器或内存。
2. 标志位的使用ARM架构提供了一组标志位,用于记录程序执行的状态和结果。
通过检查标志位的值,我们可以进行条件分支和判断,实现程序的流程控制。
MDK3.80A安装手册
1.安装KEIL 3.80A.
待安装完成后,在桌面出现如下图标
(Keil uVision3):
2.双击该图标,出现MDK 的启动界面,默认打开了一个示例工程.得到如下界面:
3.选择:File->License Management.弹出如下对话框:
复制右边Computer ID 下面的CID 号.
4.运行:注册.exe
Target 选择:ARM
A L I E N T E K M i n i S T M 32 开发板 w w w .o p e n e d v .c o m
第三个对话框选择:RealView MDK Professional
复制CID到CID对话框,点解Generate.得到LIC.如下图所示:
5.复制LIC到MDK License Management对话框的New License ID Code(LIC)框下,点击Add LIC.如下图所示:
A L I E
N T
E K
M i
n i
S T
M3
2
开
发
板w w
w.
o p
e n
e d
v.
c o
m
可以看到下面的框提示LIC Added Sucessfully.从红色圈里面可以知道,这次注册可以一直用到2020年8月.
6.完成注册.
2010-5-3
A L I E
N T
E K
M i
n i
S T
M3
2
开
发
板w w
w.
o p
e n
e d
v.
c o
m。
ARM题库(附答案)
ARM题库(附答案)一、判断题(共100题,每题1分,共100分)1.循环冗余码校验的基本原理是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。
A、正确B、错误正确答案:A2.引导程序一般由c语言编写,应用程序一般由汇编语言编写A、正确B、错误正确答案:B3.典型嵌入式操作系统是不包括Android的。
A、正确B、错误正确答案:B4.滤波电路采用了8个0.1uF的电容(C12-C19)并联,为CPU电源提供滤波功能。
A、正确B、错误正确答案:A5.小端对其是指多字节的数据在存储器中存储时是低地址存储高有效位。
A、正确B、错误正确答案:B6.当STM32的I/O端口为输入时,输出缓冲器被禁止A、正确B、错误正确答案:A7.S3C2410X是32位处理器A、正确B、错误正确答案:A8.STM32三种启动模式对应的存储介质均是芯片内置A、正确B、错误正确答案:A9.全双工制式是指通信双方均设有发送器和接收器,且信道划分为发送信道和接收信道A、正确B、错误正确答案:A10.嵌入式系统的特点包括专用性强,可靠性低,生命周期长等特点A、正确B、错误正确答案:B11.串行通信按照数据传送方向分为单工制式,半双工制式,全双工制式.A、正确B、错误正确答案:A12.Coryex-R系列的关键特性为高性能,实时,安全,经济实惠。
A、正确B、错误正确答案:A13.晶振一般叫作晶体谐振器,是一种机电器件。
A、正确B、错误正确答案:A14.STM32串口既可以工作在异步模式也可以工作在同步模式下。
A、正确B、错误正确答案:A15.STM32芯片CPU工作时最高温度为-40—85°CA、正确B、错误正确答案:A16.在中断系统的设计中,中断源产生中断请求,对应的中断标志位就会被置位。
在中断服务程序中,要将对应的中断标志位用软件清零。
A、正确B、错误正确答案:A17.程序运行过程中的资源可以是显示器,键盘,但不可以是一个数组或者变量A、正确B、错误正确答案:B18.GPIO_Mode_IPD表示下拉输出A、正确B、错误正确答案:A19.在计算机系统中,电源故障、内存出错、总线出错等是不可屏蔽中断。
奋斗开发板MINI入门手册
奋斗版STM32开发板MINI入门手册基础知识篇作为STM32的初学者,首先需要了解硬件资源, STM32是意法半导体推出的基于CoreTex-M3内核的32位ARM, 目前主要有5个系列、奋斗版STM32开发板的MINI及V3选用了STM32F103VET6作为开发板的MCU。
这个芯片属于STM32F103系列的高容量芯片, QFP100封装, 主要特征:64K片内SRAM 512K片内FLASH。
具有FSMC接口(并行外设外设接口,TFT模块就是通过这个连接的),SDIO 4位接口(SD 卡的专用接口,速度更高)。
之所以选用这个芯片作为开发板的MCU,主要是基于以下几点:1-------容量大,是STM32系列里,容量最大的芯片2-------体积适中 QFP100脚封装,从大型设备到手持设备都可以选用。
3-------FSMC接口 由于板上设计有TFT模块, 因此选用具有FSMC接口的芯片是必然的。
4-------SDIO接口 作为一个嵌入式的平台,大容量SD存储是必须考虑的, 可以在SD上建立文件系统及大容量文件存取。
5-------性价比高, 该芯片的批量采购价格在30元左右,渠道稳定,适合工程选用。
很多用户先前都是从51平台转过来的, 对单片机的经验还停留在51带给我们的简单易用上,51单片机的资源简单,且口线定义唯一。
相对高端的51型单片机(如SILICON C8051F系列,AVR等)可以做到一定的口线复用(就是一个口线可以具有多种复用功能),51在处理对计算速度及控制速度相对不高的应用,还是具有很好的性价比及应用性。
近几年,随着应用技术的发展, 产品对嵌入式技术要求越来越高,51单片机已经不能满足复杂嵌入式应用要求, 在ARM技术发展过程中,coretex-M3内核应运而生,它的各项能力使得它成为微控领域之王,STM32是这种内核的产物, 是目前coretex-M3内核平台里最具性价比的平台,可以预见,未来几年里,STM32会很快占据微控平台市场。
KEIL中三种编译模式以及对变量空间的影响
KEIL中三种编译模式以及对变量空间的影响三条控制命令:SMALL,COMPACT,LARGE,它们对变量存储器空间的影响如下。
SMALL:所有变量都被定义在80的⽚内RAM中,对这种变量的访问速度最快。
另外,堆栈也必须位于⽚内RAM中,⽽堆栈的长度是很重要的,实际栈长取决与不同函数的嵌套深度。
采⽤SMALL编译模式与定义变量时指定data存储器类型具有相同效果。
COMPACT:所有变量被定义在分页寻址的⽚外XRAM中,每⼀页⽚外XRAM的长度为256字节:即所有变量存储在⽚外XRAM的某⼀页中。
这时对变量的访问是通过寄存器间接寻址(MOVX @R0,MOVX @R1)进⾏的,变量的低8位地址由R0和R1确定,变量的⾼8位地址由P2⼝确定。
采⽤这种模式时,必须适当改变配置⽂件STARTUP.A51中的参数:PDATASTART和PDATALEN;同时还必须对uVision2的“Options选项/BL51 Locator 标签页/Pdata框”中键⼊合适的地址参数,以确保P2⼝能输出所需要的⾼8位地址。
采⽤COMPACT编译模式与定义变量时指定pdata存储器类型具有相同效果。
LARGE:所有变量被定义在⽚外XRAM中(最⼤可达64KB),使⽤数据指针DPTR来间接访问变量(MOVX @DPTR),这种编译模式对数据访问的效率最低,⽽且将增加程序的代码长度。
采⽤LARGE编译模式与定义变量时指定xdata存储器类型具有相同效果。
Note:1、在程序中定义的变量,若不指定其存储区域(data、idata、xdata等),则系统⾃动存放到上述编译模式指定的存储区。
2、在指定编译器编译模式情况下,要想将变量存放在其他区域,可指定变量修饰类型。
(假设指定为small模式,则默认变量存储在⽚内RAM区,此时可指定变量为idata类型,即可将其存放在⽚外RAM中)3、同⼀段代码,在不同编译模式下,编译出的代码code⼤⼩为:small < compact < large。
ARM汇编与C语言混合编程
"CLI":
:"memory")
▪ 汇编语句模板
▪ 汇编语句模板由汇编语句序列组成,语句 之间使用“;”、“\n”或“\n\t”分开。指令中 的操作数可以使用占位符引用C语言变量, 操作数占位符最多10个,名称如下:%0, %1…,%9
The assembler instructions, defined as a single string constant: "mov %0, %1, ror #1"
ldr r3, [sp, #0] mov r3, r3, ror #1 str r3, [sp, #4]
▪ You can add the volatile attribute to the asm statement to instruct the compiler not to optimize your assembler code.
S, D
&
%
I
表示内存单元
表示任何通用寄存器
表示寄存器eax, ebx, ecx,edx之一
表示直接操作数
表示浮点数
表示“任意”
表示要求使用寄存器eax/ax/al, ebx/bx/bl, ecx/cx/cl或edx/dx/dl 表示要求使用寄存器esi或edi
该输出操作数不能使用过河 输入操作数相同的寄存器 该操作数可以和下一个数交 换位置,如add
▪ "r" (value)
▪ 修改部分(modify):这部分常常以 “memory”为约束条件,以表示操作完成 后内存中的内容已有改变,如果原来某个 寄存器的内容来自内存,那么现在内存中 这个单元的内容已经改变。
Keil ARM C51下载安装破解使用详解教程
Keil ARM C51下载安装破解使用详解教程2010-01-09 22:47:29 来源:互联网电子工程师论坛简介: C51年代顶顶大名的Keil公司,被ARM公司收购了,应该要收购啦!想想ADS是多么的难用啊!其实以后也比较少用到Keil ARM来开发了,因为如果不跑操作系统,WINDOWS下的集成开 ...C51年代顶顶大名的Keil公司,被ARM公司收购了,应该要收购啦!想想ADS是多么的难用啊!其实以后也比较少用到Keil ARM来开发了,因为如果不跑操作系统,WINDOWS下的集成开发环境就选择Keil RealView Microcontroller Development Kit(简称MDK-ARM,最新版本是Vers ion 3.05a)+H-jtag代理仿真。
linux下就是交叉编译了,wince当然是PB跟EVC了,这两日以后再详细谈,现在先来谈谈MDK-ARM的下载,安装,破解,使用!下载很多人会到处在下载地址“跪求给我一个地址啊^_^”,到电驴去找keil就找到一堆了,先自己装个keil uvision来装一下,是为了得到自己本机的CID(computer ID),安装完成后,打开uvision3,在file菜单下,点解license manage ment,弹出的对话框就有CID了,用于下一步的破解喔!其实直街到主页下就好了,大模大样!前提是你要先找一个Ke il软件的序列号生成器,用来生成LIC或SN,到或用电驴搜一下Keil_li c,就可以找到了!接着就是到去下载最新的开发软件了,首先讲讲kei l ARM的整体结构吧,先贴个图,MDK-ARM开发环境已经相当完整了,包括uvision project managem ent项目管理器,c/c++ compiler编译器,macro assembler宏汇编器,RTX RTOS Libarie s (RTX实时操作系统库),Linker/Locator连接器,Debugger调试器,Device Simulati on器件仿真,Target Hardware硬件下载。
keil汇编指定编译位置
keil汇编指定编译位置摘要:1.介绍Keil 汇编的基本概念2.解释编译位置的重要性3.指导如何在Keil 汇编中指定编译位置正文:一、Keil 汇编的基本概念Keil 汇编是一种汇编语言,它是针对ARM、Thumb 和MIPS 等处理器架构的。
汇编语言是一种低级编程语言,它使用助记符来表示计算机的指令。
与高级编程语言相比,汇编语言更接近计算机硬件,因此可以更好地控制硬件和优化程序性能。
Keil 汇编是嵌入式系统开发中常用的一种汇编语言。
二、编译位置的重要性在Keil 汇编中,编译位置是指编译器将汇编语言源代码转换为目标代码(如二进制文件)的位置。
编译位置的选择会影响到编译的效率、可读性和可维护性。
因此,正确地指定编译位置对于Keil 汇编的编程工作非常重要。
三、如何在Keil 汇编中指定编译位置要在Keil 汇编中指定编译位置,需要遵循以下步骤:1.打开Keil 软件,并创建或打开一个汇编语言源代码文件(后缀名为.asm)。
2.在Keil 软件中,选择“Project”菜单下的“Options”命令,打开“Options”对话框。
3.在“Options”对话框中,选择“Editor”选项卡。
4.在“Editor”选项卡中,找到“Assembly Location”选项,并点击它。
5.在“Assembly Location”选项中,可以选择汇编语言源代码文件的编译位置。
例如,可以选择“Relative to Project”或“Absolute”等选项。
选择“Relative to Project”时,编译位置将相对于项目文件的路径;选择“Absolute”时,编译位置将相对于文件系统的根目录。
6.在选择了编译位置后,点击“OK”按钮关闭“Options”对话框。
7.保存并编译源代码文件。
编译器将根据指定的编译位置生成目标代码。
使MDK3.80A既能编译ARM又能编译51
怎样使MDK3.80A既能编译ARM又能编译51呢?另一种说法:其实就是怎样使Keil MDK3.80A和KeilC51V9.00共存于一个文件夹中。
能打开、能编译以及能调试,做到“三能”。
但是现在很多网友只能做到前面的二能。
这就是本文要解决的。
Keil MDK是ARM公司收购Keil公司以后,基于uVision 界面推出的针对ARM7、ARM9、Cortex-M0、Cortex-M1、Cortex-M2、Cortex-M3、Cortex-R4 等ARM 处理器的嵌入式软件开发工具。
Keil MDK3.80A,是目前编译最快,最好用的版本。
很多以前学C51的朋友现在又学了ARM,很多时候他们会同时使用两种芯片,可是要分开安装两个软件,很是麻烦。
很多人很想能不能在Keil MDK中也能编译C51的程序。
答案是肯定的。
单看它们的界面相似之处就感觉它们的外壳其实是一样的。
可是问题来了:把两种软件装在一起一般是C:/Keil,能打开,但是编译不了,想了各种方法,终于使它们能相互编译了,一调试,又出问题。
好,现在我们来解决这些问题。
Keil MDK3.80A+KeilC51V9.00完美结合注意:此处KeilC51使用的是V9.00版本,属于Keil uVision4;而Keil MDK3.80A却是Keil uVision3为什么呢?如果你用uVision3的MDK和uVision3的C51安装在一起,能用,能编译,可是调试的时候就出问题了。
出现了版本不兼容的错误。
这是很多人反映的问题,为什么都是uVision3却是版本不兼容呢?为什么?答案是:Keil MDK 总是比KeilC51高一个版本级别。
在级别上:MDK的uVision3 高于C51的uVision3MDK的uVision3 = C51的uVision4就是我们要用Keil MDK3.80A(uVision3)+ KeilC51V9.00(uVision4)的原因。
【开发工具】STM32开发环境使用KeilMDK同时进行51开发
【开发⼯具】STM32开发环境使⽤KeilMDK同时进⾏51开发配置51环境·:开发环境的搭建:STM32开发环境使⽤Keil MDK进⾏,那怎么使⽤MDK建⽴⼀个⼯程呢?MDK下载跳转到下载界⾯,填⼊必要的信息:然后在页⾯下⽅点击提交按钮:如果填写的信息,符合要求,在本页⾯将会显⽰下载连接:点击下载MDK(可以看到⾹农这⾥的MDK版本是MDK520,⼤概有567M的样⼦) MDK安装下载完成之后点击安装:选择安装⽬录,根据⾃⼰的需求定义,随便填⼀些⽤户信息…安装程序从当前开始安装,等待安装完成.如果提⽰安装驱动,如果需要使⽤到ULink进⾏程序的烧录调试,则选择是,如果不需要选择否就可以了。
MDK安装完成界⾯如下所⽰,点击finnish:弹出如下界⾯,取消选择show the dialog at startup,点击OK此时在界⾯左⽅的树形列表中,ALL Devices列表下,只有⼀个ARM选项,等待程序刷新获取所有的设备列表:展开设备STMicroelectronics选项,将会看到所有类型的STM32系列设备,根据需要选择对应系列的设备,笔者这⾥选择F103系列,然后可以在右边的packs下看到对应的驱动包,点击Install下载安装当前还未下载安装的驱动包,直到所有的选项驱动包安装完成,右边所有按钮变成灰⾊,关闭界⾯,此时在桌⾯上可以看到Keil MDK的快捷⽅式。
MDK破解:::⼀次⽤注册机产⽣密码,在license⾥可能不可以激活。
第⼀次运⾏⼀定要记住,要以管理员的⾝份运⾏mdk。
以管理员的⾝份运⾏,注册成功。
接下来我们就是要进⾏软件的破解了,在⽹上下载⼀个破解软件KEIL_Lic(⽹上有很多),以管理员⾝份打开我们刚刚装好的MDK软件,File–>License Management复制右边CID编辑框中的字符串,然后打开下载好的KeiL_Lic将刚刚复制的CID字符串粘贴到Keil_Lic的CID编辑框中,Target选择ARM,点击Generate按钮会在编辑框中⽣成注册码,我们将该注册码复制,并粘贴到License Management中的New License ID Code(LIC)中点击Add LIC,在下⽅的编辑框中提⽰添加成功,表⽰软件破解成功。
关于keil安装的一些基本问题(新手向)
关于keil安装的⼀些基本问题(新⼿向)说明:本⽂仅叙述keil安装中出现的⼀些⼩⽩问题,不涉及安装失败的解决办法
keil安装相关
keil C51和MDK-ARM的区别
keil是⼀个集成化的开发环境,C51提供的是C51的开发环境,MDK-ARM提供32位ARM控制器的开发环境。
C51也好,MDK-ARM也好都是keil提供的开发环境,是可以共存的.
⼀部分初学者在安装MDK-ARM后发现,⽆法编译C51程序,那就需要到keil的官⽹上下载C51的开发环境,并将其加⼊keil中,激活后,即可同时开发ARM和51单⽚机
器件⽀持包的安装
器件包的安装要在keil成功安装后进⾏
STM32有多个系列,如果要开发某⼀系列就需要下载响应的安装包,如果不安装对应的安装包可能会发⽣⽆法编译或使⽤keil的load按钮⽆法烧录程序的问题,⼀般在keil安装完成后都需要安装响应的器件⽀持包
器件⽀持包有两种安装⽅式
在线安装(以F1为例)
打开keil点击pack install
在弹出窗⼝中选择STM32F1series
点击install安装,安装完成后按钮会变为up to date
⽂件安装
选择STM32F103的固件包下载并安装即可。
51单片机开发原则
51单片机开发原则1.尽可能让变量使用占用代码空间最小的变量类型。
例如无符号字符型和位操作(8051作为一款8位处理器提供了位操作支持,而且大多数操作指令都是8位或者位操作的通常用小的数据类型去编写代码其效率更高)2.尽可能使用无符号类型数据(8051单片机不直接支持有符号的数据类型,有符号的操作需要额外的指令来支持,但是无符号的数据类型是直接就能被8051支持的) 3.尽可能选择小的存储模式即small(绝大多数的应用采用small存储模式都能满足,也可以选择large存储模式,将一些数组和结构体存入xdata或者pdata存储空间的话选择极大存储模式,注意的是keil c51实时库使用的基本指针可以工作在任何存储模式)4.当应用其他存储模式的时候尽可能将变量存储在data区域内(将变量存储在data空间里,这部分空间单片机可以直接访问,据有最高的执行效率,通常这个区域存储的是最有效率的代码)本地图片,请重新上传5.要知道如何在你的设备上使用PDATA存储模式(pdata提供的256字节的空间,使用MOVX @Ri指令访问8位地址,pdata存储空间的使用不同于8051单片机内部的设备,需要设置页寄存器。
Xdata 存储类型是通用的能达到的最大的存储空间64kb)6.尽可能使用内存类型的指针(默认的,keil c51编译器使用通用指针可以访问任何类型的内存空间,内存型的指针只能访问固定的存储空间,但是这种方式能够产生更快更小的程序代码)7.减少使用重入函数(8051系列缺乏对堆栈变量的支持,重入函数的实现通过keil c51 编译器使用一个编译时间的堆栈对内存范围内的数据内容的覆盖实现的,重入函数在8051单片机上模拟出堆栈的结构。
由于在嵌入式应用很少会用到重入函数代码,但是你在设计的过程中应尽可能的少用这种重入属性)8.使用LX51 Linker/Locate 和Linker code packing 来减少程序的体积。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
怎样使MDK3.80A既能编译ARM又能编译51呢?
另一种说法:
其实就是怎样使Keil MDK3.80A和KeilC51V9.00共存于一个文件夹中。
能打开、能编译以及能调试,做到“三能”。
但是现在很多网友只能做到前面的二能。
这就是本文要解决的。
Keil MDK是ARM公司收购Keil公司以后,基于uVision 界面推出的针对ARM7、ARM9、Cortex-M0、Cortex-M1、Cortex-M2、Cortex-M3、Cortex-R4 等ARM 处理器的嵌入式软
件开发工具。
Keil MDK3.80A,是目前编译最快,最好用的版本。
很多以前学C51的朋友现在又学了ARM,很多时候他们会同时使用两种芯片,可是要分开安装两个软件,很是麻烦。
很多人很想能不能在Keil MDK中也能编译C51的程序。
答案是肯定的。
单看它们的界面相似之处就感觉它们的外壳其实是一样的。
可是问题来了:
把两种软件装在一起一般是C:/Keil,能打开,但是编译不了,想了各种方法,终于使它们能相互编译了,一调试,又出问题。
好,现在我们来解决这些问题。
Keil MDK3.80A+KeilC51V9.00完美结合
注意:此处KeilC51使用的是V9.00版本,属于Keil uVision4;而Keil MDK3.80A却是Keil uVision3为什么呢?
如果你用uVision3的MDK和uVision3的C51安装在一起,能用,能编译,可是调试的时候就出问题了。
出现了版本不兼容的错误。
这是很多人反映的问题,为什么都是uVision3却是版本不兼容呢?为什么?答案是:Keil MDK 总是比KeilC51高一个版本级别。
在级别上:
MDK的uVision3 高于C51的uVision3
MDK的uVision3 = C51的uVision4
就是我们要用Keil MDK3.80A(uVision3)+ KeilC51V9.00(uVision4)的原因。
其实从软件的安装过程的不同就可以看出它们的是否属于同一个级别。
Keil MDK3.80A的安装过程是和KeilC51V9.00的安装过程是一模一样的。
好,现在开始。
1.准备的东西: Keil MDK3.80A 、KeilC51V9.00,两个版本的安装文件。
网上有下载。
2.安装顺序:(这个特别讲究)
(1)先安装KeilC51V9.00,安装在C:\Keil 。
然后到C:\Keil 里面打开TOOLS.INI 文 件。
将里面的”[51]”一下的东西都复制出来,保存一份。
如下:
打开这个文件,复制下面的东西,存到一个例如叫wode.txt 中保存备用。
[C51]
PATH="C:\Keil\C51\"
VERSION=V9.00
BOOK0=HLP\Release_Notes.htm("Release Notes",GEN)
BOOK1=HLP\C51TOOLS.chm("Complete User's Guide Selection",C)
TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")
TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")
TDRV2=BIN\MON390.DLL ("MON390: Dallas Contiguous Mode")
TDRV3=BIN\LPC2EMP.DLL ("LPC900 EPM Emulator/Programmer")
TDRV4=BIN\UL2UPSD.DLL ("ST-uPSD ULINK Driver")
TDRV5=BIN\UL2XC800.DLL ("Infineon XC800 ULINK Driver")
TDRV6=BIN\MONADI.DLL ("ADI Monitor Driver")
TDRV7=BIN\DAS2XC800.DLL ("Infineon DAS Client for XC800")
TDRV8=BIN\UL2LPC9.DLL ("NXP LPC95x ULINK Driver")
RTOS0=Dummy.DLL("Dummy")
RTOS1=RTXTINY .DLL ("RTX-51 Tiny")
RTOS2=RTX51.DLL ("RTX-51 Full")
(2)再安装Keil MDK3.80A ,也默认安装在C:\Keil 。
如果出现说明说已经存在一个所谓的“高版本”,一定要选择是,覆盖,让MDK 覆盖一些C51的东西。
安装好之后,这个文件已经被覆盖更新了,变成成了ARM 的配置。
所以,现在我们要把刚才属于C51的那份配置复制进去,放到最后尾部。
打开刚才我们保存那一份备用的文字(在wode.txt 中)复制到TOOLS.INI 文件末尾就行了。
(3) 完了之后,C:\Keil 文件夹中的文件是这样的:
3.哈哈,好了,打开软件注册。
给C51和ARM 都注册,这个不多说了。
(注册了才能调试)大功告成,C51和ARM 的程序文件都能打开、编译、调试,“三能”~!超爽~!
4.不仅实现了“三能”,还是实现了UV3、UV4两个所谓的不同的版本共存于一个文件夹中。
(界面不同,但级别相同)。
确保这两个文件夹是装满东西的
确保该文件里面同时具有C51和ARM 的配置乮最好是相同级别的乯。