在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!)    创芯人才网--重磅上线啦!
查看: 13885|回复: 15

[资料] Keil C51 V9.54下载地址及0xFD补丁

[复制链接]
发表于 2015-6-6 13:42:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 micdot 于 2015-6-16 10:22 编辑

C51V954.EXE (78,754K)  Friday, April 24, 2015
以下为C51 Version 9.54 Release
C51 Version 9.54 Release
  • [LX51 Linker/Locater]
    • Corrected: under some circumstances the LX51 ingnores the NOJMPTAB directive and and throws erroneously the following error:*** ERROR L210: I/O ERROR ON INPUT FILE:    EXCEPTION 0021H: PATH OR FILE NOT FOUND    FILE: C:\KEIL\C51\LIB\L51_BANK.OBJ
  • [A51 Macro Assembler] and AX51 Macro Assembler]
    • Corrected: under some circumstances the assembler shows wrong line numbers if an $include file cannot be found. The root cause for this behavior is the erroneous line number generation by the preprocessor.
      Example:NAME xxxS       SEGMENT  CODE        RSEG  S#line                 ; The preprocessor generates wrong line numbers if an $include file cannot be found.PUT:        MOV   A,#x    ; The assembler shows these wrong line numbers inside the build output window as part of a warning or error message.        RET        END
  • [OHX51 Object to Hex converter]
      Modified\corrected:
    • The OHX51 creates hex records that crosses 64Kbyte boundaries which is not allowed.
      For example: defining a HCONST segment ?HC?UCL with a size of 128Kbyte will cross two times the 64Kbyte boundaries at 0x810000 and 0x820000. Mapfile entry for this segment......800020H   82000FH   01FFF0H   BYTE   UNIT     HCONST         ?HC?UCL.....The resulting hex file is wrong at these 64Kbyte boundaries. One HEX record (equates to one line) must not cross a 64Kbyte boundaryine   HEX record.....00021  :0200000400807A                             ; switch to segment 0x80.....04119  :10FFFC00215E5F5E48656C6C6F204169726F686151 ; starts at 0xFFFC and crosses the 64K boundary        ||||||        ||AAAA -> Address        LL------> Record length04120  :02000004008179                             ; switch to segment 0x8104121  :10000C00215E5F5E48656C6C6F204169726F686140 ; starts at 0x000C...............08218  :10FFF800726F6861215E5F5E48656C6C6F20416955 ; starts at 0xFFF8 and crosses the 64K boundary        ||||||        ||AAAA -> Address        LL------> Record length08219  :02000004008278                             ; switch to segment 0x8208220  :08000800726F6861215E5F5E0A                 ; starts at 0x0008.....
  • [Device Simulation]
    • Corrected: for Silabs C8051F33x based devices the simulation of the watchdog timer triggers unexpectedly a reset.
  • [New Supported Devices]
    • CAST
      T8051XC3, L8051XC1-515, L8051XC1-320, S8051XC3-C(517), and S8051XC3-C(430).
    • Silabs
      EFM8BB10F2G_A_QFN20, EFM8BB10F4G_A_QFN20, EFM8BB10F8G_A_QFN20, EFM8BB10F8G_A_QSOP24,
      EFM8BB10F8G_A_SOIC16, EFM8BB21F16G_A_QFN20, EFM8BB21F16G_A_QSOP24, EFM8BB22F16G_A_QFN28,
      EFM8SB10F2G_A_QFN20, EFM8SB10F4G_A_QFN20, EFM8SB10F8G_A_QFN20, EFM8SB10F8G_A_QFN24,
      EFM8SB10F8G_A_QSOP24, EFM8SB20F16G_A_QFN24, EFM8SB20F32G_A_LQFP32, EFM8SB20F32G_A_QFN24,
      EFM8SB20F32G_A_QFN32, EFM8SB20F64G_A_LQFP32, EFM8SB20F64G_A_QFN24, EFM8SB20F64G_A_QFN32,
      EFM8UB10F16G_A_QFN20, EFM8UB10F16G_A_QFN28, EFM8UB10F8G_A_QFN20, EFM8UB11F16G_A_QSOP24,
      EFM8UB20F32G_A_LQFP32, EFM8UB20F32G_A_QFN32, EFM8UB20F32G_A_TQFP48, EFM8UB20F64G_A_LQFP32,
      EFM8UB20F64G_A_QFN32, and EFM8UB20F64G_A_TQFP48.
  • [μVision]
    • This C51 release comes with μVision V5.14.1.



以下为C51 Version 9.54 的下载附件(这次使用了百度云盘加密共享的方式,不是是否妥当,如果不妥,请告知):


Keil C51v954_baiduyun.rar (159 Bytes, 下载次数: 178 )



另:C51V9.54的0xFD问题依然存在,现在引述keil官网的解释以及解决方法(http://www.keil.com/support/docs/2618.htm):GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS

Information in this article applies to:

  • C166 Compiler All Versions
  • Cx51 Compiler All Versions
  • C251 Compiler All Versions

QUESTION

I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.

Example:

code char RussianString[] = "??? ????";

Why does this problem exist and how can I avoid this behavior?

ANSWER

The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.

You may insert these characters by using HEX encodings in the string as follows:

code char RussianString[] = "My Text" "\xFD";

A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.


大体意思描述一下:0xFD, 0xFE, 和0xFF是作为C编译器的内部来用的,根据ANSI的标准,只需要支持0x00 - 0x7F即可。但是通过十六进制编码(转义字符\x表示)方式来进行字符串处理之后,那么字符串中所有的0xFD就会被字符串'" "\xFD'来代替了。

发表于 2015-9-1 17:14:43 | 显示全部楼层
沒有0xFD补丁,不知為何?
发表于 2015-12-3 07:03:13 | 显示全部楼层
谢谢楼主分享!
发表于 2015-12-9 12:45:03 | 显示全部楼层
謝謝分享
发表于 2016-2-25 10:06:34 | 显示全部楼层
发表于 2016-5-23 01:45:56 | 显示全部楼层
大大好強大
发表于 2016-5-23 01:51:02 | 显示全部楼层
好厲害哀^^
发表于 2016-5-23 10:10:36 | 显示全部楼层
thanks for sharing
发表于 2016-5-25 21:13:49 | 显示全部楼层
thanks
发表于 2016-6-9 08:36:42 | 显示全部楼层
THANK YOU
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-28 03:06 , Processed in 0.039887 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表