Chameleon-AVR Nurve Networks, Chameleon-AVR Datasheet - Page 140

MCU, MPU & DSP Development Tools AVR8 & PROPELLER DEV SYSTEM (SBC)

Chameleon-AVR

Manufacturer Part Number
Chameleon-AVR
Description
MCU, MPU & DSP Development Tools AVR8 & PROPELLER DEV SYSTEM (SBC)
Manufacturer
Nurve Networks
Datasheet

Specifications of Chameleon-AVR

Processor To Be Evaluated
AVR 328P
Data Bus Width
8 bit
Interface Type
USB, VGA, PS/2, I2C, ISP, SPI
Operating Supply Voltage
3.3 V, 5 V
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
device. On the Chameleon AVR, this won’t work since the developer of AVR Libc has no idea about the Chameleon AVR,
thus anything that is hardware specific won’t work since Libc has no idea about the hardware. On the other hand, you
might ask “is it possible to get printf(…) to work?”. The answer is yes. However, you would have to go into the source
files where printf(…) is located and modify it to do “something” intelligent on the Chameleon AVR such as print to the
UART, or to the NTSC/VGA screen. But, you get the idea. Don’t use standard C functions that make no sense on an
embedded system.
Next, embedded systems have multiple memory types; RAM, FLASH, EEPROM. And the AVR Libc library knows this.
Thus, many functions only work in RAM or FLASH specifically. Therefore, you always have to keep in mind that you are
working with a Harvard memory architecture and a separate RAM/FLASH memory model. The AVR Libc documentation
has a lot to say about this subject, so make sure to read it.
Alright, so that’s the story with AVR libc, it’s part of the GNU GCC WinAVR installation and when you build a C/C++
application functions are pulled in from this library. To give you an idea of what Libc supports, Table 17.2 lists the header
files you can include in your Chameleon AVR applications and what functionality they support.
Libc Header File
General C/C++ Library Functions
<alloca.h>
<assert.h>
<ctype.h>
<errno.h>
<inttypes.h>
<math.h>
<setjmp.h>
<stdint.h>
<stdio.h>
<stdlib.h>
<string.h>
AVR Specific Library Functions
<avr/boot.h>
<avr/eeprom.h>
<avr/fuse.h>
<avr/interrupt.h>
<avr/io.h>
<avr/lock.h>
<avr/pgmspace.h>
<avr/power.h>
<avr/sfr_defs.h>
<avr/sleep.h>
<avr/version.h>
<avr/wdt.h>
AVR Specific Utility Functions
<util/atomic.h>
<util/crc16.h>
<util/delay.h>
<util/delay_basic.h>
<util/parity.h>
<util/setbaud.h>
<util/twi.h>
<compat/deprecated.h> Deprecated items.
<compat/ina90.h>
Description
Allocate space in the stack.
Diagnostics.
Character Operations.
System Errors.
Integer Type conversions.
Mathematics.
Non-local goto.
Standard Integer Types.
Standard I/O facilities.
General utilities.
Strings.
Boot loader Support Utilities.
EEPROM handling.
Fuse Support.
Interrupts.
AVR device-specific IO definitions.
Lockbit Support.
Program Space Utilities.
Power Reduction Management.
Special function registers.
Power Management and Sleep Modes.
avr-libc version macros.
Watchdog timer handling.
Atomically and Non-Atomically Executed Code Blocks.
CRC Computations.
Convenience functions for busy-wait delay loops.
Basic busy-wait delay loops.
Parity bit generation.
Helper macros for baud rate calculations.
TWI bit mask definitions.
Compatibility with IAR EWB 3.x.
Table 17.2 – AVR Libc library functionality listed by header file.
© 2009 NURVE NETWORKS LLC “Exploring the Chameleon AVR 8-Bit”
140

Related parts for Chameleon-AVR