A few tidbits/useful sources of information on 8051:
This site is meant as an soft- and hardware application supplement to Sandeep Dutta´s free ANSI C-Compiler for MCS51 targets,SDCC.
Because the SDCC mailing list isn´t the right place to discuss things like "How is a LCD controlled in C language..." some programmers
decided to make their useful routines and knowledge available for other programmers. This is the right place! The wheel musn´t be invented two times...
The SDCC OKR is also a good starting point for newbies on SDCC and/or micros.
The SDCC OKR is a page where everybody can publish some useful basic or special (of course tested!) ANSI-C routines which can be compiled and used with SDCC.
Some esoteric tidbits related to P89V51RD2 - Modified 8052BASIC and Modified Bootloader for it
by Chin-Shiuh Shieh
Department of Electronic Engineering
National Kaohsiung University of Applied Sciences
Collection of programs for interfacing the following devices to P89V51RD2:
16x2 LCD Module, DS1307 (I2C RTC), ADS7841 (SPI ADC), 24XX512 and others (I2C EEPROM), IRSensor (using ADS7841) and PWM control of Servo Motors.
All codes written to compile with SDCC
Another book available for reading online for free. It has really nice diagrams
Netrino is famous author Michael Barr's Company. They are very well known in the field of Embedded Systems for training services, research and product design services.
They have many informative and eye opening articles on their website.
In the above article, the author has researched into the kind of code generated by Keil's C compiler for various mundane tasks for 8051 microcontroller.
He has compares the various ways in which you can write a C program to achieve the same task in terms of the size of machine code generate for each and the number of machine cycles it would take to execute the code.
This leads to the discovery of the most optimal way of achieving a given task on an 8051.
Compiled from posts on usenet
How to fix P89V51RD2 and SST89E516RD with corrupted bootloaders using a Universal Programmer (i.e. Parallel Programmer).
If your microcontroller (P89V51RD2) cannot be recognized by FlashMagic anymore, then one of the problems can be a corrupted bootloader.
Follow this procedure to fix those.
Some notes regarding 8051's Memory Configuration & Storage Classes:
8051 Memory Spaces
- Confused about the various memory spaces in 8051/8052?
- want to know the differences between CODE, DATA, IDATA, XDATA, PDATA and BDATA Memory Spaces?
8051 Memory Configuartions with C Compilers by Andy Ayre, ESAcademy
SDCC "Storage Classes" and "Memory Models"
- Want to know about "Storage Classes" for above memory locations while using SDCC?
- Want to know about SDCC "Memory models"?
Maxim's Application Note 3477 - Using the Free SDCC C Compiler to Develop Firmware for the DS89C430/450 Family of Microcontrollers
Notes on Using SDCC (has following useful notes in PDF)
- SDCC Programming Tips for the Atmel AT89C51RC2 and SDCC Syntax Examples
- Notes on SDCC
- SDCC Interrupt Exercise
- GNU Make Overview
ECEN 5613 Course Webpage - Dr. Linden McClure, University of Colorado, Boulder