Technical Support
Support Resources
Product Information
C51: #pragma Message and #pragma Error C51: ?C? Library Routines C51: ?C? Load and Store Library Routines C51: ?C? Long/Float Math Library Routines C51: '\N' Does Not Work in printf() Statements C51: __DATE__ and __TIME__ Macros C51: 16-bit Multiply with 32-bit Result C51: 16MB xdta RAM with Analog Devices Microconverter C51: 64-bit Floating-point Operations C51: 8051 Serial I/O in C C51: 80C517: Using the 517 Multiply / Divide Unit in Interrupts C51: 80C517A MA-STEP Shift Bug C51: 80C751.LIB is Missing From Evaluation Version C51: A/D Examples for the ADUC812 C51: Absolute Access for Far Variables C51: Absolute Addresses C51: Absolute Memory Accesses to Maxim 390 Far Memory C51: Absolute Registers and USING Directive C51: Access Low/High Bytes of a Integer Variable C51: Access to Paged SFR Registers C51: Accessing a Pointer in Assembler C51: Accessing an External SFR in a C Program C51: Accessing Assembly Variables From C C51: Accessing Bits on P5 of NXP 552 C51: Accessing I/O Ports in C C51: Accessing Internal EEPROM on Atmel 89LS8252 C51: Accessing Register Banks in C C51: Accessing Special Function Registers in C C51: Accessing Specific Memory Bytes C51: Accessing the Maxim DS390 On-chip 4k SRAM and Stack C51: Adding C Functions to Existing Assembler Code C51: Adding Intrinsic Function to C51 Library C51: Adding to the Startup Code C51: Address Space Overflow With Far Constant C51: ADUC812 Compatibility C51: Alternate Startup Code C51: Analog Devices ADuC812 Example Program C51: Analog Devices ADUC812 External Code Problems C51: Are 32-bit SFRs Supported? C51: Are Checksum Library Routines Included? C51: Are Code and Data Objects Relocatable? C51: Are Link and Make Functions Available? C51: Are RAM Bit-addressable Registers Supported? C51: Are Unions Supported In C51 C51: Arithmetic Problems with CHAR Types C51: array Index uses Byte instead of Word C51: Assigning an I/O Address to a Variable C51: Atmel EEPROM Programming Support C51: ATOF Library Routine Uses BIT Variables C51: Avoiding ACALL Problems in Maxim DS80C390 Rev BX Devices C51: Avoiding MOVC Fetches from Code Space C51: Avoiding Startup Initialization of Static Variables C51: Bank Switching Common Area C51: Bank Table Entries for Indirectly Called Functions C51: Battery-backed Non-volatile Memory C51: Bit Addressable Arrays C51: Bit Field Unions Don't Work as Expected C51: Bit Field Unions Give Strange Results C51: BIT Format Specifiers for Printf C51: Bits Used for Bank Selection C51: BL51 Linker Produces No Binary File C51: Bootloader and ISP for the Silicon Labs C8051Fxx Devices C51: Browser Information in OMF51 File Makes Emulator Fail C51: Calculating Baud Rates for the 8051 Serial Port C51: Calculating Code Space for Bank Switching C51: Calculating Stack Size C51: Calculating Timer Settings for Serial I/O C51: Call C Functions within Startup Code C51: Calling Assembly Routines from C C51: Calling Functions from Interrupts C51: Calling Printf In An Interrupt C51: Can Struct Members reside in different Memory Spaces? C51: Changing L51_BANK to Output Inverted Signals C51: Changing Optimizer Level for a Single Function C51: Changing the order of obj-files crashes Program C51: Checking for Stack Underflow at Runtime C51: Checking Tool for XC800 Chip Bug C51: Clearing the Scanf Input Stream C51: Code Banking Latch on Extra Address Lines C51: Code Banking with On-chip and Off-chip Memory C51: Code Banking With SiLabs C8051F12x/F13x Devices C51: Code Generator Support for Multiple Data Pointers C51: Command Line Global Register Optimization C51: Comments in Assembly Blocks C51: Compare 'char' Variable with Const Value is Never True C51: Compiler Directive for Linker-level Optimization C51: Compiler Directive for OMF2 File Format C51: Compiler Directive for OMF-51 Extended Format C51: Compiler Is Unable to Find Include Files C51: Compiler Optimizes Out Necessary XDATA Reads C51: Compiler Uses DPL and DPH for Variables C51: Configurable SFR Bit Accesses C51: Configuring Dallas 390 and 400 for Contiguous Mode C51: Configuring PPAGE and PPAGEENABLE C51: Configuring XDATA Banking C51: Const Variable Banking With Silicon Labs C8051F12x Devices C51: Const Variable Storage Location C51: Constant Arrays Larger than 64KB C51: Constant Values at Fixed Addresses in Code Space C51: Contents of The ?C_INITSEG Segment C51: Control Directives C51: Converting Big Endian to Little Endian C51: Converting IAR Banked Code to Keil C51: Converting PORT.BIT Code From IAR C51: Correctly Declaring Variables with Memory Spaces C51: Create a Patch Vector Table C51: Creating a Fixed Stack Segment C51: Creating Code Banking Programs C51: Creating CPU Header Files C51: Creating HEX Files for Infineon/Cypress USB Devices C51: Creating Output Files for older Philips PDS51 Emulators C51: DALLAS DS5240 Modulo-Artihmetic Accelerator ACELERATOR C51: Dashes In Filenames C51: Data Overlaying Problem with Struct Parameters C51: Data Overlaying with RTOS applications C51: Data Type Question C51: DATA_GROUP and Stack Problems C51: Declaring BDATA and SBIT Variables C51: Declaring External sbit Variables C51: Declaring two Variables at the same Address C51: Default Startup and Initialization Code C51: Defining the Minimum Stack Size C51: Determining the Location of Assembler Instructions C51: Directing Printf Output to Second Serial Port C51: Disabling Interrupts on Silicon Labs F12x/F13x Devices C51: Displaying Integers with PRINTF C51: Division Doesn't Work C51: Do Keil Tools Work with all 8051 based Devices? C51: Do XDATA and CODE Memory Overlap? C51: Does CA51/PK51 support Sinowealth 8-Bit Flash MCUs? C51: Does ENUM Type Checking Work? C51: Does the Run-time Library Disable Interrupts? C51: Double Precision Math Routines C51: DS5000 Real-time Clock Example Code C51: DS80C390 Arithmetic Accelerator C51: Dual Data Pointer and Philips C51: Dual Data Pointer Performance Increase C51: Dual Data Pointers for DALLAS Parts C51: Eliminating 16-Bit Pointer Increments C51: Empty Relocatable Segment C51: ENUM Example C51: ERROR 146 (Invalid Base Address) C51: Error 166 (Array of Functions) C51: Error 200 (Left Side of '.' Requires Struct/Union) C51: Error 230 (Unknown Struct/Union/Enum Tag) C51: Error 258 (MSPACE ILLEGAL IN STRUCT/UNION) C51: Error 274 (Absolute Specifier Illegal) C51: Error C202 Using XBYTE Absolute Addressing C51: Error C249 (Special Initialization Exceeds 8K) C51: Error C267 ('function': Requires Ansi-style Prototype) C51: Errors Using SBIT and SFR C51: Eval and the Floating-Point Library C51: Evaluation Compiler for Infineon/Cypress Devices C51: Example Programs for the Philips MX Devices C51: Executing Special Instructions immediately after Reset C51: Expected LCALL But See LJMP C51: Exporting Symbols for Emulators C51: Extern Declarations Using _at_ C51: EXTERN Vars and Inline Assembly C51: External SFR Access for 8051 Programs C51: EZ-USB Startup Code C51: Far Data Pointer Boundaries C51: Far Var _at_ Compared to Cast Value C51: Faster Integer Division C51: Fatal Error (More Than 256 Segments) C51: Fatal Error 210 (RTX51.LIB Not Found) C51: Fatal Error When Using SRC Directive C51: Flash Memory on the ADuC812 C51: FLOATFUZZY Directive C51: Floating Point Library Routines Register Usage C51: Floating-point Reentrancy in ISR? C51: Format of ?C_INITSEG Segment C51: Format of __DATE__ Macro Has Changed C51: Formfeeds in Listing Files C51: Full Version of Tools Show Code Size Limit C51: Function of ?C?ICALL and ?C?ICALL2 C51: Function Pointers in Contiguous Mode C51: Function Prototypes for Reentrant Functions C51: Functions That Are Reentrant C51: Gaps in DATA Space C51: General Purpose SFR Interface C51: Generating Hex Files for Code Banking Programs C51: Get Error A45: Using in-Line Assembler C51: GETCHAR Echoes Characters C51: Getting Evaluation Version When Using the Silicon Labs IDE C51: Getting Inline Assembly to Work C51: Getting Interrupts Working C51: Getting the Code Bank of a Function C51: Getting the Current Bank Number C51: Global or Static Variables Not Being Initialized C51: Handling Unused Interrupts C51: How are Function Parameters Handled? C51: How big can a Binary Number be? C51: How Do I Read a Latch? C51: How to Directly Address Multiple Consecutive SFRS C51: How To Give Descriptive Names To Port Pins C51: How to Use 256 Bytes of Data Space C51: IDATA loop Never Ends C51: Identify Uncalled Library Routines C51: Implementing XDATA Banking C51: In-Application Programming (IAP) on Philips LPC9XX C51: Include File for Atmel 89S8252 C51: Indirect Function Calls with Code Banking C51: Indirectly Accessing 8051 SFRs C51: Indirectly called Reentrant Functions C51: Infineon Watchdog Timer Resets Simulator C51: INIT_MEMPOOL requires more Memory than actually used C51: Initializing an Absolutely Located Variable C51: Initializing Far Data C51: Initializing the Dallas 320/520 2nd Serial Port C51: Initializing XDATA Over FF00h C51: Inline Assembly C51: Inline Assembly Generates Target Out of Range C51: in-line assembly gives Compiler Warnings C51: In-System Flash Programming (Part 1) C51: In-System Flash Programming (Part 2) C51: In-System Flash Programming with ROM size > 64KB C51: Integer Promotion C51: Interface for IAP Functions on NXP Devices C51: Interrupt Code Not in Correct Space C51: Interrupt Service Routines Located at Wrong Addresses C51: Interrupt Vector Numbers C51: Interrupt-driven Serial I/O C51: Interrupts and Local Variables C51: Interrupts Not Generated C51: INTPROMOTE/NOINTPROMOTE Directive C51: Is Return Required for Void Functions? C51: Is STARTUP.A51 Required? C51: Is There a Little Endian/Big Endian Compiler Option? C51: Is There a Translator for PL/M-51 to C? C51: kbhit Library Routine Is Missing C51: Keil µVISION Debugger Won't Stop on Breakpoints With ST uPSD33XX C51: Large Directive C51: Latency of Interrupt Service Routines C51: Library is not created C51: Limits on Functions with Variable-length Argument Lists C51: Line Splicing C51: Link Interbank Call Table ?BANK?SELECT C51: Linking Programs for DS80C400 Using Start400.a51 Fails C51: Little-Endian CAN Registers, Big-Endian Compiler C51: LJMP & LCALL Instead of AJMP & ACALL C51: Local Variables Preserve Values Between Function Calls C51: Locate a Function at an Absolute Address C51: Locate struct to SFR Space C51: Locating a Table of Pointers at a Specific Address C51: Locating a Variable in a Register C51: Locating Data Structures in XDATA un the Order Ddefined C51: Locating Function Tables in Code Memory C51: Locating Initialized Variables at Absolute Addresses C51: Locating Interrupts with PK51 Evaluation Software C51: Locating Object Files at Specific Starting Addresses C51: Locating the Stack after IDATA Variables C51: Locating Variables in Multiple XDATA Areas C51: Locating Variables to Far Const Space C51: Long Pointer Arithmetic C51: LROL and LROR Functions are not Intrinsic C51: Math Functions and Their Execution Time C51: Math Operations Supported C51: Maxim 390 Hangs on Math Operations C51: Maxim 390 Math Accelerator Operations C51: Maxim 390/400 Interrupts in Alternate 64k Code Page C51: Memory Allocation C51: Memory Classes for Strings and String Pointers C51: Memory Types for Maxim 390 Contiguous Mode C51: Microchip/Atmel T89C51CC01 Internal EEPROM Support C51: Missing Multiple DPTR support for some ATMEL Devices C51: Mixing C and Assembly C51: Mixing Memory Models C51: Mixing Memory Models and Memory Areas C51: Mixing Reentrant Functions and Non-reentrant Functions C51: Mixing SRAM and NVRAM C51: Modifying the Startup Routines C51: Multiple Large Objects in HDATA C51: Multiple Variables at the Same Address C51: Naming Conventions for Function Symbols C51: Non-reentrant PRINTF C51: Null Pointer Compare Fails When Mixing Memory Types C51: Null Pointer Compare Fails With MALLOC and CALLOC C51: NXP/Philips 87C51RC 512-byte Internal RAM Support C51: Obtaining the Parity of a Character C51: Offsets with Far Memory Access C51: On-Chip Banked PDATA Support C51: On-Chip Memory Configuration for STM UPSD Devices C51: Optimized C with Inline Assembler C51: Optimizer Levels and Volatile Variables C51: Optimum Code for Bit-to-Byte Conversion C51: Order of Bitfields C51: Out of Stack Space C51: Passing Parameters to Indirectly Called Functions C51: Performing a Software Reset C51: Philips P8XC557E8 Internal AUX-RAM Support C51: Physical Location of Registers C51: Placing Far Variables at Absolute Locations C51: Pointer Storage Size C51: Porting Code from PL/M-51 C51: Porting From Older to Newer Tools C51: Porting IAR xmem to Keil XDATA C51: Preprint Directive C51: Preventing Common Block Optimization C51: PRINTF Gives Wrong Values C51: Problems with #pragma ASM C51: Problems with Function Pointers Overwriting Variables C51: Program Never Reaches Main C51: Programming the Infineon/Cypress CY3671 for GPIF Access C51: Programs That Use One Registerbank C51: Program-wide Source/Assembly Listing File C51: Purpose of the INIT.A51 File C51: RAMSIZE for the NXP 87C528 C51: Reading Code Space C51: Reading from an Input Port C51: Reading Port Input Versus Port Latch C51: READ-MODIFY-WRITE Registers C51: Redirecting Interrupt Vectors C51: Redirecting Serial I/O to Other UARTs C51: redistribution of Keil source files C51: Reentrancy Issues With the Dallas 390 Math Accelerator C51: Reentrant Functions and the Reentrant Stack Pointer C51: Reentrant Functions and Variables C51: Reentrant Stack Needed for Reentrant Library Functions? C51: REGFILE Directive C51: Register Variables C51: Relocating Autovector Interrupts on the Infineon/Cypress EZ-USB C51: Relocating Interrupt Vector Tables C51: Relocating Program Code in C C51: Removing and Disabling Warning 13 (RECURSIVE CALL) C51: Removing Linker Warning L16 (Uncalled Segment) C51: Replace AJMP/ACALL With LJMP/LCALL C51: Replacing MEM and STR Library Routines C51: Reserve Memory at Absolute Bank Addresses C51: Reserving Code Space C51: Reserving Memory Accessed With XBYTE and XWORD C51: Reserving Space in Code Banks C51: Reserving Space in Code Memory C51: Reset Vector Does Not Jump to C Code C51: RET_ISTK Directive C51: RET_PSTK Directive C51: RET_XSTK Directive C51: re-use Library Functions from a Boot Application C51: ROM(COMPACT) C51: Runtime Determination of Last XDATA Address Used C51: Saving Registers in Interrupts C51: Sbit Modifications Not Correctly Written to Memory C51: Scanf %F fails with User-Defined GetKey function C51: SCANF() Behaves Incorrectly C51: Selecting Different Register Banks in a Function C51: Setting or Clearing Bits in the Accumulator C51: Setting Program Start Address C51: Setting the Location of the Reentrant Stack Pointer C51: Side-effects of VPRINTF and VSPRINTF C51: Signed Bit Field Not Supported C51: Software Reset in C C51: Source Code Doesn't Display in My Emulator C51: Specifying Header Paths from the Command Line C51: Splitting Code Between EPROM and Flash/EEPROM C51: Stack and Reentrant Stack Symbolic Names C51: Stack Pointer Initialization in Startup Code C51: Stack Requirements of Run-Time Library Functions C51: Stack Usage C51: Starting a Function at a Specific Address C51: Static Data Variables C51: Static Pointers vs Explicitly Placed Variables C51: STDARG.H Questions C51: Storage of Local Variables C51: String Table in XDATA C51: Support for Atmel AT89C C51: Support for C505 Data Pointers C51: Support for Devices with less than 2K Code Space C51: Support for Floating-point Numbers C51: Support for -I and -D Makefile Commands C51: Support for Philips P89C51RC & P89C51RC2 C51: Support for the 8744 SDLC Microcontroller C51: Support for the Microchip/Atmel T80C51 Devices C51: Support for the Nuvoton(Winbond) W77C32 C51: Support for the NXP (Philips) 87C652 C51: Support for the SST89C5X C51: Support of Non-standard Chip Features C51: Supported Data Types C51: Suppressing Calls to Function From Common Code Blocks C51: Switch/Case Statements C51: TCP/IP Support 8052 C51: Transmitting Floating-Point Numbers C51: TYPEDEF ENUM C51: Unable to Find Include Files Using Long Directory Names C51: Unexpected Value When Assigning a Bitfield Value to a Bit C51: Unresolved External ?C?CLDOPTR C51: Unresolved External Error Using Assembler and C C51: Unresolved External Symbol ?C?XPAGE1SFR C51: Unresolved External with Far Memory Type C51: Unused Opcodes C51: Updating the Program Counter on the Stack C51: Use of Dual Data Pointers C51: Use of F0 and F1 in PSW C51: Use Specific Address Range for MOVC C51: Using #IF to Test Conditions C51: Using 1K SRAM on Dallas DS89C420 C51: Using ACC, B, PSW, DPL, DPH and R0-R7 Register in C-Source Code C51: Using Auto-decrement/auto-toggle With Dallas 390 & 400 C51: Using C51 6.12 with a Version 8 Installation C51: Using C51 Version 7.50 with a C51 Version 8/9 PSN C51: Using Memory From 00H To 1FH C51: Using Memory-mapped Devices C51: Using Microcontrollers With On-chip XDATA C51: Using More Than 2K of Code Space C51: Using MOVX to Update Flash on C8051F320 C51: Using Multi-Function Pins on ATMEL AT89C51RD2 C51: Using Non-reentrant Function in Main and Interrupts C51: Using NOP in C C51: Using Only One Registerbank C51: Using PDATA Memory C51: Using PDATA on ADuC83x and ADuC84x Devices C51: Using PDATA Variables on Infineon XC800 C51: Using ROM Library in Infineon XC8XX Devices C51: Using SETJMP and LONGJMP with Code Banking and RTX51 C51: Using sfr16 for 16-bit SFRS C51: Using SIO0 and SIO1 with DALLAS 320 C51: Using the DS87C520 Internal SRAM C51: Using the On-chip XDATA of the Infineon C515C C51: Using TI/Chipcon CC Debugger With Keil µVISION C51: Using Timed Access Registers on Dallas Parts C51: Using XRAM on the NXP 80C66x and 80C51Rx Devices C51: Variable Banking Configuration Options C51: Variable Zero Initialization C51: Variables Created in XDATA Using Small Model C51: Variables in Large and Compact Memory Model Don't Work C51: Verifying Look-Up Table Values C51: Version 6 Release Notes C51: Warning 206 (Missing Function Prototype) C51: Warning 259 (Pointer: Different Mspace) C51: Warning 276 (Constant in Condition Expression) C51: Warning 317 (Redefinition of Macro) C51: Warning C500 (Missing Device) After Update C51: Warning C500: Serial Number Expired C51: What Are the Limits for Floating-point Numbers? C51: What Is ?C?LIB_DATA Used for? C51: What Is the Address Range Acceptable by XBYTE Macro C51: What is the Best Way to Disable/Re-Enable Interrupts? C51: What's in the ?CO? Segments? C51: When are Functions Re-Entrant? C51: When/Where Are Global and Static Variables Initialized? C51: Where can I find Evatronix devices in µVISION? C51: Where Is the Absolute OMF Object Module? C51: Which 8051-based Chips Are Supported? C51: Which Startup Code to Use C51: Why Does VA_ARGS Work? C51: Why Number of Bytes Passed to Printf is Limited C51: Wide Character Support C51: Writing Interrupt Routines C51: Writing to the Output Ports C51: Wrong Code Generated for Double Indirection C51: XC800: 'Use Multiple DPTR Registers' May Cause Runtime Errors C51: xdata Banking with R8051XC C51: XDATA Overlaying C51: XDATA Problems Porting C51 Code to C251 C51: XWORD Macro Questions
Cookie Settings | Terms of Use | Privacy | Accessibility | Trademarks | Contact Us | Feedback
Copyright © 2005-2019 Arm Limited (or its affiliates). All rights reserved.
This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.
Change Settings
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.