MDK

keil5 mdk软件安装

大城市里の小女人 提交于 2019-12-03 22:28:15
keil5 mdk软件安装 1、请关闭360等流氓的杀毒软件。 2、找到安装包,使用安装包链接 keil 5 如果该链接失效,请自行寻找可以使用的软件包,或者留言。 3、安装步骤 (1)双击进行傻瓜式的一路下一步。 (2)在点击安装完成后,弹出的对话框直接关闭。 (3)安装STM32工具包 安装了支持STM32F1和STM32F4系列的工具包,直接双击,傻瓜式地下一步即可。 (4)破解 打开keil 5软件,找到file -----》license management。复制该机器的CID。 打开破解软件,输入复制的CID,选择ARM,最后生成破解码,复制。 在keil中将其复制,完成破解。 来源: CSDN 作者: zxy131072 链接: https://blog.csdn.net/zxy131072/article/details/89419443

Keil(MDK) 5 软件安装教程

微笑、不失礼 提交于 2019-12-03 22:26:53
一、KEIL Keil公司是一家业界领先的微控制器(MCU) 软件开发工具 的独立供应商。Keil公司由两家私人公司联合运营,分别是德国慕尼黑的Keil Elektronik GmbH和美国德克萨斯的Keil Software Inc。Keil公司制造和销售种类广泛的开发工具,包括ANSI C 编译器 、 宏汇编程序 、 调试器 、 连接器 、库管理器、 固件 和 实时操作系统 核心(real-time kernel)。有超过10万名微控制器开发人员在使用这种得到业界认可的解决方案。其Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。 MDK 即RealView MDK 或MDK-ARM(Microcontroller Development kit),是 ARM 公司收购Keil公司以后,基于uVision界面推出的针对ARM7、ARM9、Cortex-M0、Cortex-M1、Cortex-M2、Cortex-M3、Cortex-R4等ARM处理器的嵌入式软件开发工具。MDK-ARM 集成了业内最领先的技术,包括 uVision4 集成开发环境与 RealView 编译器RVCT。支持 ARM7、ARM9 和最新的Cortex-M3/M1/M0 核处理器,自动配置启动代码,集成 Flash 烧写模块,强大的 Simulation

嵌入式编程第三篇:MDK中链接脚本解析

匿名 (未验证) 提交于 2019-12-03 00:09:02
单片机编程使用 MDK时不可避免的要涉及到链接脚本文件。在链接脚本中可以指定代码的存储布局,可以将代码段、只读数据段、可读写的数据段分别存放,也可以精确地指定代码放置的位置。 在了解链接脚本之前需要了解以下概念: 1)RO(ReadOnly):表示程序中的指令和常量; 2)RW(Read/Write):表示程序中已初始化的变量; 3)ZI(Zero):表示程序中未初始化的变量; 4)链接脚本,也叫程序加载文件,它决定在生成image文件时如何来分配相关数据的存放基址。 5)镜像文件(Image),编译keil中的工程项目时生成的目标文件时叫做镜像文件(Image)或bin文件,image文件中只包含RO,RW段,这是因为ZI数据段都是零,没有必要包含,只需要把ZI所在的区域清零即可。 MDK链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件。当使用链接控制命令选项时,链接器定义了6个段地址描述符。 这6个描述符可以直接在程序中引用。而在使用链接脚本文件后,这6个描述符号没有了,取而代之的是链接脚本文件中的段描述符,格式为:Image段名Base 和Image段名Limit。下面将结合具体的例子说明链接脚本文件的使用。 例: 一个加载区域,多个连续的执行区域。 STAR 0x00000000 0x00040000; //定义载入区域STAR ,域基址

mdk编译时的内存分析

匿名 (未验证) 提交于 2019-12-02 23:42:01
内存四区(代码区,全局区,栈区,堆区) Code :即代码域,它指的是编译器生成的机器指令,这些内容被存储到ROM区。 RO-data :Read Only data,即只读数据域,它指程序中用到的只读数据,这些数据被存储在ROM区,因而程序不能修改其内容。例如C语言中const关键字定义的变量就是典型的RO-data。 RW-data :Read Write data,即可读写数据域,它指初始化为 “ 非0值 ” 的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM区,因而应用程序可以修改其内容。例如C语言中使用定义的全局变量,且定义时赋予“非0值”给该变量进行初始化。 ZI-data :Zero Initialie data,即0初始化数据,它指初始化为“0值”的可读写数据域,它与RW-data的区别是程序刚运行时这些数据初始值全都为0,而后续运行过程与RW-data的性质一样,它们也常驻在RAM区,因而应用程序可以更改其内容。例如C语言中使用定义的全局变量,且定义时赋予“0值”给该变量进行初始化(若定义该变量时没有赋予初始值,编译器会把它当ZI-data来对待,初始化为0); ZI-data的栈空间(Stack)及堆空间(Heap):在C语言中,函数内部定义的局部变量属于栈空间,进入函数的时候从向栈空间申请内存给局部变量,退出时释放局部变量

KEIL MDK中 warning: #223-D: function "xxx" declared implicitly 解决方法

那年仲夏 提交于 2019-12-02 10:43:40
今天在EINT的范例里添加了一个函数,即eint.c中添加了一个datawrite()的函数,并在主函数main.c中调用,编译便警告 warning: #223-D: function "datawrite()" declared implicitly 很奇怪,在eint.c中也有初始化函数EINTInit()同样在main.c中调用没有问题,问什么偏偏这个不行。 但毕竟是个警告,还不是错误,做了个测试IO, while(1) { FIO1SET = 1<<19; delaySysTick(10); Data_write(0xff00, 0xff); FIO1CLR = 1<<19; delaySysTick(10); } 下载执行后发现,此IO根本没有输出。 看来这个警告还是不能回避的,在网上差了下,有类似问题说是库的原因,具体是什么也没说清楚。于是尝试着一一打开库文件,打开eint.h,恍然大悟,这里赫然写着 extern void EINT0_IRQHandler(void) __irq; extern DWORD EINTInit( void ); 原来在这里将eint.c中的函数与main.c相关联,也就是在eint.c中添加了新函数,还有在这里声明调用才行。 eint.h中,添加 extern void Data_write(WORD addr, BYTE data)

嵌入式编程第三篇:MDK中链接脚本解析

巧了我就是萌 提交于 2019-11-29 18:51:53
单片机编程使用 MDK时不可避免的要涉及到链接脚本文件。在链接脚本中可以指定代码的存储布局,可以将代码段、只读数据段、可读写的数据段分别存放,也可以精确地指定代码放置的位置。 在了解链接脚本之前需要了解以下概念: 1)RO(ReadOnly):表示程序中的指令和常量; 2)RW(Read/Write):表示程序中已初始化的变量; 3)ZI(Zero):表示程序中未初始化的变量; 4)链接脚本,也叫程序加载文件,它决定在生成image文件时如何来分配相关数据的存放基址。 5)镜像文件(Image),编译keil中的工程项目时生成的目标文件时叫做镜像文件(Image)或bin文件,image文件中只包含RO,RW段,这是因为ZI数据段都是零,没有必要包含,只需要把ZI所在的区域清零即可。 MDK链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件。当使用链接控制命令选项时,链接器定义了6个段地址描述符。 这6个描述符可以直接在程序中引用。而在使用链接脚本文件后,这6个描述符号没有了,取而代之的是链接脚本文件中的段描述符,格式为:Image段名Base 和Image段名Limit。下面将结合具体的例子说明链接脚本文件的使用。 例: 一个加载区域,多个连续的执行区域。 STAR 0x00000000 0x00040000; //定义载入区域STAR ,域基址

stm32启动文件ld md hd cl vl xl分析及选择

元气小坏坏 提交于 2019-11-29 08:57:10
说的直白点就是以下区别,在选择启动文件的时候有选择性区别! startup_stm32f10x_cl.s 互联型的STM32F105xx,STM32F107xx startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_hd_vl.s 大容量的STM32F100xx startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_ld_vl.s 小容量的STM32F100xx startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx startup_stm32f10x_md_vl.s 中容量的STM32F100xx startup_stm32f10x_xl.s 超大容量FLASH在512K到1024K字节的STM32F101xx,STM32F102xx,STM32F103xx 疑问一:为什么需要选择启动文件? 1.建立中断服务入口地址,即把中断向量与中断服务函数链接起来。 我们知道在串口NVIC配置中我们只定义了个 NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;

SlickEdit Pro 2018使用MDK工具编译STM32的例程

无人久伴 提交于 2019-11-27 03:17:42
下载了《SlickEdit 用MDK工具编译STM32的例程》,内容基于Keil uV4,在5.x版本后,其中的编译器路径和ARM库文件路径有改动,我重新修改了文档。方便使用新版本slickedit和keil的同学节约摸索时间。 因为有人抱怨说以前的方法不行,所以这次用个简单的工程来示范怎么用SLICKEDIT 编译MDK的工程。 要编译MDK,首先需要理解MDK的编译的过程,不同于IAR,IAR只要有个工程,通过IAR的一个工程命令IarBuild程序就能编译整个工程,所以编译IAR用很多软件都可以,但是MDK就不样了,MDK需要到独立命令,在MDK安装目录的X:\Keil_v5\ARM\ARMCC\bin命令下,分别是armcc.exe(编译C文件)armasm.exe(编译汇编)armlink.exe(链接成最终输出文件)fromelf.exe(转换输出文件,用来转换最终文件成烧写文件)。 要用slickedit 编译MDK需要注意的是,不能把两个完全一样的文件放在同一个工程里面编译,VSBUILD会报错,但是不会具体错误,此外,需要一个对应芯片的SCT文件,其实也就相当于一个rom与ram的分布文件,MDK本身就有那文件,当MDK使用默认的时候它是不会出现在命令里的,所以有的人不知道,但是MDK自己会在连接的时候加进去,要获得这个文件,能够在MDK的工程属性设置页面(魔法棒

嵌入式编程第三篇:MDK中链接脚本解析

天涯浪子 提交于 2019-11-26 01:20:55
单片机编程使用 MDK时不可避免的要涉及到链接脚本文件。在链接脚本中可以指定代码的存储布局,可以将代码段、只读数据段、可读写的数据段分别存放,也可以精确地指定代码放置的位置。 在了解链接脚本之前需要了解以下概念: 1)RO(ReadOnly):表示程序中的指令和常量; 2)RW(Read/Write):表示程序中已初始化的变量; 3)ZI(Zero):表示程序中未初始化的变量; 4)链接脚本,也叫程序加载文件,它决定在生成image文件时如何来分配相关数据的存放基址。 5)镜像文件(Image),编译keil中的工程项目时生成的目标文件时叫做镜像文件(Image)或bin文件,image文件中只包含RO,RW段,这是因为ZI数据段都是零,没有必要包含,只需要把ZI所在的区域清零即可。 MDK链接程序使用了两种方式控制程序的链接,即链接控制命令选项和链接脚本文件。当使用链接控制命令选项时,链接器定义了6个段地址描述符。 这6个描述符可以直接在程序中引用。而在使用链接脚本文件后,这6个描述符号没有了,取而代之的是链接脚本文件中的段描述符,格式为:Image段名Base 和Image段名Limit。下面将结合具体的例子说明链接脚本文件的使用。 例: 一个加载区域,多个连续的执行区域。 STAR 0x00000000 0x00040000; //定义载入区域STAR ,域基址