Release Notes for C51

合集下载

51单片机资料-C51常用语句讲解

51单片机资料-C51常用语句讲解

详细介绍。下面仅举一个例子加以说明:
• #include <stdio.h>
//头文件
• void myprint()
//定义函数
•{

printf("hello world.\n");
//输出字符串
•}
• int Add(int a)
//定义函数
•{

return a+1;
//返回值
•}

• void main()
行if语句后面的语句;当表达式为假时,就执行语 句2,执行完后,继续执行if语句后面的语句。
14
13.5.3 阶梯式if-else-if结构
• 阶梯式if-else-if结构是一种多分支结构,其可以 包含多个分支语句,其一般形式为:
• if (表达式1) 语句1; • else if (表达式2) 语句2; • else if (表达式3) 语句3; • else if (表达式n) 语句n; • else 语句n+1; • 这是由if-else语句组成的嵌套,可以实现多方向
条件分支。该语句从上到下逐个对条件进行判断, 一旦条件为真,就执行与其相关的分支语句,并跳 过剩余的阶梯;如果没有一个条件为真,则执行最 后一个else分支语句n+1。
1实现多个语句分支处理。在C51
程序中,开关语句以关键字switch和case来标识。开关语句
序示例如下:
• #include <stdio.h>
//头文件

• void main()
//主函数
•{
• char ch[]={'s','S','r','R','t'};

C51集成开发环境使用

C51集成开发环境使用

C51集成开发环境使用简介一.安装1.安装C51C51的安装很简单,共两张安装盘,默认的目录是C:\C51。

安装结束后会提示修改AUTOEXEC.BA T,接受修改重新启动即可。

如果不重新启动,在使用时会出现找不到编译连接工具的错误。

AUTOEXEC.BA T被加入了几条设置:SET C51LIB=C:\C51\LIBSET C51INC=C:\C51\INCSET PA TH=C:\C51\BIN;%PA TH%如果安装在其它目录,这些设置也相应的指向该目录。

2.安装库函数◆PP3000如果使用PP3000,那么需要做以下事情:将PP3000的所有LIB拷贝到C51安装目录的LIB下、将PP3000的所有INC拷贝到C51安装目录的INC下、将PP3000的所有BIN拷贝到C51安装目录的BIN下。

注意LIB下有几个文件比较重要,其一是l51_bank.obj,此文件用于分页的应用程序中,在连接分页的程序时,连接工具会直接来寻找该文件,请用PP3000的LIB下的l51_bank.obj覆盖原来C51的l51_bank.obj。

另外一个文件就是startup.a51,此文件可以加入工程之中,它将初始化PP3000的一些设置。

◆H1000如果使用H1000,那么需要做以下事情:将HOLD.LIB拷贝到C51安装目录的LIB下、将LIB.H拷贝到C51安装目录的INC下、将H1000的所有BIN拷贝到C51安装目录的BIN下。

同样,H1000也有一个l51_bank.obj,用它将C51的l51_bank.obj覆盖。

H1000没有自己的startup.a51二.开始建立一个工程下面进入C51集成环境。

选择Project / New Project,提示输入工程名后出现工程编辑对话框,按下Add和Remove 向工程中增加/删除文件。

可以加入工程的文件类型包括C程序,ASM程序,PLM程序和LIB库,这些类型文件的名称后缀可以在Options / Make 菜单对话框中的Extensions页中设定,默认的后缀分别为.C、.A51、.PLM和.LIB,C51将相应地调用C51.EXE、A51.EXE、PLM51.EXE编译前面三种源程序。

使keil4 增加支持C51

使keil4 增加支持C51

第一步编辑TOOLS.ini找到Keil安装目录, 用记事本修改TOOLS.ini在[ARM] 段前面增加[C51]段,需增加的内容如下, 注意PATH路径可能需修改为实际路径[C51]PATH="C:\Keil\C51\"SN=K1DZP-5IUSH-A01UEVERSION=V9.01BOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)BOOK1=HLP\GS51.PDF("uVision2 Getting Started",GEN)BOOK2=HLP\C51.PDF("C51 User's Guide",GEN)BOOK3=HLP\C51LIB.CHM("C51 Library Functions",C)BOOK4=HLP\A51.PDF("Assembler/Utilities",GEN)BOOK5=HLP\TR51.CHM("RTX51 Tiny User's Guide",GEN)BOOK6=HLP\DBG51.CHM("uVision2 Debug Commands",GEN)BOOK7=HLP\ISD51.CHM("ISD51 In System Debugger",GEN)BOOK8=HLP\FlashMon51.CHM("Flash Monitor",GEN)BOOK9=MON390\MON390.HTM("MON390: Dallas Contiguous Mode Monitor",GEN)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")RTOS1=RTXTINY.DLL ("RTX-51 Tiny")RTOS2=RTX51.DLL ("RTX-51 Full")这一步之后,就可以用keygen 算注册码授权了, 新建工程时就能选择C5x器件了第二步下载并解压C51编译器放在Keil安装目录下即可。

Release notes for MicroVision Version 1.32

Release notes for MicroVision Version 1.32
experience any problems or have any questions about this update,
contact one of our offices for assistance. You may also check our
on-line support solutions database at /support.
BBS +49 89 4606286
Fax (972) 735-8055 Fax +49 89 468162
Email @ Email sales.intl@
Dallas, Texas 75248-1903 D-85630 Grasbrunn, Germany
Phone (800) 348-8051 Sales +49 89 456040-0
(972) 735-8052 Support +49 89 456040-24
This document contains release notes and last minute changes for the
MicroVision for Windows V1.32 Update.
Table of Contents
===nstructions
Release notes for MicroVision Version 1.32
Copyright (c) 1998 KEIL Software, Inc.
All rights reserved.
3. Getting Technical Support
=============================

【转】在Keiluv5里面添加STC元器件库,不影响其他元件

【转】在Keiluv5里面添加STC元器件库,不影响其他元件

【转】在Keiluv5⾥⾯添加STC元器件库,不影响其他元件
还有STC新系列单⽚机的头⽂件,宏晶的⽹站就有
1、在Keil/C51/INC下新建⽬录"STC"⽂件夹,把所有STC新系列单⽚机
的头⽂件拷贝到"STC"⽬录下。

2、下载的⽤于keil下的STC器件数据库更名为STC.CDB并拷贝到
Keil/UV4⽬录下。

3、打开Keil⽂件夹下的TOOLS.ini⽂件。

4、在[UV2]下键⼊CDB0="UV2\STC.CDB"("STC")或者CDB0="UV4
\STC.CDB"("STC")或者CDB0="UV4\STC.CDB"("STC"),需要单独⼀⾏。

[UV2] ORGANIZATION="微软中国" NAME="微软⽤户", "zhang" EMAIL="惺惺惜惺xxx@"
BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN) CDB0="UV4\STC.CDB"("STC") ARMSEL=1 SocketPort=0 5、保存TOOLS.ini⽂件,添加完毕。

6。

启动Keil,打开Options for Target '...'的Device页, 选择Database中“STC”,就可以选择STC单⽚机了,⽽且不会影响原。

c51编程规范

c51编程规范

c51编程规范(1)引言今天人们越来越明白软件设计更多地是一种工程,而不是一种个人艺术。

由于大型产品的开发通常由很多的人协同作战,如果不统一编程规范,最终合到一起的程序,其可读性将较差,这不仅给代码的理解带来障碍,增加维护阶段的工作量,同时不规范的代码隐含错误的可能性也比较大。

BELL实验室的研究资料表明,软件错误中18%左右产生于概要设计阶段,15%左右产生于详细设计阶段,而编码阶段产生的错误占的比例则接近50%;分析表明,编码阶段产生的错误当中,语法错误大概占20%左右,而由于未严格检查软件逻辑导致的错误、函数(模块)之间接口错误及由于代码可理解度低导致优化维护阶段对代码的错误修改引起的错误则占了一半以上。

可见,提高软件质量必须降低编码阶段的错误率。

如何有效降低编码阶段的错误呢?BELL实验室的研究人员制定了详细的软件编程规范,并培训每一位程序员,最终的结果把编码阶段的错误降至10%左右,同时也降低了程序的测试费用,效果相当显著。

本文从代码的可维护性(可读、可理解性、可修改性)、代码逻辑与效率、函数(模块)接口、可测试性四个方面阐述了软件编程规范,规范分成规则和建议两种,其中规则部分为强制执行项目,而建议部分则不作强制,可根据习惯取舍。

2. 编码规范2.1. 排版风格<规则1> 程序块采用缩进风格编写,缩进为4个空格位。

排版不混合使用空格和TAB键。

<规则2> 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。

采用这种松散方式编写代码的目的是使代码更加清晰。

例如:(1) 逗号、分号只在后面加空格printf("%d %d %d" , a, b, c);(2)比较操作符, 赋值操作符"="、"+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格if(lCurrentTime >= MAX_TIME_VALUE)a =b + c;a *= 2;a =b ^ 2;(3)"!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格*pApple = 'a'; // 内容操作"*"与内容之间flag = !bIsEmpty; // 非操作"!"与内容之间p = &cMem; // 地址操作"&" 与内容之间i++; // "++","--"与内容之间(4)"->"、"."前后不加空格p->id = pId; // "->"指针前后不加空格由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如最内层的括号内侧(即左括号后面和右括号前面)不要加空格,因为在C/C++语言中括号已经是最清晰的标志了。

C51_Clib_Note

C51_Clib_Note

NOTEThe Keil C51 library includes a number of helper routines for the C51 compiler. These routines perform mundane tasks like loading and storing objects. The code to perform these operations is not included in-line but is implemented via a function call.These routines are named using the following convention: ?C?tffmmmwhere:▪t is the type field,▪ff is the function field,▪and mmm is the memory type field.TYPE FIELDThe type field is a character that indicates the data type used:▪C indicates a character that is passed in A.▪I indicates an int that is passed in A/B.▪P indicates a 3-byte pointer that is passed in R1/R2/R3.▪L indicates a long that is passed in R4/R5/R6/R7.▪L0 indicates a long that is passed in R0/R1/R2/R3.FUNCTION FIELDThe function field indicates the operation that is performed:▪LD indicates a read (load) operation.▪ILD indicates an increment and load operation (pre-increment load). The increment value is passed in A/B.▪LDI indicates a load and increment operation (post-increment load). The increment value is passed in A/B.▪ST indicates a write (store) operation.▪STK indicates writing of constant data encoded as DB statements immediately following the library function call.MEMORY TYPE FIELDThe memory type field indicates that memory area that is accessed:▪XDATA represents XDATA memory.▪PDATA represents PDATA memory.▪IDATA represents IDATA memory.▪DATA represents DATA memory.▪CODE represents CODE memory.▪PTR represents a 3-byte pointer in R1/R2/R3.▪OPTR represents a 3-byte pointer plus an offset in R1/R2/R3 + DPTR. EXAMPLEThe library routine ?C?PLDIPTR is passed a generic pointer in R1/R2/R3 (P). This pointer points to a pointer which is returned in R1/R2/R3 (PTR). A/B contain the MSB and LSB of a value to add to the pointer (LDI). The pointer returned is the pointer value before the increment is added.COMPLETE LISTINGFollowing is a complete list of all routines possible using the above naming conventions:?C?CLDXDATA, ?C?ILDXDATA, ?C?PLDXDATA, ?C?LLDXDATA, ?C?L0LDXDATA, ?C ?CILDXDATA, ?C?IILDXDATA, ?C?PILDXDATA, ?C?LILDXDATA, ?C?L0ILDXDATA, ? C?CLDIXDATA, ?C?ILDIXDATA, ?C?PLDIXDATA, ?C?LLDIXDATA, ?C?L0LDIXDATA, ?C?CSTXDATA, ?C?ISTXDATA, ?C?PSTXDATA, ?C?LSTXDATA, ?C?L0STXDATA, ?C? CSTKXDATA, ?C?ISTKXDATA, ?C?PSTKXDATA, ?C?LSTKXDATA, ?C?L0STKXDATA,?C?CLDPDATA, ?C?ILDPDATA, ?C?PLDPDATA, ?C?LLDPDATA, ?C?L0LDPDATA, ?C? CILDPDATA, ?C?IILDPDATA, ?C?PILDPDATA, ?C?LILDPDATA, ?C?L0ILDPDATA, ?C? CLDIPDATA, ?C?ILDIPDATA, ?C?PLDIPDATA, ?C?LLDIPDATA, ?C?L0LDIPDATA, ?C? CSTPDATA, ?C?ISTPDATA, ?C?PSTPDATA, ?C?LSTPDATA, ?C?L0STPDATA, ?C?CST KPDATA, ?C?ISTKPDATA, ?C?PSTKPDATA, ?C?LSTKPDATA, ?C?L0STKPDATA,?C?CLDIDATA, ?C?ILDIDATA, ?C?PLDIDATA, ?C?LLDIDATA, ?C?L0LDIDATA, ?C?CI LDIDATA, ?C?IILDIDATA, ?C?PILDIDATA, ?C?LILDIDATA, ?C?L0ILDIDATA, ?C?CLD IIDATA, ?C?ILDIIDATA, ?C?PLDIIDATA, ?C?LLDIIDATA, ?C?L0LDIIDATA, ?C?CSTI DATA, ?C?ISTIDATA, ?C?PSTIDATA, ?C?LSTIDATA, ?C?L0STIDATA, ?C?CSTKIDAT A, ?C?ISTKIDATA, ?C?PSTKIDATA, ?C?LSTKIDATA, ?C?L0STKIDATA,?C?CLDDATA, ?C?ILDDATA, ?C?PLDDATA, ?C?LLDDATA, ?C?L0LDDATA, ?C?CILDD ATA, ?C?IILDDATA, ?C?PILDDATA, ?C?LILDDATA, ?C?L0ILDDATA, ?C?CLDIDATA, ?C?ILDIDATA, ?C?PLDIDATA, ?C?LLDIDATA, ?C?L0LDIDATA, ?C?CSTDATA, ?C?IS TDATA, ?C?PSTDATA, ?C?LSTDATA, ?C?L0STDATA, ?C?CSTKDATA, ?C?ISTKDATA, ?C?PSTKDATA, ?C?LSTKDATA, ?C?L0STKDATA,?C?CLDCODE, ?C?ILDCODE, ?C?PLDCODE, ?C?LLDCODE, ?C?L0LDCODE, ?C?CILD CODE, ?C?IILDCODE, ?C?PILDCODE, ?C?LILDCODE, ?C?L0ILDCODE, ?C?CLDICOD E, ?C?ILDICODE, ?C?PLDICODE, ?C?LLDICODE, ?C?L0LDICODE, ?C?CSTCODE, ?C?ISTCODE, ?C?PSTCODE, ?C?LSTCODE, ?C?L0STCODE, ?C?CSTKCODE, ?C?ISTKC ODE, ?C?PSTKCODE, ?C?LSTKCODE, ?C?L0STKCODE,?C?CLDPTR, ?C?ILDPTR, ?C?PLDPTR, ?C?LLDPTR, ?C?L0LDPTR, ?C?CILDPTR, ?C?I ILDPTR, ?C?PILDPTR, ?C?LILDPTR, ?C?L0ILDPTR, ?C?CLDIPTR, ?C?ILDIPTR, ?C?P LDIPTR, ?C?LLDIPTR, ?C?L0LDIPTR, ?C?CSTPTR, ?C?ISTPTR, ?C?PSTPTR, ?C?LST PTR, ?C?L0STPTR, ?C?CSTKPTR, ?C?ISTKPTR, ?C?PSTKPTR, ?C?LSTKPTR, ?C?L0S TKPTR,?C?CLDOPTR, ?C?ILDOPTR, ?C?PLDOPTR, ?C?LLDOPTR, ?C?L0LDOPTR, ?C?CILDO PTR, ?C?IILDOPTR, ?C?PILDOPTR, ?C?LILDOPTR, ?C?L0ILDOPTR, ?C?CLDIOPTR, ? C?ILDIOPTR, ?C?PLDIOPTR, ?C?LLDIOPTR, ?C?L0LDIOPTR, ?C?CSTOPTR, ?C?IST OPTR, ?C?PSTOPTR, ?C?LSTOPTR, ?C?L0STOPTR, ?C?CSTKOPTR, ?C?ISTKOPTR, ? C?PSTKOPTR, ?C?LSTKOPTR, ?C?L0STKOPTR。

keil4 for C51安装教程

keil4 for C51安装教程

安装步骤:1.选中【Keil uvision4C51版】压缩包,鼠标右击选择【解压到Keil uvision 4C51版】。

2.双击打开【Keil uvision4C51版】文件夹。

3.选中【KeiluVision4】可执行文件,鼠标右击选择【以管理员身份运行】。

4.点击【Next>>】。

5.勾选【I agreeto all terms…】然后点击【Next>>】。

6.使用默认路径即可,点击【Next>>】。

7.填写信息,然后点击【Next>>】。

8.安装中。

9.取消勾选【ShowRelease Notes】和【Add example…】然后点击【Finish】。

10.在桌面双击打开【KeiluVision4】。

11.点击【File】菜单下面的【License Management】。

12.双击打开之前解压后的【Keiluvision4C51版】文件夹。

13.选中【crack】可执行文件,鼠标右击选择【以管理员身份运行】。

温馨提示:如果在该文件夹里面没有找到【crack】可执行文件请关闭杀毒软件和防火墙重新解压压缩包。

14.使用快捷键Ctrl+C复制软件许可证管理器中的【CID】在注册机的【CID】框中使用快捷键Ctrl+V粘贴。

15.点击【Generate】并使用快捷键Ctrl+C复制上面框中生成的激活码。

16.在【NewLicense ID Code】框里面使用快捷键Ctrl+V粘贴注册码,然后点击【添加LIC】。

17.激活成功,如果嫌激活的时间短可以换个激活码,然后点击【Close】。

uVision4汉化补丁】文件夹。

19.选中所有文件,鼠标右击选择【复制】。

20.打开软件的安装目录,双击打开【UV4】文件夹。

21.在空白处鼠标右击选择【粘贴】。

22.勾选【对于所有冲突执行此操作】然后点击【复制和替换】。

23.在桌面双击打开【KeiluVision4】。

Keil uVision3 安装教程

Keil  uVision3 安装教程

Keil μVision3安装、汉化、注册教程一、双击。

出现点击Next勾选点击Next点击Browse选择安装位置,选择好后点击Next这四行随便填写,完成后点击Next,跳出下面的界面,等待完成show release notes为展示说明add example project to the recently used project list 为添加示例项目到最近使用的项目列表。

勾选自己需要的项目,(可以全不选)。

点击Finish复制ccKeilVxx.exe文件到x:\keil\c51\bin\下面并运行,以修正0xFD BUG.点击Next点确定点击Finish点击确定至此安装完毕。

二、注册破解打开uVision3,点击File---License Management...,打开License Management窗口,复制右上角的CID3.双击打开注册机,选择V2选项,点击Generate生成许可号,生成后复制LIC0内容到License Management窗口下部的New License ID Code,点击右侧的Add LIC若上方的Product显示的是PK51 Prof. Developers Kit即注册成功,Support Period为有效期,若有效期较短,可多次生成许可号重新注册。

点击确定完成注册三、汉化(不推荐汉化)打开汉化包将文件Uv3复制到安装文件夹的Uv3文件夹内,复制并替换。

即完成汉化。

四、卸载软件跳出该窗口时,点击需要卸载的项目,选中后点击Remove出现下面窗口大概意思为:此操作将删除该文件夹中的所有文件包括修改和/或附加装置。

你在打算确定要删除这些文件夹中的所有文件?点击是点击是点击确定完成卸载。

keil c51手册

keil c51手册

Keil C51使用详解V1.0目录第一章 Keil C51开发系统基本知识 (5)第一节系统概述 (5)第二节Keil C51单片机软件开发系统的整体结构 (5)第三节Keil C51工具包的安装 (5)1. C51 for Dos (5)2. C51 for Windows的安装及注意事项 (5)第四节Keil C51工具包各部分功能及使用简介 (5)1. C51与A51 (5)2. L51和BL51 (6)3. DScope51,Tscope51及Monitor51 (6)4. Ishell及uVision (7)第二章 Keil C51软件使用详解 (7)第一节Keil C51编译器的控制指令 (7)1. 源文件控制类 (7)2. 目标文件(Object)控制类: (7)3. 列表文件(listing)控制类: (7)第二节dScope51的使用 (7)1. dScope51 for Dos (7)2. dScope for Windows (8)第三节Monitor51及其使用 (8)1. Monitor51对硬件的要求 (8)2. Mon51的使用 (8)3. MON51的配置 (9)4. 串口连接图: (9)5. MON51命令及使用 (9)第四节集成开发环境(IDE)的使用 (9)1. Ishell for Dos的使用 (9)2. uVision for windows的使用 (9)第三章 Keil C51 vs 标准C (9)第一节Keil C51扩展关键字 (10)第二节内存区域(Memory Areas): (10)1. Pragram Area: (10)2. Internal Data Memory: (10)3. External Data Memory. (10)4. Speciac Function Register Memory (10)第三节存储模式 (10)1. Small模式 (10)2. Compact模式 (10)3. large模式 (10)第四节存储类型声明 (10)第五节变量或数据类型 (10)第六节位变量与声明 (11)1. bit型变量 (11)2. 可位寻址区说明20H-2FH (11)第七节Keil C51指针 (11)1. 一般指针 (11)2. 存储器指针 (11)3. 指针转换 (11)第八节Keil C51函数 (11)1. 中断函数声明: (11)2. 通用存储工作区 (12)3. 选通用存储工作区由using x声明,见上例。

Keil C51 与 ARM 并存方法

Keil C51 与 ARM 并存方法

很多朋友都在想,怎么让keil C51与ARM能够并存使用。

有安装经验的朋友都知道,安好C51后再安ARm,C51不能正常工作;安好ARM后再安C51,ARM不能正常工作.网上也有相关解决办法,不过不怎么样,要么不详细,要么就是复制粘贴。

不多说看图片:第一:先安装C51(必须先安装C51,不能先安装ARM,否则会失败。

)第二:安装keil ARM(不能安装在同一个文件夹下)我当前安装的是mdk arm4.53第三:打开keil c51和keil arm 两个文件夹,分别找到tools.ini分别打开两个“tools.ini”,将keil C51文件夹下的tools.ini文件中[C51]段复制到keil ARM中tools.ini文件的最后;将keil ARM文件夹下的tools.ini文件中[ARM]段复制到keil C51中tools.ini文件的最后:tools.ini? -->keil ARM[UV2]ORGANIZATION="小川电子工作室"NAME="小川电子工作室", "小川电子工作室"EMAIL=""ARMSEL=1BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)[ARM]PATH="D:\Keil ARM\ARM\"VERSION=4.50PATH1="C:\Program Files\arm-none-eabi-gcc-4_6\"TOOLPREFIX=arm-none-eabi-CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10)??? # Drivers for ARM7/9 devicesCPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDR V9,TDRV11,TDRV12,TDRV13)??? # Drivers for Cortex-M devicesCPUDLL2=SARMCR4.DLL(TDRV7)??? # Drivers for Cortex-R4 devicesBOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)BOOK3=CMSIS\index.html("CMSIS Documentation",GEN)TDRV0=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")TDRV1=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)")TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")TDRV11=NULink\Nu_Link.dll("NULink Debugger")TDRV12=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")TDRV13=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")LIC0=ZB48T-RRRXD-GJE6P-M4J11-65JI1-GHTPNBOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)[ARMADS]PATH="D:\Keil ARM\ARM\"PATH1="BIN40\"CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10)??? # Drivers for ARM7/9 devicesCPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDR V9,TDRV11,TDRV12,TDRV13)??? # Drivers for Cortex-M devicesCPUDLL2=SARMCR4.DLL(TDRV7)??? # Drivers for Cortex-R4 devicesBOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)BOOK3=CMSIS\index.html("CMSIS Documentation",GEN)BOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)TDRV0=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")TDRV1=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)")TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")TDRV11=NULink\Nu_Link.dll("NULink Debugger")TDRV12=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")TDRV13=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")RTOS0=Dummy.DLL("Dummy")RTOS1=VARTXARM.DLL ("RTX Kernel")DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")[C51]PATH="D:\Keil C51\C51\"VERSION=V9.06BOOK0=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")LIC0=EXTEV-PIY1M-WN1AF-6K3HK-DRA7Y-FBXVWkeil-->c51[UV2]ORGANIZATION="小川工作室"NAME="王川北", "111"EMAIL="111"BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)[C51]PATH="D:\Keil C51\C51\"VERSION=V9.06BOOK0=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")LIC0=8V02Z-JIX83-09VG9-4M1JI-YKSD6-5KBQ3[ARM]PATH="D:\Keil ARM\ARM\"VERSION=4.50PATH1="C:\Program Files\arm-none-eabi-gcc-4_6\"TOOLPREFIX=arm-none-eabi-CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10)??? # Drivers for ARM7/9 devicesCPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDR V9,TDRV11,TDRV12,TDRV13)??? # Drivers for Cortex-M devicesCPUDLL2=SARMCR4.DLL(TDRV7)??? # Drivers for Cortex-R4 devicesBOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)BOOK3=CMSIS\index.html("CMSIS Documentation",GEN)BOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)TDRV0=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")TDRV1=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)")TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")TDRV11=NULink\Nu_Link.dll("NULink Debugger")TDRV12=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger")TDRV13=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger")DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")LIC0=UJWBS-LNGB0-8FWIE-5N2GJ-UKXD9-NTBGM[ARMADS]PATH="D:\Keil ARM\ARM\"PATH1="BIN40\"CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10)??? # Drivers for ARM7/9 devicesCPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5,TDRV7,TDRV8,TDR V9,TDRV11,TDRV12,TDRV13)??? # Drivers for Cortex-M devicesCPUDLL2=SARMCR4.DLL(TDRV7)??? # Drivers for Cortex-R4 devicesBOOK0=HLP\RELEASE_NOTES.HTM("Release Notes",GEN)BOOK1=HLP\ARMTOOLS.chm("Complete User's Guide Selection",C)BOOK2=HLP\RL_RELEASE_NOTES.HTM("RL-ARM Release Notes",GEN)BOOK3=CMSIS\index.html("CMSIS Documentation",GEN)BOOK4=Signum\Docs\SigUV3Arm.htm("Signum Systems JTAGjet Driver Documentation",GEN)TDRV0=BIN\UL2ARM.DLL("ULINK2/ME ARM Debugger")TDRV1=BIN\UL2CM3.DLL("ULINK2/ME Cortex Debugger")TDRV2=BIN\AGDIRDI.DLL("RDI Interface Driver")TDRV3=BIN\ABLSTCM.dll("Altera Blaster Cortex Debugger")TDRV4=BIN\lmidk-agdi.dll("Stellaris ICDI")TDRV5=Signum\SigUV3Arm.dll("Signum Systems JTAGjet")TDRV6=Segger\JLTAgdi.dll("J-LINK / J-TRACE")TDRV7=Segger\JL2CM3.dll("Cortex-M/R J-LINK/J-Trace")TDRV8=STLink\ST-LINKIII-KEIL.dll ("ST-Link (Deprecated Version)") TDRV9=BIN\ULP2CM3.DLL("ULINK Pro Cortex Debugger")TDRV10=BIN\ULP2ARM.DLL("ULINK Pro ARM Debugger")TDRV11=NULink\Nu_Link.dll("NULink Debugger")TDRV12=SiLabs\SLAB_CM_Keil.dll("SiLabs UDA Debugger") TDRV13=STLink\ST-LINKIII-KEIL_SWO.dll ("ST-Link Debugger") RTOS0=Dummy.DLL("Dummy")RTOS1=VARTXARM.DLL ("RTX Kernel")DELDRVPKG0=ULINK\UninstallULINK.exe("ULINK Pro Driver V1.0")。

Release Notes for C51单片机笔记

Release Notes for C51单片机笔记

Release Notes for C518051 Development Tool KitsThis file contains release notes and last minute changes that are not found in theprinted m anuals.Information in this file, the accompany manuals, and soft ware isCopyright © Keil Software, Inc and Keil Elektronik GmbH.All rights reserved.Contents1What's New in C512Example Program s3Device Database™4Peripheral Simulation5Technical Support6Contact DetailsWhat's New in C51The following sections list the changes instituted in each release of the C51 toolset.C51 Version 9.00 Release[µVision4]▪This C51 release com es with the new µVision4 IDE.[New Supported Devices]▪Evatronix R8051XC(1 DPTR), R8051XC2(1 DPT R), R8051XC2(2DPT R), R8051XC2(8 DPTR), R8051XC2-A(1 DPT R), R8051XC2-A(2DPT R), R8051XC2-A(8 DPTR), R8051XC2-AF, R8051XC2-B(1 DPTR),R8051XC2-B(2 DPT R), R8051XC2-B(8 DPT R), and R8051XC2-BFdevices.▪Nordic nRFLU1P-F16and nRFLU1P-F32 devices.▪NXP P89LPC9361device.▪Silabs C8051F580, C8051F581, C8051F582, C8051F583,C8051F584, C8051F585, C8051F586, C8051F587, C8051F588,C8051F589, C8051F590, and C8051F591 devices.[Device Support]▪Corrected:device settings for Infineon XC888-6FF, XC888CM-8FF,XC888LM-6FF, XC886-6FF, XC866L-1FR, XC866L-2FR, XC866L-4FR, andXC864-1FRI devices.▪Corrected: device settings for Nordic Semiconductor nRF24E1,nRF24E2, nRF9E5, nRF24LU1, and nRF24LE1 devices.▪Added: debug support for NXP P89LPC9361 and P89LPC954 devicesin the LPC900 EPM Emulator/Programmer.▪Updated: LPC900 EPM flash programmer configuration dialog tosupport devices with 16 flash sectors.[CX51 Compiler]▪Corrected: constant folding of two negative array index values. Forexample:unsigned char arr[512];unsigned int i;i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]▪Corrected: when using the NOAREGS directive, complex arithmeticwith nested calls m ay create incorrect results. For exam ple:#pragma NOAREGSint result;extern char f(unsigned char idx);result = (f(1)*0x100+f(0)) - (f(3)*0x100+f(2)); // incorrect result. POP destroys value in ACCLX51 Linker/Locater]▪Corrected: when using OPTIMIZE(10) or above, there was a potentialthat common code blocks are called incorrectly. Therefore programs m ayhave operated incorrectly.[BL51 Linker/Locater]▪Corrected: when using RTX51 user interrupt functions wereoverlapping with RTX ISR vectors which resulted in a linker warning.▪Corrected: data overlaying may not work when the last input modulecontains an interrupt function; the linker incorrectly issues WARNING 16:main uncalled.C51 Version 8.18 Release[Device Support]▪Added: debug support for NXP P89LPC9408in the LPC900 EPMEmulator/Programmer.[New Supported Devices]▪Nuvoton W681308device.▪NXP P89LPC9201, P89LPC9211, P89LPC922A1, P89LPC9241,P89LPC9251, P89LPC9301, P89LPC931A1, P89LPC9331, P89LPC9341,and P89LPC9351 devices.▪Silabs C8051F500, C8051F501, C8051F504, C8051F505,C8051F506, C8051F507, C8051F508, C8051F509, C8051F510,C8051F511, C8051F700, C8051F701, C8051F702, C8051F703,C8051F704, C8051F705, C8051F706, C8051F707, C8051F708,C8051F709, C8051F710, C8051F711, C8051F712, C8051F713,C8051F714, and C8051F715 devices.[ULINK2 Support]▪Corrected: potential deadlock on ST uPSD targets with ULINK2solved.[Device Simulation]▪Corrected: Infineon XC800 simulation of the MDU was incorrectlyimplem ented.▪Corrected: For C8051F12x/F13x devices the EXFn and TOGnbehavior matches with latest inform ation from SiLABS.▪Added: simulation for Atmel AT89C51RE2. The second UART is nowavailable for the simulation.[CX51 Compiler]▪Corrected: initialization failed on far addresses when the object islocated with _at_. For example:#pragma VARBANKING O2unsigned char far array[65530] _at_ 0x150006;unsigned long x1 = (unsigned long)(array); // incorrect address stored in 'x1'.C51 Version 8.17a Release[Device Support]▪Added: debug support for the follow devices from Analog DevicesADE5166, ADE5169, ADE5566,ADE5569, ADE7166F16, ADE7166F8,ADE169F16, ADE7566F16, and ADE7566F8 in the ADI Monitor Driver.▪Added: debug support for NXP P89LPC9321 and P89LPC9351devices in the LPC900 EPM Emulator/Programmer.[Device Support]▪Added: Nuvoton devices in the device database.▪Corrected: Port Pin P2.2 is available (instead of P2.5) on NXPP89LPC917 devices. This is now reflected in the peripheral dialogs.▪Corrected: UART0 baudrate is now correctly displayed whenTim er2/3/4 is used as baudrate generator on SiLabs C8051F13xdevices.[Device Simulation]▪Corrected: sim ulation of Reset Source Register (RSTSRC) and SFRPage Control Register (SFRPGCN) for SiLabs C8051Fxxx devices.▪Corrected: handling of Automatic Page Control Enable (SFRPGCN)and Reset Source Register (RSTSRC) for SiLabs C8051Fxxx devices.▪Corrected: sim ulation of PLLLCK (PLL Lock Flag) for SiLabsC8051F12x/13x devices. PLLLCK is now set when PLL is configuredcorrectly and frequency is locked.▪Added: support for V: user-defined memory area for NXP 80C51MXdevices.▪Corrected: sim ulation issues with the Evatronix R8051XC peripheralsDMA and interrupt.[CX51 Compiler]Corrected: when two long operands are loaded from com plex arrays (each with object size bigger than 256 bytes), there was a potential register overwrite in register R0. The result of the long operation was in such cases incorrect.Example:struct s2 { unsigned int idx : 1; } s2;struct s { unsigned long l1; unsigned char a[256]; unsigned long l2; } xdata sarr[2];unsigned long l;void main (void) {l = sarr[s2.idx].l1 + sarr[s2.idx].l2; // incorrect result of long addition }[A X51 Macro A ssembler]▪Corrected: in NXP 80C51MX m ode, DATA, IDATA, and EDATA can beplaced to absolute addresses 0x7F0000 and above. This is now accepted.▪Added: ECRM directive that allows to expand generic CALLinstructions to ECALL for NXP 80C51MX devices.C51 Version 8.16a Release[CX51 Compiler]▪Corrected: when int num bers are multiplied and assigned to long, theresult is potential incorrect. This problem has been introduced in V8.15.▪Corrected: C51 _at_ problem with linker code packing fixed.[A X51 Macro A ssembler]▪Enhanced: for the NXP MX devices, CALL/JMP instructions areencoded to ECALL/JMP when needed..[Device Support]▪Added: ULINK and Infineon DAS (Device Access Server) support forthe XC864 device.▪Enhanced: Evatronix R8051XC XDATA Banking example optimized.▪Enhanced: Infineon XC800 startup code.▪Added: Support for Infineon XC864 including a Blinky example.▪Added: Syntek Semiconductors STK6031and STK6032devices todevice database.[Device Simulation]▪Added: for SiLABS C8051F360/1/2/3/4/5/6/7/8/9andC8051F410/1/2/3.C51 Version 8.15 Release[Cx51 Compiler]▪Corrected: interrupt functions com bined with NOINTVECTOR wherenot detected by the linker as new root and an incorrect linker warningwas reported.▪Corrected: when using Dallas 390 m ode with ROM(D512K) orROM(D16M), pdata arrays could not be located anywhere in m emory.▪Corrected: when using the XCROM directive in com bination withfunction pointers, constant initializations where omitted.▪Enhanced: long multiplication with two unsigned int/char argumentshas now a m uch higher performance.[Target Support]▪Added: support for the Infineon USCALE XC800 hardware via theInfineon DAS Client for XC800.[Device Simulation]▪Corrected: access to MACACC was not corrected simulated for SiLABSC8051F12x and C8051F13x devices.▪Added: device support and simulation for Infineon XC878.▪Added: simulation for new peripherals (Software Reset, RTC, DMA)on Evatronix R8051XC core.▪Added: xdata banking support for Evatronix R8051XC core.[LX51 Linker/Locater]▪Corrected: Linker Code Packing may com bine incorrectly blocks fromseveral code banks into common areas.[ULINK2 Support]▪Added: Debug and Flash-Programming support for NXP P89LPC952and P89LPC954.C51 Version 8.12 Release[Device Simulation]▪Added: device support and simulation for SiLABSC8051T600/1/2/3/4/5 and C8051T610/1/2/3/4/5/6/7.[Cx51 Compiler]▪Corrected: nested call with struct pointer arguments whereincorrectly processed.[LX51 Linker/Locater]▪Corrected: sfr16 definitions in assembly code and C source file maygenerate Warning L46: SFR SYMBOL HAS DIFFERENT VALUE.C51 Version 8.11a Release▪[Device Support]Added: support for Ram t ron VRS51L3072 and VRS51L3174.▪Added: support for Nordic Semiconductor nRF24LU1.[Device Simulation]▪Added: device support and simulation for SiLABS C8051F336,C8051F337, C8051F338, and C8051F339.▪Corrected: PORTx and PCA output pins on SiLABS C8051F12x d id notcorrectly update in simulation.C51 Version 8.10 Release▪[Device Support]Added: support for Megawin MPC82G516A and MPC82L54A.▪Enhanced: startup code for Infineon XC800 devices has nowselections for device variants. Infineon XC88x AC step devices requiresto set the device to VCO bypass m ode before PLL switching.▪Added: support for NXP P89V52X2.[Device Simulation]▪Corrected: simulation of MULRDY and OSCICL corrected for SiLABSC8051F3xx series.▪Enhanced: simulation of Evatronix R8051XC watchdog tim er withoptional prescaler. For details refer to Application Note 191: ToolchainExtensions for R8051XC Core.▪Corrected: DPTR simulation of Evatronix R8051XC; when 2 DPT Rwhere selected the auto-increm ent feature (DPC register) did not work.Two R8051XC devices are now in the device database: R8051XC (8DPTR) with simulation for 8 DPTR, R8051XC (2 DPTR) with simulationfor 2 DPTR.▪Corrected: SiLABS simulation for UART #1 had a problem with thetransmit interrupt bit (TI) when SFR page was set to 1.[Cx51 Compiler]▪Corrected: the MODC2 directive did not correctly save and restoremultiple DPTR registers on interrupt entry/exit.▪Corrected: Assem bler instructions inserted with #pragma ASMtrigger now register usage of all CPU registers and therefore avoidsregister clashes.▪Corrected: strcm p and strnc mp library functions changed fromsigned char to unsigned char com pare (ANSI requirement).▪Improved: detection of conflicting memory types when used incom bination with typedef's, for example:typedef char code CCHAR;typedef CCHAR xdata XCHAR; // generates now WARNING C185: different memory spaceCCHAR idata var2; // generates now WARNING C185: different memory space [LX51 Linker/Locater]▪Corrected: REMOVEDUNUSED did not correctly work with SROMsym bols and linker code packing.▪Corrected: debug sym bols of absolute bits generated in AX51 hadwrong offset.▪Corrected: segm ent locating with the LAST keyword generatedunnecessary m emory gaps when used with code banking.▪Corrected: when linker code packing is used, an address reference tofar variables with _at placem ent was wrong.[BL51 Linker/Locater]▪Corrected: segm ents with a AJMP instruction as last instructionwhere located at the end of a 2KB block which generated a linker error. [ULINK and ULINK2 Support]▪Corrected: Verify failed on µPSD devices when common segm entswhere located to code banks, but no bank 0 exists.C51 Version 8.09 Release[Device Simulation]▪Corrected: wrong timing of the Tim er 1 in the Infineon XC800devices.▪Corrected: clock cal culation of Infineon XC88x devices was incorrect.▪Corrected: Dallas D80C400 simulation did not correctly switch tocontiguous m ode.▪Added: Simulation for At m el AT89C51AC3.▪[Device Support]Corrected: when debugging Infineon XC800 Devices with the DASinterface data/idata variables where shown incorrect ly.▪[Target Debugging for A nalog Devices ADuC83x, A DuC84x, and ADE7xxx]Options - Project - Debug - Use: ADI Monitor Driver selects target driver for the Analog Devices ADuC834, ADuC84x, and ADE7xxx devices. This driver is now extended to support the 1-Pin Pod interface and the new ADE7xxx devices.[Monitor-51, Monitor-390]▪Corrected: potential communication problems with low-costUSB-COM adapters.[Cx51 Compiler]▪Corrected: a code generation problem with bit-field arrays when thearray index is a function return value.C51 Version 8.08a Release[Device Simulation]▪Corrected: the previous version had a delay when starting signalfunctions. This delay is now removed so that the startup behavior isidentical to releases before version 8.06.▪Corrected: the behavior of JBC instructions on I/O ports was not fullycorrect. JBC instructions now read the SFR register (Px) instead of theI/O port value (PORTx).[Cx51 Compiler]▪Corrected: integer promotion was m issing on com plex arithmeticwith char/unsigned char and multiplication or division.[A x51 Macro A ssembler]▪Enhanced: the _DATE2_ m acro is now defined also for the A51 andAX51 Macro Assembler.[uVision3 IDE]▪Corrected: potential crash in the project window on right mouse clickwhen no item was selected.[Device Support]▪Corrected: Peripheral display for Port 4 and Port 5 of the NXP89LPC952 device was m issing.▪Enhanced: on XC800 devices the dialog Project - Options - Debug- ULINK Settings - Disable interrupts during steps is implemented.This option disables interrupts during single-stepping and thereforeexecutes only instructions from the current function.▪Added support for Infineon TLE78xx series.▪Corrected: sim ulation for external interrupt inputs EINT0 and EINT1on Infineon XC800 devices.▪Corrected: debugger startup problem s with the Infineon DAS server.C51 Version 8.06 Release▪[Device Support]Infineon XC800 Devices: added debugging and flash programmingsupport for new Infineon XC800 devices (XC866-1FR, XC856) withULINK and Infineon DAS server.▪Enhanced: Infineon XC800 startup code START_XC.A51 V1.02 thatsupports pdata addressing (C51: USING PDATA VARIABLES ONINFINEON XC800).▪SST Sm artCards: added core features for device sim ulation.[Device Simulation]▪Corrected: interrupt vector for 2nd UART on Philips P89LPC952 wasincorrectly configured in simulator and target dialog.▪Enhanced: VTREG PPAGE is initialized to 0 on all Philips LPC900devices to allow simulation of MOVX @Ri without configuration.▪Corrected: a problem with AT89S8252 EEPROM simulation.▪Corrected: a problem with the baudrate generation on At m el deviceswith X2 feature (the baudrate was displayed incorrect).▪Corrected: a problem with code banking on Mentor M8051EW core. [Cx51 Compiler]▪Corrected: code that is not used (i.e. with m acros) is removed, evenwhen it creates other side effects.▪Corrected: unexpected error m essage for syntactical correctstatem ent.struct st2 { unsigned char uc1; unsigned char uc2; };struct st1 { struct st2 st2; unsigned char u1; unsigned char u2; };struct st1 st;void main (void) {(&st.st2)->uc1 = 0; // gives error, but should be Ok.}▪Corrected: library function toint did no flag values 0x3A - 0x40 asincorrect.[ULINK and ULINK2 Support]▪Added: support for ULINK2 for the Infineon XC800 and ST uPSDseries.▪Added: device support for Infineon XC886, XC888, and XC856.C51 Version 8.05 Release▪[Device Simulation for Infineon XC88x Series]Added device sim ulation for Infineon XC886 and Infineon XC888.▪[Device Simulation for Philips P89LPC952/954]Corrected: the two serial windows did not work for the Philips P89LPC952/954 devices.▪[Device Simulation for M8051EW]Corrected: when M8051EW features were enabled, it was not possible to debug non-banking applications.▪[Device Simulation for R8051XC]Enhanced: som e features were not covered in the first revision of the simulator.Now the simulator also takes care about peripheral timing, and write operations to code m emory.▪[LX51 Linker/Locater]Corrected: when using interbank call table optim ization (?B_RST_BANK != 0xFF), the linker was optimizing too much.▪[ULINK Driver for ST uPSD]Corrected: flash programming did not work for uPSD3422 devices.[Cx51 Compiler]▪Enhanced: C51 did issue an error when accessing struc t m emberswith s->member instead of s.member.▪Corrected: using multiple dummy assignm ents to rem ove unusedvariables m ay cause register overwrites.▪Corrected: potential code problems when increm enting far pointerswith long constants.void func (void) {unsigned int i;long far* entry;while(i) {i--; // increment missingentry += 1L; // due to 'far' pointer increment with 1L}}▪Corrected: potential problem on SmartMX, when using Optimize level8 or 9 without OBJECTADVANCED.#pragma MXPint xdata x;char xdata * xdata p;void f1 (char *);void f2 (char *);void main (void) { // uses CMPW instruction that affects 'Z' flagif (x == 0xFFFF) f1 (p); // MOVX A,Rx,@DPTR destroys 'Z' flagelse f2 (p); // and cannot be combined}C51 Version 8.04 Release[Cx51 Compiler]▪Enhanced: The Warning C259: pointer: different mspace is im provedand covers now also situations where an address value is assigned.▪New: The Warning C289: converting non-pointer to pointer is issuedwhen a integer value is assigned to a pointer.▪Corrected: A problem with the SRC file output is wrong withoptimized address values.▪Corrected: dummy read to MD3 was missing for int*int m ultiplicationwhen using the Infineon/Evatronix MDU.▪Added: Support for the SiLABS Arithmetic Accelerator (available inC8051F12x and F13x devices) in the far banking library.▪[Device Support for Evatronix/Cast R8051XC Core]Added com plete sim ulation and com piler support for the features of theR8051XC core. Detailed information is provided in Application Note 191: Toolchain Extensions for the R8051XC Core.▪[Device Support for Mentor M8051EW Core]Enhanced simulation support for the Mentor M8051EW memory extension features. It is now possible to sim ulate code banking and far m emory applications and the address of the The address of the extension corefeatures of the R8051XC core. Detailed information is provided in Application Note 171: Using M8051EW Memory Extension.▪[Device Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800 devices (XC886, XC888). Detailed information is▪[BL51 and LX51 Linker/Locater]Corrected: there might be incorrect WARNING L15: MULTIPLE CALL TO FUNCTION messages when using syntax: OVERLAY (* ! (func1, func2,func3,...)) to group more than just two functions.C51 Version 8.02 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for the following devices:▪Atm el AT89C51RE2, AT89C51IE2, AT89C51CC03, AT8xC51SND1,AT89S8253, AT89LP2052, AT89LP4052▪Revised: Atm el AT89C5131/AT89C5131A(added TWI), AT8xC5132(added TWI, ADC)▪Philips P89LPC9102, P89LPC9103, P89LPC9107. P89LPC9221,P89LPC9311, P89LPC932A1, P89LPC938,▪Philips P89LPC9401/P89LPC9408 (without LCD Driver), P89LPC952,P89LPC964, P89LPC966▪Philips P89V660, P90V662, P89V664[LX51 Linker/Locater]Corrected a problem with code banking, the linker reported incorrectly error L124: BANK SWITCH MODULE INCORRECT.▪[Cx51 Compiler]Corrected a m acro expansion problem, array index calculations with negative offset, and far access to absolute m emory locations.▪[Target Debugging Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800 devices (XC886, XC888).▪[ULINK Driver for ST uPSD]Added new JTAG device ID's for ST uPSD3212, uPSD3312, and uPSD3422.C51 Version 8.01 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for the following devices:▪Silicon Labs C8051F120, Silicon Labs C8051F121, Silicon LabsC8051F122, Silicon Labs C8051F123,▪Silicon Labs C8051F124, Silicon Labs C8051F125, Silicon LabsC8051F126, Silicon Labs C8051F127,▪Silicon Labs C8051F130, Silicon Labs C8051F131, Silicon LabsC8051F132, Silicon Labs C8051F133[P89LPC952 and MCB950 Board Support]Added support for Philips P89LPC95x device series.▪[A X51 Macro A ssembler]Corrected a problem with forward references in sym bols which generates an error m essage.▪[LX51 Linker/Locater - Code Packing]Corrected a potential problem with code packing when modules are translated with different optimization levels (less than 8) but the OBJECTADVANCED directive.▪[L51_BA NK.A51 - Code Banking Configuration File]Changed behavior of the ?B_RESTORE_BANK entry with ?B_MODE=0 to avoid glitches when using the RTX51 or RTX51 Tiny operating system together with code banking.▪[Cx51 Compiler]Version number changed for logistic reasons. No other changes com pared to V8.00.C51 Version 8.00 Release▪[uVision3 IDE]The µVision3 IDE contains several enhancem ents orrected: the device simulation covers now the latest timing specification for Dallas DS89C420, DS89C430, DS89C440, and DS89C450 devices. The tim er simulation was previously based on a older data book and therefore incorrect.[Device Simulation]▪Corrected: the device sim ulation c overs now the latest tim ingspecification for Dallas DS89C420, DS89C430, DS89C440, andDS89C450 devices. The tim er simulation was previously based on a olderdata book and therefore incorrect.▪[Target Debugging for A nalog Devices ADuC83x and ADuC84x]Options - Project - Debug - Use: ADI Monitor Driver selects target driver for the Analog Devices ADuC834 and ADuC84x devices. This driver directly connects via a serial COM interface to the on-chip Download/Debug Kernel of the ADuC device. No specific monitor or firmware is required. A detaileddocum entation is available in the Analog Devices ADuC83x/84x Download/Debug Driver User's Guide (..\C51\HLP\MonADI.CHM).▪[Support for Infineon XC866]Added complete support for new Infineon XC800 Device series including device simulation, ULINK driver, and MCBXC866 Evaluation Board support.▪Example projects are provided in thefolder ..\C51\Examples\Infineon XC866.▪Complete docum entation is available in the MCBXC866 User'sGuide(..\C51\HLP\MCBXC866.CHM) which also explains the ULINKdriver.▪[Support for ST uPSD34xx Series]Added com plete ULINK support for new ST uPSD34xx device series.[C Library]▪Corrected: on Dallas 390, 400, 5240, and 5250 devices tan (INF)generated a wrong return, and printf ("%f")did not print the floatingpoint value INF and NaN.▪Corrected: the return value of scanf and sscanf was just 0xFF insteadof -1 when no arguments where processed.▪Corrected: the library takes care about the changed behavior of theMem ory Accelerator on Dallas DS80C390 Rev. C.▪Corrected: on Dallas 390, 400, 5240, and 5250 devices m emmove inxdata m emory failed when source buffer is overlapping destinationbuffer.C51 Version 7.50a Release▪[LX51 Linker/Locater]Corrected: potential problem with Linker Code Packing that m ight causein-efficient operation or a MEMORY SPACE OVERLAY warning.▪Corrected: fixup error messages when using the REMOVEUNUSEDdirective.▪Corrected: when using L51_BANK.A51 the far m emory addressingused a wrong offset (-64KB). Instead of X:0x20000 the X:0x10000 wasaddressed.▪[BL51 Linker/Locater]The new BL51 Linker/Locater was by accident not included in Version 7.50.▪[C Library]Corrected a problem on Dallas 390, 400, 5240, and 5250 devices with log and log10 when const data is not in stored in segm ent 0 (C:0x0000-C:0xFFFF).C51 Version 7.50 Release▪[uVision2 Debugger]Added Extended Memory Simulation for Mentor M8051EW. Refer to Application Note 171: Using M8051EW Memory Extension in the folder \C51\EXAMPLES\M8051EW.Added peripheral simulation support and target debugging dialogs for the following devices:▪Dallas Semiconductor DS89C420,▪Dallas Semiconductor DS89C430,▪Dallas Semiconductor DS89C440,▪Dallas Semiconductor DS89C450,▪Silicon Labs C8051F000,▪Silicon Labs C8051F001,▪Silicon Labs C8051F002,▪Silicon Labs C8051F005,▪Silicon Labs C8051F006,▪Silicon Labs C8051F007,▪Silicon Labs C8051F010,▪Silicon Labs C8051F011,▪Silicon Labs C8051F012,▪Silicon Labs C8051F015,▪Silicon Labs C8051F016,▪Silicon Labs C8051F017,▪Silicon Labs C8051F350,▪Silicon LabsC8051F351,▪Silicon LabsC8051F352,▪Silicon LabsC8051F353,▪SST SST89E554RC,▪SST SST89E564RD,▪SST SST89V554RC,▪SST SST89V564RD.▪[ISD51 In-System Debugger]Added example configuration for Dallas DS89C420, DS89C430, DS89C440, and DS89C450 devices. For details refer to Application Note 177: Using ULINK with STMicroelectronics Turbo µPSD 3300/3400 Devices and the sam ple projects in the folder ..\C51\EXAMPLES\ST uPSD.[C51 Compiler]▪Corrected a code generation issue for negative array index values.For example:signed int i = v1 - v2;value = table [i + 4]; // code works for 'signed char' index// but fails with 'signed int' index▪Added MODC2 Compiler Directive: enables use of dual datapointers available on the Cast and Evatronix R80515 core. Usingadditional data pointers improves the performance of the followinglibrary functions: memcpy, memmove, memcmp, strcpy, andstrcmp.▪Added MODH2 Compiler Directive: enables use of dual datapointers available on Hynix, ST uPSD 33xx, and ST uPSD 34xx devices.Using additional data pointers improves the performance of the followinglibrary functions: memcpy, memmove, memcmp, strcpy, andstrcmp.▪[CX51 Compiler]Corrected the following problem s for the Sm artMX instruction set:▪Switch/case with long types and ROM(HUGE).▪Over optimization with CMPW instruction.▪Stack adjust m ent failure with setjmp/longjmp library routines.▪[C Library]Corrected several library problems including:▪Corrected a problem on Dallas 390, 400, 5240, and 5250 deviceswith asin, acos, and atan when const data is not in stored in segment 0(C:0x0000-C:0xFFFF).▪The labs function has been optimized and is now fully reentrant.▪Added configuration symbol ?C?DPSEL that defines DPSEL SFRaddress for MOD517(NOAU)multiple DPTR support. May be used forMentor M8051EW based devices which have the Infineon m ethod formultiple DPT R but with a different DPSEL SFR address. The ?C?DPSELdefinition shown below m ay be included in a chip-specific Startup.A51 file.Without this definition, the DPSEL register is accessed at the defaultaddress 0x92.PUBLIC ?C?DPSEL?C?DPSEL DATA 0A2H ; define DPSEL address for Mentor M8051EW▪[LX51 Linker]Added the REMOVEUNUSED(abbreviation RU) directive which removes unused program and data segm ents provided that Data Overlaying is enabled.▪[ULINK]Added instruction trace support to the STMicroelectronics uPSD ULINK Driver.For details refer to Application Note 177: Using ULINK with STMicroelectronics Turbo µPSD 3300/3400 Devices and the sam ple projects in the folder ..\C51\EXAMPLES\ST uPSD.▪[BL51/LX51 Linker]Improved the OVERLAY directive. Now, using OVERLAY (* ! (func1, func2)), you m ay com bine the segm ents of several function call trees. This is useful for interrupt functions that have overlayable data but use the sam e interrupt level.Such interrupt functions cannot interrupt each other. Therefore, data overlaying of both call trees is possible. For example:void irq0 (void) interrupt 0 {unsigned char arr[10];arr[0] = 0;}void irq1 (void) interrupt 1 {unsigned char arr[10];arr[0] = 0;}If irq0 and irq1 are set to the sam e priority level their data areas m ay be overlaid. The OVERLAY directive m ay be specified to do that as follows:BL51 ... OVERLAY (* ! (irq0, irq1))The linker map file shows the following OVERLAY MAP.SEGMENT DATA_GROUP+--> CALLED SEGMENT START LENGTH----------------------------------------------?PR?IRQ1?I 0008H 000AH*** NEW ROOT *********************************?PR?IRQ0?I 0008H 000AHNote that both functions' call trees are overlaid.C51 Version 7.20 Release▪[uVision2 Debugger]。

在KEIL4环境下开发C8051F系列的单片机

在KEIL4环境下开发C8051F系列的单片机

在KEIL4环境下开发C8051F系列的单⽚机在KEIL4环境下开发C8051F系列的单⽚机:在安装完KIEL4以后还需要安装C8051F_uVision.exe(由Silicon laboratory公司提供的AGDI,在其官⽹上下载);此AGDI提供以下三个⽅⾯的功能:1:提供最新的C8051F系列单⽚机的器件数据库2:提供通过ECX系列或其他兼容在线调试器提供调试接⼝3:提供对C8051F系列单⽚机的FLASH接⼝安装Sic8051F_uVision.exe⽂件需在Keil安装⽬录中有TOOLS.INI⽂件,其内容主要如下:[UV4]ORGANIZATION="sdstar"NAME="Hua_ming", "Yu"EMAIL="sy.m@/doc/3b52b0379b6648d7c1c746d3.html "BOOK0=UV4\RELEASE_NOTES.HTM("uVision Release Notes",GEN)[C51]PATH="C:\Program Files\keil\C51\"VERSION=V9.01TDRV0=BIN\MON51.DLL ("Keil Monitor-51 Driver")TDRV1=BIN\ISD51.DLL ("Keil ISD51 In-System Debugger")TDRV2=BIN\SIC8051F.DLL ("SILICON LABS C8051Fxxx Driver")RTOS0=Dummy.DLL("Dummy")RTOS1=RTXTINY.DLL ("RTX-51 Tiny")RTOS2=RTX51.DLL ("RTX-51 Full")LIC0=UJ512-98S0H-ZGW7Q-NWPHT-8IHFH-6658M其中TDRV0~2 为8051的驱动程序,在安装好Sic8051F_uVision.exe⽂件后就会在Keil安装⽬录下⽣成SIC8051F.DLL⽂件,安装完毕后,任意打开C51的⼀个⼯程(如LED开发⼯程开Source Code\LED_Flow\project),先进⾏⼀系列的设置。

keilc51与MDK冲突的解决

keilc51与MDK冲突的解决

keil c51 与 MDK 冲突的解决最近又作了一些C51的工作,发现keil c51与 mdk 有冲突。

然后上网一查果然有很多人遇到这个问题,错误提示为下图:其实这个是MDK和KEIL C51 配置文件冲突的问题,可以参考下两个人的配置文件:[C51]PATH=&quot;D:\Program Files\Keil_C702\c51&quot; (修改添加部分)BOOK0=HLP\RELEASE_NOTES.HTM(&quot;ReleaseNotes&quot;)BOOK1=HLP\GS51.PDF(&quot;uVision2 GettingStarted&quot;)BOOK2=HLP\C51.PDF(&quot;C51 User's Guide&quot;) BOOK3=HLP\C51LIB.CHM(&quot;C51 LibraryFunctions&quot;,C)BOOK4=HLP\A51.PDF(&quot;Assembler/Utilities&quot;) BOOK5=HLP\TR51.CHM(&quot;RTX51 Tiny User'sGuide&quot;)BOOK6=HLP\DBG51.CHM(&quot;uVision2 Debug Commands&quot;)BOOK7=ISD51\ISD51.HTM(&quot;ISD51 In System Debugger&quot;)BOOK8=MON390\MON390.HTM(&quot;MON390: Dallas Contiguous Mode Monitor&quot;)TDRV0=BIN\MON51.DLL (&quot;Keil Monitor-51Driver&quot;)TDRV1=BIN\ISD51.DLL (&quot;Keil ISD51 In-System Debugger&quot;)TDRV2=BIN\MON390.DLL (&quot;MON390: Dallas Contiguous Mode&quot;)TDRV3=BIN\LPC2EMP.DLL (&quot;LPC900 EPMEmulator/Programmer&quot;)RTOS1=RTXTINY.DLL (&quot;RTX-51 Tiny&quot;)RTOS2=RTX51.DLL (&quot;RTX-51 Full&quot;)Version=V7.0================================================= =============[ARM]PATH=&quot;D:\Program Files\MDK4.10\ARM\&quot; VERSION=4.10PATH1=&quot;C:\ProgramFiles\CodeSourcery\Sourcery G++ Lite\&quot; TOOLPREFIX=arm-none-eabi-CPUDLL0=SARM.DLL(TDRV0,TDRV5,TDRV6,TDRV10)# Drivers for ARM7/9 devicesCPUDLL1=SARMCM3.DLL(TDRV1,TDRV2,TDRV3,TDRV4,TDRV5 ,TDRV7,TDRV8,TDRV9)# Drivers for Cortex-M devicesBOOK0=&quot;HLP\RELEASE_NOTES.HTM&quot;(&quot;Release Notes&quot;,GEN)BOOK1=&quot;HLP\ARMTOOLS.chm&quot;(&quot;Complete User's Guide Selection&quot;,C) BOOK2=&quot;HLP\RL_RELEASE_NOTES.HTM&quot;(&quot;RTL-ARM Release Notes&quot;,GEN)BOOK3=&quot;HLP\RVI.chm&quot; (&quot;RV Compiler Introduction&quot;,GEN)BOOK4=&quot;Signum\Docs\SigUV3Arm.htm&quot;(&quot;Signum Systems JTAGjet Driver Documentation&quot;,GEN)TDRV0=BIN\UL2ARM.DLL(&quot;ULINK ARMDebugger&quot;)TDRV1=BIN\UL2CM3.DLL(&quot;ULINK CortexDebugger&quot;)TDRV2=BIN\AGDIRDI.DLL(&quot;RDI InterfaceDriver&quot;)TDRV3=BIN\ABLSTCM.dll(&quot;Altera Blaster Cortex Debugger&quot;)TDRV4=BIN\lmidk-agdi.dll(&quot;StellarisICDI&quot;)TDRV5=Signum\SigUV3Arm.dll(&quot;Signum Systems JTAGjet&quot;)TDRV6=Segger\JLTAgdi.dll(&quot;J-LINK /J-TRACE&quot;)TDRV7=Segger\JL2CM3.dll(&quot;Cortex-M3J-LINK&quot;)TDRV8=STLink\ST-LINKIII-KEIL.dll (&quot;ST-Link Debugger&quot;)TDRV9=BIN\ULP2CM3.DLL(&quot;ULINK Pro Cortex Debugger&quot;)TDRV10=BIN\ULP2ARM.DLL(&quot;ULINK Pro ARM Debugger&quot;)LIC0=ATT9U-SR4AF-S9MG4-F9K4J-X1RVH-SJP83 我想大家一定发现问题了,就是在c51的编译器等目录下面没有他的目标路径而arm有,所以他肯定会提示工具不匹配之类的问题。

Keil新版介绍

Keil新版介绍

Release Notes for C518051 Development Tool KitsThis file contains release notes and last minute changes that are not found in theprinted manuals.Information in this file, the accompany manuals, and software isCopyright © Keil Software, Inc and Keil Elektronik GmbH.All rights reserved.Contents1.What's New in C512.Example Programs3.Device Database™4.Peripheral Simulation5.Technical Support6.Contact DetailsWhat's New in C51The following sections list the changes instituted in each release of the C51 toolset. C51 Version 8.08a Release▪[Device Simulation]▪Corrected: the previous version had a delay when starting signal functions. This delay is now removed so that the startup behavior isidentical to releases before version 8.06.▪Corrected: the behavior of JBC instructions on I/O ports was not fully correct. JBC instructions now read the SFR register (Px) instead of theI/O port value (PORTx).▪[Cx51 Compiler]▪Corrected: integer promotion was missing on complex arithmetic with char/unsigned char and multiplication or division.▪[Ax51 Macro Assembler]▪Enhanced: the _DATE2_ macro is now defined also for the A51 and AX51 Macro Assembler.▪[uVision3 IDE]▪Corrected: potential crash in the project window on right mouse click when no item was selected.▪[Device Support]▪Corrected: Peripheral display for Port 4 and Port 5 of the NXP 89LPC952 device was missing.▪Enhanced: on XC800 devices the dialog Project - Options - Debug - ULINK Settings - Disable interrupts during steps is implemented.This option disables interrupts during single-stepping and thereforeexecutes only instructions from the current function.▪Added support for Infineon TLE78xx series.▪Corrected: simulation for external interrupt inputs EINT0 and EINT1 on Infineon XC800 devices.▪Corrected: debugger startup problems with the Infineon DAS server. C51 Version 8.06 Release▪[Device Support]▪Infineon XC800 Devices: added debugging and flash programming support for new Infineon XC800 devices (XC866-1FR, XC856) withULINK and Infineon DAS server.▪Enhanced: Infineon XC800 startup code START_XC.A51 V1.02 that supports pdata addressing (C51: USING PDATA VARIABLES ONINFINEON XC800).▪SST SmartCards: added core features for device simulation.▪[Device Simulation]▪Corrected: interrupt vector for 2nd UART on Philips P89LPC952 was incorrectly configured in simulator and target dialog.▪Enhanced: VTREG PPAGE is initialized to 0 on all Philips LPC900 devices to allow simulation of MOVX @Ri without configuration.▪Corrected: a problem with AT89S8252 EEPROM simulation.▪Corrected: a problem with the baudrate generation on Atmel devices with X2 feature (the baudrate was displayed incorrect).▪Corrected: a problem with code banking on Mentor M8051EW core.▪[Cx51 Compiler]▪Corrected: code that is not used (i.e. with macros) is removed, even when it creates other side effects.▪Corrected: unexpected error message for syntactical correct statement.▪struct st2 { unsigned char uc1; unsigned char uc2; };▪struct st1 { struct st2 st2; unsigned char u1; unsigned char u2; };▪struct st1 st;▪▪void main (void) {▪ (&st.st2)->uc1 = 0; // gives error, but should be Ok.}▪Corrected: library function toint did no flag values 0x3A - 0x40 as incorrect.▪[ULINK and ULINK2 Support]▪Added: support for ULINK2 for the Infineon XC800 and ST uPSD series.▪Added: device support for Infineon XC886, XC888, and XC856.C51 Version 8.05 Release▪[Device Simulation for Infineon XC88x Series]Added device simulation for Infineon XC886 and Infineon XC888.▪[Device Simulation for Philips P89LPC952/954]Corrected: the two serial windows did not work for the PhilipsP89LPC952/954 devices.▪[Device Simulation for M8051EW]Corrected: when M8051EW features were enabled, it was not possible todebug non-banking applications.▪[Device Simulation for R8051XC]Enhanced: some features were not covered in the first revision of thesimulator. Now the simulator also takes care about peripheral timing, andwrite operations to code memory.▪[LX51 Linker/Locater]Corrected: when using interbank call table optimization(?B_RST_BANK != 0xFF), the linker was optimizing too much.▪[ULINK Driver for ST uPSD]Corrected: flash programming did not work for uPSD3422 devices.▪[Cx51 Compiler]▪Enhanced: C51 did issue an error when accessing struct members with s->member instead of s.member.▪Corrected: using multiple dummy assignments to remove unused variables may cause register overwrites.▪Corrected: potential code problems when incrementing far pointers with long constants.▪void func (void) {▪ unsigned int i;▪ long far* entry;▪▪ while(i) {▪ i--; // increment missing▪ entry += 1L; // due to 'far' pointer increment with 1L▪ }}▪Corrected: potential problem on SmartMX, when using Optimize level8 or 9 without OBJECTADVANCED.▪#pragma MXP▪int xdata x;▪char xdata * xdata p;▪▪void f1 (char *);▪void f2 (char *);▪▪void main (void) { // uses CMPW instruction that affects 'Z' flag▪ if (x == 0xFFFF) f1 (p); // MOVX A,Rx,@DPTR destroys 'Z' flag▪ else f2 (p); // and cannot be combined }C51 Version 8.04 Release▪[Cx51 Compiler]▪Enhanced: The Warning C259: pointer: different mspace is improved and covers now also situations where an address value is assigned.▪New: The Warning C289: converting non-pointer to pointer is issued when a integer value is assigned to a pointer.▪Corrected: A problem with the SRC file output is wrong with optimized address values.▪Corrected: dummy read to MD3 was missing for int*int multiplication when using the Infineon/Evatronix MDU.▪Added: Support for the SiLABS Arithmetic Accelerator (available in C8051F12x and F13x devices) in the far banking library.▪[Device Support for Evatronix/Cast R8051XC Core]Added complete simulation and compiler support for the features of theR8051XC core. Detailed information is provided in Application Note 191:Toolchain Extensions for the R8051XC Core.▪[Device Support for Mentor M8051EW Core]Enhanced simulation support for the Mentor M8051EW memory extensionfeatures. It is now possible to simulate code banking and far memoryapplications and the address of the The address of the extensioncorefeatures of the R8051XC core. Detailed information is provided inApplication Note 171: Using M8051EW Memory Extension.▪[Device Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800devices (XC886, XC888). Detailed information is▪[BL51 and LX51 Linker/Locater]Corrected: there might be incorrect WARNING L15: MULTIPLE CALL TOFUNCTION messages when using syntax: OVERLAY (* ! (func1,func2,func3,...)) to group more than just two functions.C51 Version 8.02 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Atmel AT89C51RE2, AT89C51IE2, AT89C51CC03, AT8xC51SND1, AT89S8253, AT89LP2052, AT89LP4052▪Revised: Atmel AT89C5131/AT89C5131A (added TWI), AT8xC5132 (added TWI, ADC)▪Philips P89LPC9102, P89LPC9103, P89LPC9107. P89LPC9221, P89LPC9311, P89LPC932A1, P89LPC938,▪Philips P89LPC9401/P89LPC9408 (without LCD Driver), P89LPC952, P89LPC964, P89LPC966▪Philips P89V660, P90V662, P89V664▪[LX51 Linker/Locater]Corrected a problem with code banking, the linker reported incorrectlyerror L124: BANK SWITCH MODULE INCORRECT.▪[Cx51 Compiler]Corrected a macro expansion problem, array index calculations withnegative offset, and far access to absolute memory locations.▪[Target Debugging Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800devices (XC886, XC888).▪[ULINK Driver for ST uPSD]Added new JTAG device ID's for ST uPSD3212, uPSD3312, anduPSD3422.C51 Version 8.01 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Silicon Labs C8051F120, Silicon Labs C8051F121, Silicon Labs C8051F122, Silicon Labs C8051F123,▪Silicon Labs C8051F124, Silicon Labs C8051F125, Silicon Labs C8051F126, Silicon Labs C8051F127,▪Silicon Labs C8051F130, Silicon Labs C8051F131, Silicon Labs C8051F132, Silicon Labs C8051F133▪[P89LPC952 and MCB950 Board Support]Added support for Philips P89LPC95x device series.▪[AX51 Macro Assembler]Corrected a problem with forward references in symbols which generatesan error message.▪[LX51 Linker/Locater - Code Packing]Corrected a potential problem with code packing when modules aretranslated with different optimization levels (less than 8) but theOBJECTADVANCED directive.▪[L51_BANK.A51 - Code Banking Configuration File]Changed behavior of the ?B_RESTORE_BANK entry with ?B_MODE=0 toavoid glitches when using the RTX51 or RTX51 Tiny operating systemtogether with code banking.▪[Cx51 Compiler]Version number changed for logistic reasons. No other changes comparedto V8.00.C51 Version 8.00 Release▪[uVision3 IDE]The µVision3 IDE contains several enhancements orrected: the devicesimulation covers now the latest timing specification for Dallas DS89C420,DS89C430, DS89C440, and DS89C450 devices. The timer simulation waspreviously based on a older data book and therefore incorrect.▪[Device Simulation]▪Corrected: the device simulation covers now the latest timing specification for Dallas DS89C420, DS89C430, DS89C440, andDS89C450 devices. The timer simulation was previously based on aolder data book and therefore incorrect.▪[Target Debugging for Analog Devices ADuC83x and ADuC84x]Options - Project - Debug - Use: ADI Monitor Driver selects targetdriver for the Analog Devices ADuC834 and ADuC84x devices. This driverdirectly connects via a serial COM interface to the on-chipDownload/Debug Kernel of the ADuC device. No specific monitor orfirmware is required. A detailed documentation is available in the AnalogDevices ADuC83x/84x Download/Debug Driver User's Guide(..\C51\HLP\MonADI.CHM).▪[Support for Infineon XC866]Added complete support for new Infineon XC800 Device series includingdevice simulation, ULINK driver, and MCBXC866 Evaluation Boardsupport.▪Example projects are provided in thefolder ..\C51\Examples\Infineon XC866.▪Complete documentation is available in the MCBXC866 User's Guide (..\C51\HLP\MCBXC866.CHM) which also explains the ULINKdriver.▪[Support for ST uPSD34xx Series]Added complete ULINK support for new ST uPSD34xx device series.▪[C Library]▪Corrected: on Dallas 390, 400, 5240, and 5250 devices tan (INF) generated a wrong return, and printf ("%f") did not print the floatingpoint value INF and NaN.▪Corrected: the return value of scanf and sscanf was just 0xFF instead of -1 when no arguments where processed.▪Corrected: the library takes care about the changed behavior of the Memory Accelerator on Dallas DS80C390 Rev. C.▪Corrected: on Dallas 390, 400, 5240, and 5250 devices memmove in xdata memory failed when source buffer is overlapping destinationbuffer.C51 Version 7.50a Release▪[LX51 Linker/Locater]▪Corrected: potential problem with Linker Code Packing that might cause in-efficient operation or a MEMORY SPACE OVERLAY warning.▪Corrected: fixup error messages when using the REMOVEUNUSED directive.▪Corrected: when using L51_BANK.A51 the far memory addressing used a wrong offset (-64KB). Instead of X:0x20000 the X:0x10000 wasaddressed.▪[BL51 Linker/Locater]The new BL51 Linker/Locater was by accident not included in Version7.50.▪[C Library]Corrected a problem on Dallas 390, 400, 5240, and 5250 devices with logand log10 when const data is not in stored in segment 0(C:0x0000-C:0xFFFF).C51 Version 7.50 Release▪[uVision2 Debugger]Added Extended Memory Simulation for Mentor M8051EW. Refer toApplication Note 171: Using M8051EW Memory Extension in thefolder \C51\EXAMPLES\M8051EW.Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Dallas Semiconductor DS89C420,▪Dallas Semiconductor DS89C430,▪Dallas Semiconductor DS89C440,▪Dallas Semiconductor DS89C450,▪Silicon Labs C8051F000,▪Silicon Labs C8051F001,▪Silicon Labs C8051F002,▪Silicon Labs C8051F005,▪Silicon Labs C8051F006,▪Silicon Labs C8051F007,▪Silicon Labs C8051F010,▪Silicon Labs C8051F011,▪Silicon Labs C8051F012,▪Silicon Labs C8051F015,▪Silicon Labs C8051F016,▪Silicon Labs C8051F017,▪Silicon Labs C8051F350,▪Silicon Labs C8051F351,▪Silicon Labs C8051F352,▪Silicon Labs C8051F353,▪SST SST89E554RC,▪SST SST89E564RD,▪SST SST89V554RC,▪SST SST89V564RD.▪[ISD51 In-System Debugger]Added example configuration for Dallas DS89C420, DS89C430,DS89C440, and DS89C450 devices. For details refer to Application Note 177: Using ULINK with STMicroelectronics Turbo µPSD 3300/3400Devices and the sample projects in the folder ..\C51\EXAMPLES\ST uPSD.▪[C51 Compiler]▪Corrected a code generation issue for negative array index values.For example:▪signed int i = v1 - v2;▪value = table [i + 4]; // code works for 'signed char' index ▪ // but fails with 'signed int' index▪Added MODC2 Compiler Directive:enables use of dual data pointers available on the Cast and Evatronix R80515 core. Usingadditional data pointers improves the performance of the followinglibrary functions: memcpy, memmove, memcmp, strcpy, andstrcmp.▪Added MODH2 Compiler Directive: enables use of dual data pointers available on Hynix, ST uPSD 33xx, and ST uPSD 34xx devices.Using additional data pointers improves the performance of thefollowing library functions: memcpy, memmove, memcmp, strcpy, and strcmp.▪[CX51 Compiler]Corrected the following problems for the SmartMX instruction set:▪Switch/case with long types and ROM(HUGE).▪Over optimization with CMPW instruction.▪Stack adjustment failure with setjmp/longjmp library routines.▪[C Library]Corrected several library problems including:▪Corrected a problem on Dallas 390, 400, 5240, and 5250 devices with asin, acos, and atan when const data is not in stored in segment0 (C:0x0000-C:0xFFFF).▪The labs function has been optimized and is now fully reentrant.▪Added configuration symbol ?C?DPSEL that defines DPSEL SFR address for MOD517(NOAU) multiple DPTR support. May be used for Mentor M8051EW based devices which have the Infineon method formultiple DPTR but with a different DPSEL SFR address. The ?C?DPSEL definition shown below may be included in a chip-specific Startup.A51 file. Without this definition, the DPSEL register is accessed at the default address 0x92.▪PUBLIC ?C?DPSEL?C?DPSEL DATA 0A2H ; define DPSEL address for Mentor M8051EW▪[LX51 Linker]Added the REMOVEUNUSED (abbreviation RU) directive which removes unused program and data segments provided that Data Overlaying is enabled.▪[ULINK]Added instruction trace support to the STMicroelectronics uPSD ULINK Driver. For details refer to Application Note 177: Using ULINK withSTMicroelectronics Turbo µPSD 3300/3400 Devices and the sampleprojects in the folder ..\C51\EXAMPLES\ST uPSD.▪[BL51/LX51 Linker]Improved the OVERLAY directive. Now, using OVERLAY (* ! (func1, func2)), you may combine the segments of several function call trees.This is useful for interrupt functions that have overlayable data but use the same interrupt level. Such interrupt functions cannot interrupt each other.Therefore, data overlaying of both call trees is possible. For example:▪void irq0 (void) interrupt 0 {▪ unsigned char arr[10];▪ arr[0] = 0;▪}▪▪void irq1 (void) interrupt 1 {▪ unsigned char arr[10];▪ arr[0] = 0;▪ }If irq0 and irq1 are set to the same priority level their data areas may beoverlaid. The OVERLAY directive may be specified to do that as follows:BL51 ... OVERLAY (* ! (irq0, irq1))The linker map file shows the following OVERLAY MAP.SEGMENT DATA_GROUP+--> CALLED SEGMENT START LENGTH----------------------------------------------?PR?IRQ1?I 0008H 000AH*** NEW ROOT *********************************?PR?IRQ0?I 0008H 000AHNote that both functions' call trees are overlaid.C51 Version 7.20 Release▪[uVision2 Debugger]Added peripheral simulation support for the following devices:▪Analog Devices ADuC841,▪Analog Devices ADuC842,▪Analog Devices ADuC843,▪Analog Devices ADuC845,▪Analog Devices ADuC847,▪Analog Devices ADuC848,▪Altium Nexar TSK51x MCU Core,▪Cast/Evatronix R8051 MCU Core,▪Cast/Evatronix R80515 MCU core,▪DCD DR8051 MCU core,▪DCD DR80390 MCU core,▪DCD DR8051XP MCU core,▪DCD DR80390XP MCU core,▪Mentor M8051EW MCU core,▪TI MSC1200Y2,▪TI MSC1200Y3.CPU core simulation may be expanded with user peripherals using theAGSI Interface.▪[ISD51 Configuration Examples]Added ISD51 configuration for the TI MSC1200. Refer to Application Note183: Use ISD51 on TI MSC1200 for more information.▪[ISD51 Configuration Examples]Revised the configuration for Philips LPC900 to match the current PhilipsLPC900 device versions.▪[FlashMonitor]Added a new configuration for the Atmel AT8xC5122. Currentconfigurations support almost all new Atmel device variants and aresummarized in the \KEIL\C51\FlashMon\ReadMe.txt file.▪[C51 Compiler]Added intrinsic functions _push_ and _pop_ that may be used to saveand restore sfr registers in interrupt functions.▪[C51 Compiler]Added support for the Silicon Labs C8051F12x multiply and accumulateunit (MAC0). The MDU_F120 directive enables use of MAC0 for int andlong multiplication and long shift operations.▪[CX51 Compiler]Corrected a problem with far pointers and long arithmetic.▪[ULINK Driver for ST µPSD series]Corrected a problem while programming Flash memory that caused themicrocontroller to execute random instructions. The MCU is now forcedinto RESET while programming the Flash.C51 Version 7.10 Release▪[uVision2 Debugger]Added simulation support for the following devices:▪Philips P89LPC935 and other downgraded LPC900 devices▪Philips P89C669▪ST µPSD33xx▪[uVision2 Debugger]Corrected A/D converter simulation of the ADuC831.▪[LX51 Linker Code Packing]Corrected a problem with code packing and JMP optimizations.▪[ULINK Driver for ST µPSD series]Merged the Flash and Debug Setup Dialog. The ST Merge Utility(UTLADRM.EXE) may be called automatically. Additionally, a problem withlock-ups was corrected.▪[C51 Compiler]Corrected a problem with unbalanced PUSH/POP sequences in complexindirect function calls.C51 Version 7.09 Release▪[uVision2 Debugger - ULINK Support for STMicroelectronics µPSD3300/3400] Added final release of the ULINK debugging and Flash programmingsupport for the new STMicroelectronis µPSD3300/3400 devices.Program examples and an Application Note are provided are in the\KEIL\C51\EXAMPLES\ST uPSD folder.▪[LX51 Linker Code Packing]Corrected a potential problem with linker code packing which may causethe linker/locater to hang.C51 Version 7.08 Release▪[C51 Compiler]Corrected a potential problem with the CSTXPTR function of the EEPROMprogram examples for the Atmel parts(\KEIL\C51\EXAMPLES\FarMemory\E2PROM on T89C51RD2 and\KEIL\C51\EXAMPLES\FarMemory\3 XData Areas onT89C51RD2).▪[Cx51 Compiler]When the setjmp and longjmp library routines are used in a codebanking application, you must include the source file\KEIL\C51\LIB\SETJMP.A51 in your project. This file containsversions of these routines that support code banking. The routines in thestandard library do not support code banking applications.▪[Cx51 Compiler]Corrected a problem passing complex function parameters when farvariables are used as function arguments.▪[A51/AX51 Macro Assembler]Modified the assembler so that core SFR register symbols (ACC, B, DPL,DPH, PSW, SP) are automatically defined even when the NOMOD51directive is used. This avoids error messages when generating assembler source (SRC) files from C modules that do not include a register definition file.▪[AX51 Macro Assembler]Added the EVEN directive which is described in the Ax51 User's Guide.Previously, this directive was available only in the A251 Assembler.▪[LX51 Linker]Corrected a problem with the memory allocation strategy that wasintroduced in Version 7.07. This problem caused incorrect addresscalculations for constant segments that were located after packed code segments.▪[LX51 Linker]Corrected a problem with wildcards in the SEGMENTS directive. Forexample, SEGMENTS (?PR?*?module (C:0x4000)) did not locate all segments above 0x4000. Instead only the first segment was located at C:0x4000 and other segments were located within the CLASS definition.▪[ISD51 In-System Debugger]Corrected a problem with flash breakpoints when the flash block size (CBLK_SZ) was configured for 1 byte.▪[Cx51 Run-Time Library]Improved the rand library routine to deliver better distributedpseudo-random numbers. The new algorithm is based on a galois LFSR generator.▪[uVision2 Debugger/Simulator]Added simulation for the following IP Cores:▪Actel Core8051.▪Cast C8051 Core, Cast D80530 Core, Cast R8051 Core, and Cast R80515 Core.▪Dolphin Flip8051 Breeze, Dolphin Flip8051 Cyclone, Dolphin Flip8051 Thunder, and Dolphin Flip8051 Wind.▪[uVision2 Debugger]Added ULINK debugging and Flash programming support for the new STMicroelectronics µPSD3300/3400 series of devices. Also added Flash programming support for the µPSD3200 series of devices. Program examples and an Application Note are provided in the\KEIL\C51\EXAMPLES\ST uPSD folder.▪[uVision2 IDE]Corrected a problem with menu and shortcut configuration on Windows NT machines.▪[uVision2 Debugger/Simulator]Corrected simulation and target display problems with the Philips LPC900series (i.e. the DIVM factor).C51 Version 7.07 Release▪[uVision2 IDE]Added a new dialog for project component management under Project -Components, Environment and Books. This dialog allows you tochange the order of project targets and file groups.▪[uVision2 Debugger/Simulator]Added simulation for the following devices:▪Atmel AT89C5131 (except USB)▪Atmel AT89C5132 (except A/D Converter, USB, Audio Interface, MMC Controller, and IDE/ATAPI Interface)▪Cygnal C8051F300▪Cygnal C8051F301▪Cygnal C8051F302▪Cygnal C8051F303▪Cygnal C8051F304▪Cygnal C8051F305▪Cygnal C8051F310▪Cygnal C8051F311▪Cygnal C8051F320▪Cygnal C8051F321▪Cygnal C8051F330▪Cygnal C8051F331▪ C Simulation) TI MSC1210 (I▪TI MSC1211▪TI MSC1212▪[uVision2 Debugger/Simulator]Corrected the following simulation problems:▪Analog Devices ADuC831: The internal RC clock (32768 Hz) is used for the watchdog timer. This was incorrectly documented in the firstdatasheets.▪Dallas Semiconductor Devices: The Watchdog EWT reset is now performed only on power-up reset and not on every reset.▪Winbond Devices: The Watchdog EWT reset is now performed only on power-up reset and not on every reset.▪[uVision2 Debugger]Corrected problems viewing local variables in projects linked with theLX51 Extended Linker/Locater.▪[C51 Compiler]Corrected problems in Dallas Contiguous Mode with *(*ptr++) typeconstructs and far pointer initialization at file level.▪[CX51 Compiler]Corrected problems for Philips MX when far/generic pointer assignmentsare reused in the subsequent statements. For example:▪ unsigned char far * far pbMemory;▪ unsigned long volatile ulAddress;▪▪ pbMemory += 1L; // uses ?C?PSTPTR to save the result ulAddress = pbMemory; // uses wrong result of the previous ?C?PSTPTRlibrary function▪[C51 Compiler]Corrected problems with SRC output on extended 8051 platforms likeDallas Contiguous Mode and Philips 51MX.▪[C51 Compiler]Added the ability to locate far memory variables in HDATA memory usingthe _at_ keyword.▪[LX51 Linker]Improved memory allocation in linker code packing to reduce the size ofsegment gaps when the SEGMENTS directive is used with assemblersegments.▪[Ax51 Macro Assembler]Added the DEFINE command line directive. This directive allows you tosupply C preprocessor on the command line. The syntax is identical to thatof the Cx51 Compiler.▪[Monitor-390]Corrected problems with xdata memory updates and added support forDallas 400 and Dallas 5240 devices.▪[ISD51 In-System Debugger - Version 2]Corrected a problem that caused serial break to fail when configured fornon-Flash breakpoints. Added example for TI MSC121x devices in the\KEIL\C51\EXAMPLES\TI MSC121X folder.C51 Version 7.06 Release▪[ISD51 In-System Debugger - Version 2]Corrected a problem that caused serial break to fail on ISD51 whenconfigured for non-Flash breakpoints.▪[Flash Monitor-51 Version 4]Added configurations for Atmel AT89C51RD2 and AT89C51SND1.▪[Flash Monitor-51 Version 4]Corrected a problem that caused Break on Serial Interrupt to fail when themonitor was generated using older versions of the tools.▪[uVision2 Debugger/Simulator]Added simulation for the following devices:▪Atmel AT89C51RD2▪Atmel AT89C51ED2▪Atmel AT89C51ID2▪Dallas Semiconductor 80C530▪Philips 8xC652▪Philips 8xC654▪[uVision2 Debugger/Simulator]Corrected simulation problems with the CCU Timer on the PhilipsP89LPC932.▪[uVision2 Debugger/Simulator]Added context menu commands in the Source Window and DisassemblyWindow for Set Program Counter, Show Disassembly, and Show SourceCode.▪[Cx51 Compiler]Corrected a problem that caused far pointer comparisons to NULL to failwhen the statement immediately following re-used the same pointer.▪[Cx51 Compiler]Corrected a problem with the NOINTPROMOTE directive that caused thecompiler to generate incorrect code. This problem was introduced in C51V7.04 in an effort to correct another integer promotion problem.C51 Version 7.05 Release▪[ISD51 In-System Debugger - Version 2]Added several new features including:▪Real-Time Flash Breakpoints using In-System ApplicationProgramming (IAP),▪User I/O via serial debugging interface,▪Address range support in the memory verify function.▪[Flash Monitor-51 - Version 4]A new variant of Monitor-51 is included in the PK51 ProfessionalDevelopers Kit. The new Monitor runs on unmodified Flash Devices thatprovide IAP programming. It requires no von-Neumann memory and canrun from the on-chip resources of standard 8051 Flash Devices. The FlashMonitor includes Flash download and real-time breakpoint support.Currently the Monitor is pre-configured for the Atmel T89C51CC01,T89C51RC2, and T89C51RD2 but it can easily be configured for otherdevices.▪[uVision2 Debugger/Simulator]Added simulation support for the Atmel T89C51CC02, T8xC5115,AT89C1051, AT89C1051U, AT89C2051, and AT89C4051 devices.▪[uVision2 Debugger/Simulator]Added simulation support for the Philips P8xC51Rx2,P8xC51RB2H/RC2H/RD2H, and P8xC3xX2 devices.▪[uVision2 Debugger/Simulator]Corrected a simulation problem with the AT89S8252 EEPROM and DualDPTR access.▪[uVision2 Debugger/Simulator]Corrected a simulation problem with the ADuC832 ADC DMA Stop.▪[uVision2 Debugger]Corrected a problem with local variables not displaying in the watchwindow - locals tab.▪[LX51 Extended Linker]Corrected a potential problem with linker code packing on optimize level10 and 11.▪[C51 Compiler]Corrected erroneous combining of identical end sequences of while (1)loops.C51 Version 7.04 Release▪[Philips MX Device Support]Changed INIT_MX.A51. Now, initialization is enabled for far variables bydefault. far variables may now be absolutely located with _at_.▪[MON390 Monitor for Dallas Contiguous Mode]Corrected problems with breakpoints above 64KB code. Corrected aproblem with single-stepping in switch/case statements.。

爱捣鼓Keil Uvision4之01编辑元器件库

爱捣鼓Keil Uvision4之01编辑元器件库

爱捣鼓Keil uVision4之01编辑元件库作者:爱捣鼓网站长爱捣鼓网版权和免责声明本文版权归爱捣鼓网所有。

未经爱捣鼓网允许和授权,不能擅自更改本文内容。

爱捣鼓网允许对本文进行自由传播,但不得用于商业用途。

在对本文进行转载和发布时,必须注明“来源:爱捣鼓网”,否则,请立即删除相关下载页面和链接。

对使用本文中任何内容造成的损失,爱捣鼓网和本文作者不承担任何责任。

爱捣鼓网和本文作者对本文进行任何更改,不保证能及时通知您。

请到爱捣鼓网下载最新版本和与本文配套的视频。

版本历史版本说明作者完成/修改日期V1.0.0 正式发布爱捣鼓网站长 2012-5-10目录1Keil元件库简介 (1)2编辑元件库的方法 (2)2.1替换原库法 (2)2.2增加新库法 (5)2.3添加新元件法 (9)2.3.1元件库的元件参数 (9)2.3.2添加新元件的方法 (11)3总结 (16)1Keil元件库简介Keil元件库(Device Database)是Keil uVision IDE支持的微控制器数据库。

该数据库中的微控制器是以生产微控制器公司的名称为基础进行分类的。

元件库中的元件包含其生产商信息、元件概述、头文件、数据手册、仿真动态链接库、监视动态链接库、片内存储器范围和最大晶振频率等信息。

在使用Keil uVision 4 IDE进行项目开发前,首先需要查看其默认的元件库(Device Database)中是否包含自己项目中使用的单片机或微控制器。

如果有,那么直接进行工程创建、开发和调试程序的工作即可。

否则,需要看项目中所选用的微控制器是否是这个工具软件所支持的微控制器架构。

目前,Keil uVision 4 IDE支持的微控制器架构有8051微控制器内核和ARM相关的内核,其详细的内容,可以参见该软件的介绍。

如果项目中选用的是Keil支持的微控制器架构,这就涉及本文讨论的编辑元件库方面的知识。

从Keil软件官方的支持文档和已有经验,可以总结出以下4种方法:(1)选择类同元件法:选择相似的或同一系列微控制器架构的已有型号,来创建工程,此时,需要确认选定型号的片内存储器范围是否合适。

KEIL C51 常见问题集合

KEIL C51 常见问题集合

Keil Cx51编译器编程基本原则和代码的优化 ——和复杂声明的理解Copyleft2009 by高飞电子经营部(官网地址,点击之前请确认。

)图1 51基本内核的结构框图以上各部分通过内部总线相连接。

在很多情况下,单片机还要和外部设备或外部存储器相连接,连接方式采用三总线(地址、数据、控制)方式,但在51单图2 普通51单片机的存储器组织结构空间名称 地址范围 说明 DATA D:00H~D:7FH 片内RAM直接寻址BDATA D:20H~D:2FH 片内RAM位寻址IDATA I:00H~I:FFH 片内RAM间接寻址XDATA X:0000H~X:FFFFH 64KB片外RAM数据区CODE C:0000H~C:FFFFH 64KB片外ROM代码区 BANK0~BANK31B0:0000~B0:FFFFH...B31:0000~B31:FFFFH分组代码区,最大可扩展32x64KB ROM表1 普通51单片机存储器空间分配表高飞出品必属精品,版权所有欢迎转载欢迎光临我的淘宝小店-高飞电子经营部/图3 新型51单片机的扩展存储器组织结构空间名称 地址范围 说明DATA D:00H~D:7FH 片内RAM 直接寻址 BDATA D:20H~D:2FH 片内RAM 位寻址 IDATA I:00H~I:FFH 片内RAM 间接寻址 XDATA X:0000H~X:FFFFH 64KB 片外RAM 数据区 CODE C:0000H~C:FFFFH 64KB 片外ROM 代码区 HCONST(ECODE) C:0000H~C:FFFFFFH 16MB 扩展片外ROM 常数区(对Dallas390可用做代码区)BANK0~BANK31 B0:0000~B0:FFFFH . . . B31:0000~B31:FFFFH分组代码区,最大可扩展32x64KB ROM表2 新型80C51单片机扩展存储器空间分配表6 ***WARNING 6 :XDATA SPACE MEMORY OVERLAP FROM : 0025H TO: 0025H说明外部存储器ROM的0025H 重复定义地址。

keil c51 单片机手册

keil c51 单片机手册

Optional Items
C51 TEST.C PRINT (filename)
{ opt1 | opt2 } Text contained within braces, separated by a vertical bar represents a group of items from which one must be chosen. The braces enclose all of the choices and the vertical bars separate the choices. One item in the list must be selected. Text in this sans serif typeface represents actual keys on the keyboard. For example, “Press Enter to continue.” Move the mouse until the mouse pointer rests on the item desired. Quickly press and release a mouse button while pointing at the item to be selected. Press the left mouse button while on a selected item. Then, hold the button down while moving the mouse. When the item to be selected is at the desired position, release the button. Click the mouse button twice in rapid succession.

Keil μVision4 集成开发环境入门

Keil μVision4 集成开发环境入门

打开器件库
License Management
产品注册管理
Print Setup
设置打印机
Print
Ctrl+P
打印当前文件
Print Preview
打印预览
1 .. 10
列出最近打开的源文件或文本文件
Exit
退出 KeilμVision4
2.Edit 菜单
Edit 菜单提供了常用的代码编辑操作命令。Edit 菜单各个命令的功能如表 A-2 所示。
提供了比工具栏上的工具条更为快捷的操作,即快捷键。在 Keil μVision4 集成开发环境
中不仅提供了常用功能的默认快捷键,同时用户也可以根据自己的需要自定义快捷键。下面
就菜单命令、工具条、快捷键分别进行介绍。
1.File 菜单
File 菜单和标准的 Windows 软件的 File 菜单类似,提供了项目和文件的操作功能。File
Navigate Forwards
Ctr+-
光标移动到使用 Find 或 go to line 命令的后一行
Insert/Remove Bookmark Go to Next Bookmark Go to Previous Bookmark Clear All Bookmarks Find Replace Find in Files Incremental Find Outlining Advanced Configuration
3.View 菜单
View 菜单提供了在源代码编辑和仿真调试过程中,各个窗口和工具栏的显示和隐藏命
令。View 菜单各个命令的功能如表 A-3 所示。
表 A-3 View 菜单
菜单命令
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Release Notes for C518051 Development Tool KitsThis file contains release notes and last minute changes that are not found in theprinted manuals.Information in this file, the accompany manuals, and software isCopyright © Keil Software, Inc and Keil Elektronik GmbH.All rights reserved.Contents1.What's New in C512.Example Programs3.Device Database™4.Peripheral Simulation5.Technical Support6.Contact DetailsWhat's New in C51The following sections list the changes instituted in each release of the C51 toolset. C51 Version 9.01 Release▪[C51 Compiler]▪Corrected: when MODDA is used and int numbers are multiplied and assigned to long, the result is potential incorrect.▪[Device Support]▪Added: debug support for Infineon XC82X devices.▪[New Supported Devices]▪Infineon XC822T-0F, XC822M-1F, XC822MT-1F, XC824MT-1F, and XC824M-1F devices.C51 Version 9.00 Release▪[µVision4]▪This C51 release comes with the new µVision4 IDE.▪[New Supported Devices]▪Evatronix R8051XC(1 DPTR), R8051XC2(1 DPTR), R8051XC2(2 DPTR), R8051XC2(8 DPTR), R8051XC2-A(1 DPTR), R8051XC2-A(2DPTR), R8051XC2-A(8 DPTR), R8051XC2-AF, R8051XC2-B(1 DPTR),R8051XC2-B(2 DPTR), R8051XC2-B(8 DPTR), and R8051XC2-BFdevices.▪Nordic nRFLU1P-F16 and nRFLU1P-F32 devices.▪NXP P89LPC9361 device.▪Silabs C8051F580, C8051F581, C8051F582, C8051F583, C8051F584, C8051F585, C8051F586, C8051F587, C8051F588,C8051F589, C8051F590, and C8051F591 devices.▪[Device Support]▪Corrected: device settings for Infineon XC888-6FF, XC888CM-8FF, XC888LM-6FF, XC886-6FF, XC866L-1FR, XC866L-2FR, XC866L-4FR,and XC864-1FRI devices.▪Corrected: device settings for Nordic Semiconductor nRF24E1, nRF24E2, nRF9E5, nRF24LU1, and nRF24LE1 devices.▪Added: debug support for NXP P89LPC9361 and P89LPC954 devices in the LPC900 EPM Emulator/Programmer.▪Updated: LPC900 EPM flash programmer configuration dialog to support devices with 16 flash sectors.▪[CX51 Compiler]▪Corrected: constant folding of two negative array index values. For example:▪unsigned char arr[512];▪unsigned int i;▪i = arr[i-1-5]; // incorrect in C51 V8: arr[i-4] instead of arr[i-6]▪Corrected: when using the NOAREGS directive, complex arithmetic with nested calls may create incorrect results. For example:▪#pragma NOAREGS▪▪int result;▪extern char f(unsigned char idx);▪result = (f(1)*0x100+f(0)) - (f(3)*0x100+f(2)); // incorrect result.POP destroys value in ACC▪LX51 Linker/Locater]▪Corrected: when using OPTIMIZE(10) or above, there was a potential that common code blocks are called incorrectly. Therefore programsmay have operated incorrectly.▪[BL51 Linker/Locater]▪Corrected: when using RTX51 user interrupt functions wereoverlapping with RTX ISR vectors which resulted in a linker warning.▪Corrected: data overlaying may not work when the last input module contains an interrupt function; the linker incorrectly issues WARNING16: main uncalled.C51 Version 8.18 Release▪[Device Support]▪Added: debug support for NXP P89LPC9408 in the LPC900 EPM Emulator/Programmer.▪[New Supported Devices]▪Nuvoton W681308 device.▪NXP P89LPC9201, P89LPC9211, P89LPC922A1, P89LPC9241, P89LPC9251, P89LPC9301, P89LPC931A1, P89LPC9331, P89LPC9341,and P89LPC9351 devices.▪Silabs C8051F500, C8051F501, C8051F504, C8051F505,C8051F506, C8051F507, C8051F508, C8051F509, C8051F510,C8051F511, C8051F700, C8051F701, C8051F702, C8051F703,C8051F704, C8051F705, C8051F706, C8051F707, C8051F708,C8051F709, C8051F710, C8051F711, C8051F712, C8051F713,C8051F714, and C8051F715 devices.▪[ULINK2 Support]▪Corrected: potential deadlock on ST uPSD targets with ULINK2 solved.▪[Device Simulation]▪Corrected: Infineon XC800 simulation of the MDU was incorrectly implemented.▪Corrected: For C8051F12x/F13x devices the EXFn and TOGn behavior matches with latest information from SiLABS.▪Added: simulation for Atmel AT89C51RE2. The second UART is now available for the simulation.▪[CX51 Compiler]▪Corrected: initialization failed on far addresses when the object is located with _at_. For example:▪#pragma VARBANKING O2▪▪unsigned char far array[65530] _at_ 0x150006;unsigned long x1 = (unsigned long)(array); // incorrect addressstored in 'x1'.C51 Version 8.17a Release▪[Device Support]▪Added: debug support for the follow devices from Analog Devices ADE5166, ADE5169, ADE5566, ADE5569, ADE7166F16, ADE7166F8,ADE169F16, ADE7566F16, and ADE7566F8 in the ADI MonitorDriver.▪Added: debug support for NXP P89LPC9321 and P89LPC9351 devices in the LPC900 EPM Emulator/Programmer.▪[Device Support]▪Added: Nuvoton devices in the device database.▪Corrected: Port Pin P2.2 is available (instead of P2.5) on NXP P89LPC917 devices. This is now reflected in the peripheral dialogs.▪Corrected: UART0 baudrate is now correctly displayed when Timer2/3/4 is used as baudrate generator on SiLabs C8051F13xdevices.▪[Device Simulation]▪Corrected: simulation of Reset Source Register (RSTSRC) and SFR Page Control Register (SFRPGCN) for SiLabs C8051Fxxx devices.▪Corrected: handling of Automatic Page Control Enable (SFRPGCN) and Reset Source Register (RSTSRC) for SiLabs C8051Fxxx devices.▪Corrected: simulation of PLLLCK (PLL Lock Flag) for SiLabsC8051F12x/13x devices. PLLLCK is now set when PLL is configuredcorrectly and frequency is locked.▪Added: support for V: user-defined memory area for NXP 80C51MX devices.▪Corrected: simulation issues with the Evatronix R8051XC peripherals DMA and interrupt.▪[CX51 Compiler]▪Corrected: when two long operands are loaded from complex arrays (each with object size bigger than 256 bytes), there was a potentialregister overwrite in register R0. The result of the long operation was insuch cases incorrect.Example:▪struct s2 { unsigned int idx : 1; } s2;▪struct s { unsigned long l1; unsigned char a[256]; unsigned long l2; } xdata sarr[2];▪▪unsigned long l;▪▪void main (void) {▪ l = sarr[s2.idx].l1 + sarr[s2.idx].l2; // incorrect result of long addition▪}▪[AX51 Macro Assembler]▪Corrected: in NXP 80C51MX mode, DATA, IDATA, and EDATA can be placed to absolute addresses 0x7F0000 and above. This is nowaccepted.▪Added: ECRM directive that allows to expand generic CALLinstructions to ECALL for NXP 80C51MX devices.C51 Version 8.16a Release▪[CX51 Compiler]▪Corrected: when int numbers are multiplied and assigned to long, the result is potential incorrect. This problem has been introduced in V8.15.▪Corrected: C51 _at_ problem with linker code packing fixed.▪[AX51 Macro Assembler]▪Enhanced: for the NXP MX devices, CALL/JMP instructions are encoded to ECALL/JMP when needed..▪[Device Support]▪Added: ULINK and Infineon DAS (Device Access Server) support for the XC864 device.▪Enhanced: Evatronix R8051XC XDATA Banking example optimized.▪Enhanced: Infineon XC800 startup code.▪Added: Support for Infineon XC864 including a Blinky example.▪Added: Syntek Semiconductors STK6031 and STK6032 devices to device database.▪[Device Simulation]▪Added: for SiLABS C8051F360/1/2/3/4/5/6/7/8/9 andC8051F410/1/2/3.C51 Version 8.15 Release▪[Cx51 Compiler]▪Corrected: interrupt functions combined with NOINTVECTOR where not detected by the linker as new root and an incorrect linker warningwas reported.▪Corrected: when using Dallas 390 mode with ROM(D512K) or ROM(D16M), pdata arrays could not be located anywhere in memory.▪Corrected: when using the XCROM directive in combination with function pointers, constant initializations where omitted.▪Enhanced: long multiplication with two unsigned int/char arguments has now a much higher performance.▪[Target Support]▪Added: support for the Infineon USCALE XC800 hardware via the Infineon DAS Client for XC800.▪[Device Simulation]▪Corrected: access to MACACC was not corrected simulated for SiLABS C8051F12x and C8051F13x devices.▪Added: device support and simulation for Infineon XC878.▪Added: simulation for new peripherals (Software Reset, RTC, DMA) on Evatronix R8051XC core.▪Added: xdata banking support for Evatronix R8051XC core.▪[LX51 Linker/Locater]▪Corrected: Linker Code Packing may combine incorrectly blocks from several code banks into common areas.▪[ULINK2 Support]▪Added: Debug and Flash-Programming support for NXP P89LPC952 and P89LPC954.C51 Version 8.12 Release▪[Device Simulation]▪Added: device support and simulation for SiLABSC8051T600/1/2/3/4/5 and C8051T610/1/2/3/4/5/6/7.▪[Cx51 Compiler]▪Corrected: nested call with struct pointer arguments whereincorrectly processed.▪[LX51 Linker/Locater]▪Corrected: sfr16 definitions in assembly code and C source file may generate Warning L46: SFR SYMBOL HAS DIFFERENT VALUE.C51 Version 8.11a Release▪[Device Support]▪Added: support for Ramtron VRS51L3072 and VRS51L3174.▪Added: support for Nordic Semiconductor nRF24LU1.▪[Device Simulation]▪Added: device support and simulation for SiLABS C8051F336, C8051F337, C8051F338, and C8051F339.▪Corrected: PORTx and PCA output pins on SiLABS C8051F12x did not correctly update in simulation.C51 Version 8.10 Release▪[Device Support]▪Added: support for Megawin MPC82G516A and MPC82L54A.▪Enhanced: startup code for Infineon XC800 devices has now selections for device variants. Infineon XC88x AC step devices requiresto set the device to VCO bypass mode before PLL switching.▪Added: support for NXP P89V52X2.▪[Device Simulation]▪Corrected: simulation of MULRDY and OSCICL corrected for SiLABS C8051F3xx series.▪Enhanced: simulation of Evatronix R8051XC watchdog timer with optional prescaler. For details refer to Application Note 191: ToolchainExtensions for R8051XC Core.▪Corrected: DPTR simulation of Evatronix R8051XC; when 2 DPTR where selected the auto-increment feature (DPC register) did not work.Two R8051XC devices are now in the device database: R8051XC (8DPTR) with simulation for 8 DPTR, R8051XC (2 DPTR) withsimulation for 2 DPTR.▪Corrected: SiLABS simulation for UART #1 had a problem with the transmit interrupt bit (TI) when SFR page was set to 1.▪[Cx51 Compiler]▪Corrected: the MODC2 directive did not correctly save and restore multiple DPTR registers on interrupt entry/exit.▪Corrected: Assembler instructions inserted with #pragma ASM trigger now register usage of all CPU registers and therefore avoidsregister clashes.▪Corrected: strcmp and strncmp library functions changed from signed char to unsigned char compare (ANSI requirement).▪Improved: detection of conflicting memory types when used in combination with typedef's, for example:▪typedef char code CCHAR;▪typedef CCHAR xdata XCHAR; // generates now WARNING C185: different memory spaceCCHAR idata var2; // generates now WARNING C185: differentmemory space▪[LX51 Linker/Locater]▪Corrected: REMOVEDUNUSED did not correctly work with SROM symbols and linker code packing.▪Corrected: debug symbols of absolute bits generated in AX51 had wrong offset.▪Corrected: segment locating with the LAST keyword generated unnecessary memory gaps when used with code banking.▪Corrected: when linker code packing is used, an address reference to far variables with _at placement was wrong.▪[BL51 Linker/Locater]▪Corrected: segments with a AJMP instruction as last instruction where located at the end of a 2KB block which generated a linker error.▪[ULINK and ULINK2 Support]▪Corrected: Verify failed on µPSD devices when common segments where located to code banks, but no bank 0 exists.C51 Version 8.09 Release▪[Device Simulation]▪Corrected: wrong timing of the Timer 1 in the Infineon XC800 devices.▪Corrected: clock calculation of Infineon XC88x devices was incorrect.▪Corrected: Dallas D80C400 simulation did not correctly switch to contiguous mode.▪Added: Simulation for Atmel AT89C51AC3.▪[Device Support]▪Corrected: when debugging Infineon XC800 Devices with the DAS interface data/idata variables where shown incorrectly.▪[Target Debugging for Analog Devices ADuC83x, ADuC84x, and ADE7xxx]Options - Project - Debug - Use: ADI Monitor Driver selects targetdriver for the Analog Devices ADuC834, ADuC84x, and ADE7xxx devices.This driver is now extended to support the 1-Pin Pod interface and the newADE7xxx devices.▪[Monitor-51, Monitor-390]▪Corrected: potential communication problems with low-cost USB-COM adapters.▪[Cx51 Compiler]▪Corrected: a code generation problem with bit-field arrays when the array index is a function return value.C51 Version 8.08a Release▪[Device Simulation]▪Corrected: the previous version had a delay when starting signal functions. This delay is now removed so that the startup behavior isidentical to releases before version 8.06.▪Corrected: the behavior of JBC instructions on I/O ports was not fully correct. JBC instructions now read the SFR register (Px) instead of theI/O port value (PORTx).▪[Cx51 Compiler]▪Corrected: integer promotion was missing on complex arithmetic with char/unsigned char and multiplication or division.▪[Ax51 Macro Assembler]▪Enhanced: the _DATE2_ macro is now defined also for the A51 and AX51 Macro Assembler.▪[uVision3 IDE]▪Corrected: potential crash in the project window on right mouse click when no item was selected.▪[Device Support]▪Corrected: Peripheral display for Port 4 and Port 5 of the NXP 89LPC952 device was missing.▪Enhanced: on XC800 devices the dialog Project - Options - Debug - ULINK Settings - Disable interrupts during steps is implemented.This option disables interrupts during single-stepping and thereforeexecutes only instructions from the current function.▪Added support for Infineon TLE78xx series.▪Corrected: simulation for external interrupt inputs EINT0 and EINT1 on Infineon XC800 devices.▪Corrected: debugger startup problems with the Infineon DAS server. C51 Version 8.06 Release▪[Device Support]▪Infineon XC800 Devices: added debugging and flash programming support for new Infineon XC800 devices (XC866-1FR, XC856) withULINK and Infineon DAS server.▪Enhanced: Infineon XC800 startup code START_XC.A51 V1.02 that supports pdata addressing (C51: USING PDATA VARIABLES ONINFINEON XC800).▪SST SmartCards: added core features for device simulation.▪[Device Simulation]▪Corrected: interrupt vector for 2nd UART on Philips P89LPC952 was incorrectly configured in simulator and target dialog.▪Enhanced: VTREG PPAGE is initialized to 0 on all Philips LPC900 devices to allow simulation of MOVX @Ri without configuration.▪Corrected: a problem with AT89S8252 EEPROM simulation.▪Corrected: a problem with the baudrate generation on Atmel devices with X2 feature (the baudrate was displayed incorrect).▪Corrected: a problem with code banking on Mentor M8051EW core.▪[Cx51 Compiler]▪Corrected: code that is not used (i.e. with macros) is removed, even when it creates other side effects.▪Corrected: unexpected error message for syntactical correct statement.▪struct st2 { unsigned char uc1; unsigned char uc2; };▪struct st1 { struct st2 st2; unsigned char u1; unsigned char u2; };▪struct st1 st;▪▪void main (void) {▪ (&st.st2)->uc1 = 0; // gives error, but should be Ok.}▪Corrected: library function toint did no flag values 0x3A - 0x40 as incorrect.▪[ULINK and ULINK2 Support]▪Added: support for ULINK2 for the Infineon XC800 and ST uPSD series.▪Added: device support for Infineon XC886, XC888, and XC856.C51 Version 8.05 Release▪[Device Simulation for Infineon XC88x Series]Added device simulation for Infineon XC886 and Infineon XC888.▪[Device Simulation for Philips P89LPC952/954]Corrected: the two serial windows did not work for the PhilipsP89LPC952/954 devices.▪[Device Simulation for M8051EW]Corrected: when M8051EW features were enabled, it was not possible todebug non-banking applications.▪[Device Simulation for R8051XC]Enhanced: some features were not covered in the first revision of thesimulator. Now the simulator also takes care about peripheral timing, andwrite operations to code memory.▪[LX51 Linker/Locater]Corrected: when using interbank call table optimization(?B_RST_BANK != 0xFF), the linker was optimizing too much.▪[ULINK Driver for ST uPSD]Corrected: flash programming did not work for uPSD3422 devices.▪[Cx51 Compiler]▪Enhanced: C51 did issue an error when accessing struct members with s->member instead of s.member.▪Corrected: using multiple dummy assignments to remove unused variables may cause register overwrites.▪Corrected: potential code problems when incrementing far pointers with long constants.▪void func (void) {▪ unsigned int i;▪ long far* entry;▪▪ while(i) {▪ i--; // increment missing▪ entry += 1L; // due to 'far' pointer increment with 1L▪ }}▪Corrected: potential problem on SmartMX, when using Optimize level8 or 9 without OBJECTADVANCED.▪#pragma MXP▪int xdata x;▪char xdata * xdata p;▪▪void f1 (char *);▪void f2 (char *);▪▪void main (void) { // uses CMPW instruction that affects 'Z' flag▪ if (x == 0xFFFF) f1 (p); // MOVX A,Rx,@DPTR destroys 'Z' flag▪ else f2 (p); // and cannot be combined}C51 Version 8.04 Release▪[Cx51 Compiler]▪Enhanced: The Warning C259: pointer: different mspace is improved and covers now also situations where an address value is assigned.▪New: The Warning C289: converting non-pointer to pointer is issued when a integer value is assigned to a pointer.▪Corrected: A problem with the SRC file output is wrong with optimized address values.▪Corrected: dummy read to MD3 was missing for int*int multiplication when using the Infineon/Evatronix MDU.▪Added: Support for the SiLABS Arithmetic Accelerator (available in C8051F12x and F13x devices) in the far banking library.▪[Device Support for Evatronix/Cast R8051XC Core]Added complete simulation and compiler support for the features of theR8051XC core. Detailed information is provided in Application Note 191:Toolchain Extensions for the R8051XC Core.▪[Device Support for Mentor M8051EW Core]Enhanced simulation support for the Mentor M8051EW memory extensionfeatures. It is now possible to simulate code banking and far memoryapplications and the address of the The address of the extensioncorefeatures of the R8051XC core. Detailed information is provided inApplication Note 171: Using M8051EW Memory Extension.▪[Device Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800devices (XC886, XC888). Detailed information is▪[BL51 and LX51 Linker/Locater]Corrected: there might be incorrect WARNING L15: MULTIPLE CALL TOFUNCTION messages when using syntax: OVERLAY (* ! (func1,func2,func3,...)) to group more than just two functions.C51 Version 8.02 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Atmel AT89C51RE2, AT89C51IE2, AT89C51CC03, AT8xC51SND1, AT89S8253, AT89LP2052, AT89LP4052▪Revised: Atmel AT89C5131/AT89C5131A (added TWI), AT8xC5132 (added TWI, ADC)▪Philips P89LPC9102, P89LPC9103, P89LPC9107. P89LPC9221, P89LPC9311, P89LPC932A1, P89LPC938,▪Philips P89LPC9401/P89LPC9408 (without LCD Driver), P89LPC952, P89LPC964, P89LPC966▪Philips P89V660, P90V662, P89V664▪[LX51 Linker/Locater]Corrected a problem with code banking, the linker reported incorrectlyerror L124: BANK SWITCH MODULE INCORRECT.▪[Cx51 Compiler]Corrected a macro expansion problem, array index calculations withnegative offset, and far access to absolute memory locations.▪[Target Debugging Support for Infineon XC800 Series]Added ULINK debugging support and DAS driver for new Infineon XC800devices (XC886, XC888).▪[ULINK Driver for ST uPSD]Added new JTAG device ID's for ST uPSD3212, uPSD3312, anduPSD3422.C51 Version 8.01 Release▪[uVision Debugger]Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Silicon Labs C8051F120, Silicon Labs C8051F121, Silicon Labs C8051F122, Silicon Labs C8051F123,▪Silicon Labs C8051F124, Silicon Labs C8051F125, Silicon Labs C8051F126, Silicon Labs C8051F127,▪Silicon Labs C8051F130, Silicon Labs C8051F131, Silicon Labs C8051F132, Silicon Labs C8051F133▪[P89LPC952 and MCB950 Board Support]Added support for Philips P89LPC95x device series.▪[AX51 Macro Assembler]Corrected a problem with forward references in symbols which generatesan error message.▪[LX51 Linker/Locater - Code Packing]Corrected a potential problem with code packing when modules aretranslated with different optimization levels (less than 8) but theOBJECTADVANCED directive.▪[L51_BANK.A51 - Code Banking Configuration File]Changed behavior of the ?B_RESTORE_BANK entry with ?B_MODE=0 toavoid glitches when using the RTX51 or RTX51 Tiny operating systemtogether with code banking.▪[Cx51 Compiler]Version number changed for logistic reasons. No other changes comparedto V8.00.C51 Version 8.00 Release▪[uVision3 IDE]The µVision3 IDE contains several enhancements orrected: the devicesimulation covers now the latest timing specification for Dallas DS89C420,DS89C430, DS89C440, and DS89C450 devices. The timer simulation waspreviously based on a older data book and therefore incorrect.▪[Device Simulation]▪Corrected: the device simulation covers now the latest timing specification for Dallas DS89C420, DS89C430, DS89C440, andDS89C450 devices. The timer simulation was previously based on aolder data book and therefore incorrect.▪[Target Debugging for Analog Devices ADuC83x and ADuC84x]Options - Project - Debug - Use: ADI Monitor Driver selects targetdriver for the Analog Devices ADuC834 and ADuC84x devices. This driverdirectly connects via a serial COM interface to the on-chipDownload/Debug Kernel of the ADuC device. No specific monitor orfirmware is required. A detailed documentation is available in the AnalogDevices ADuC83x/84x Download/Debug Driver User's Guide(..\C51\HLP\MonADI.CHM).▪[Support for Infineon XC866]Added complete support for new Infineon XC800 Device series includingdevice simulation, ULINK driver, and MCBXC866 Evaluation Boardsupport.▪Example projects are provided in thefolder ..\C51\Examples\Infineon XC866.▪Complete documentation is available in the MCBXC866 User's Guide (..\C51\HLP\MCBXC866.CHM) which also explains the ULINKdriver.▪[Support for ST uPSD34xx Series]Added complete ULINK support for new ST uPSD34xx device series.▪[C Library]▪Corrected: on Dallas 390, 400, 5240, and 5250 devices tan (INF) generated a wrong return, and printf ("%f") did not print the floatingpoint value INF and NaN.▪Corrected: the return value of scanf and sscanf was just 0xFF instead of -1 when no arguments where processed.▪Corrected: the library takes care about the changed behavior of the Memory Accelerator on Dallas DS80C390 Rev. C.▪Corrected: on Dallas 390, 400, 5240, and 5250 devices memmove in xdata memory failed when source buffer is overlapping destinationbuffer.C51 Version 7.50a Release▪[LX51 Linker/Locater]▪Corrected: potential problem with Linker Code Packing that might cause in-efficient operation or a MEMORY SPACE OVERLAY warning.▪Corrected: fixup error messages when using the REMOVEUNUSED directive.▪Corrected: when using L51_BANK.A51 the far memory addressing used a wrong offset (-64KB). Instead of X:0x20000 the X:0x10000 wasaddressed.▪[BL51 Linker/Locater]The new BL51 Linker/Locater was by accident not included in Version7.50.▪[C Library]Corrected a problem on Dallas 390, 400, 5240, and 5250 devices with logand log10 when const data is not in stored in segment 0(C:0x0000-C:0xFFFF).C51 Version 7.50 Release▪[uVision2 Debugger]Added Extended Memory Simulation for Mentor M8051EW. Refer toApplication Note 171: Using M8051EW Memory Extension in thefolder \C51\EXAMPLES\M8051EW.Added peripheral simulation support and target debugging dialogs for thefollowing devices:▪Dallas Semiconductor DS89C420,▪Dallas Semiconductor DS89C430,▪Dallas Semiconductor DS89C440,▪Dallas Semiconductor DS89C450,▪Silicon Labs C8051F000,▪Silicon Labs C8051F001,▪Silicon Labs C8051F002,▪Silicon Labs C8051F005,▪Silicon Labs C8051F006,▪Silicon Labs C8051F007,▪Silicon Labs C8051F010,▪Silicon Labs C8051F011,▪Silicon Labs C8051F012,▪Silicon Labs C8051F015,▪Silicon Labs C8051F016,▪Silicon Labs C8051F017,▪Silicon Labs C8051F350,▪Silicon Labs C8051F351,▪Silicon Labs C8051F352,▪Silicon Labs C8051F353,▪SST SST89E554RC,▪SST SST89E564RD,▪SST SST89V554RC,▪SST SST89V564RD.▪[ISD51 In-System Debugger]Added example configuration for Dallas DS89C420, DS89C430,DS89C440, and DS89C450 devices. For details refer to Application Note 177: Using ULINK with STMicroelectronics Turbo µPSD 3300/3400Devices and the sample projects in the folder ..\C51\EXAMPLES\ST uPSD.▪[C51 Compiler]▪Corrected a code generation issue for negative array index values.For example:▪signed int i = v1 - v2;▪value = table [i + 4]; // code works for 'signed char' index ▪ // but fails with 'signed int' index▪Added MODC2 Compiler Directive:enables use of dual data pointers available on the Cast and Evatronix R80515 core. Usingadditional data pointers improves the performance of the followinglibrary functions: memcpy, memmove, memcmp, strcpy, andstrcmp.▪Added MODH2 Compiler Directive: enables use of dual data pointers available on Hynix, ST uPSD 33xx, and ST uPSD 34xx devices.Using additional data pointers improves the performance of thefollowing library functions: memcpy, memmove, memcmp, strcpy, and strcmp.▪[CX51 Compiler]Corrected the following problems for the SmartMX instruction set:▪Switch/case with long types and ROM(HUGE).▪Over optimization with CMPW instruction.▪Stack adjustment failure with setjmp/longjmp library routines.▪[C Library]Corrected several library problems including:▪Corrected a problem on Dallas 390, 400, 5240, and 5250 devices with asin, acos, and atan when const data is not in stored in segment0 (C:0x0000-C:0xFFFF).▪The labs function has been optimized and is now fully reentrant.▪Added configuration symbol ?C?DPSEL that defines DPSEL SFR address for MOD517(NOAU) multiple DPTR support. May be used for Mentor M8051EW based devices which have the Infineon method formultiple DPTR but with a different DPSEL SFR address. The ?C?DPSEL definition shown below may be included in a chip-specific Startup.A51 file. Without this definition, the DPSEL register is accessed at the default address 0x92.▪PUBLIC ?C?DPSEL?C?DPSEL DATA 0A2H ; define DPSEL address for Mentor M8051EW▪[LX51 Linker]Added the REMOVEUNUSED (abbreviation RU) directive which removes unused program and data segments provided that Data Overlaying is enabled.▪[ULINK]Added instruction trace support to the STMicroelectronics uPSD ULINK Driver. For details refer to Application Note 177: Using ULINK withSTMicroelectronics Turbo µPSD 3300/3400 Devices and the sampleprojects in the folder ..\C51\EXAMPLES\ST uPSD.▪[BL51/LX51 Linker]Improved the OVERLAY directive. Now, using OVERLAY (* ! (func1, func2)), you may combine the segments of several function call trees.This is useful for interrupt functions that have overlayable data but use the same interrupt level. Such interrupt functions cannot interrupt each other.Therefore, data overlaying of both call trees is possible. For example:▪void irq0 (void) interrupt 0 {▪ unsigned char arr[10];▪ arr[0] = 0;▪}▪▪void irq1 (void) interrupt 1 {▪ unsigned char arr[10];▪ arr[0] = 0;。

相关文档
最新文档