Avr Libc User Manual
User Manual:
Open the PDF directly: View PDF
Page Count: 425 [warning: Documents this large are best viewed by clicking the View PDF Link!]
- AVR Libc
- Toolchain Overview
- Memory Areas and Using malloc()
- Memory Sections
- Data in Program Space
- avr-libc and assembler programs
- Inline Assembler Cookbook
- How to Build a Library
- Benchmarks
- Porting From IAR to AVR GCC
- Frequently Asked Questions
- FAQ Index
- My program doesn't recognize a variable updated within an interrupt routine
- I get `¨undefined reference to...`¨ for functions like `¨sin()`¨
- How to permanently bind a variable to a register?
- How to modify MCUCR or WDTCR early?
- What is all this _BV() stuff about?
- Can I use C++ on the AVR?
- Shouldn't I initialize all my variables?
- Why do some 16-bit timer registers sometimes get trashed?
- How do I use a #define'd constant in an asm statement?
- Why does the PC randomly jump around when single-stepping through my program in avr-gdb?
- How do I trace an assembler file in avr-gdb?
- How do I pass an IO port as a parameter to a function?
- What registers are used by the C compiler?
- How do I put an array of strings completely in ROM?
- How to use external RAM?
- Which -O flag to use?
- How do I relocate code to a fixed address?
- My UART is generating nonsense! My ATmega128 keeps crashing! Port F is completely broken!
- Why do all my `¨foo...bar`¨ strings eat up the SRAM?
- Why does the compiler compile an 8-bit operation that uses bitwise operators into a 16-bit operation in assembly?
- How to detect RAM memory and variable overlap problems?
- Is it really impossible to program the ATtinyXX in C?
- What is this `¨clock skew detected`¨ message?
- Why are (many) interrupt flags cleared by writing a logical 1?
- Why have `¨programmed`¨ fuses the bit value 0?
- Which AVR-specific assembler operators are available?
- Why are interrupts re-enabled in the middle of writing the stack pointer?
- Why are there five different linker scripts?
- How to add a raw binary image to linker output?
- How do I perform a software reset of the AVR?
- I am using floating point math. Why is the compiled code so big? Why does my code not work?
- What pitfalls exist when writing reentrant code?
- Why are some addresses of the EEPROM corrupted (usually address zero)?
- Why is my baud rate wrong?
- On a device with more than 128 KiB of flash, how to make function pointers work?
- Why is assigning ports in a `¨chain`¨ a bad idea?
- Building and Installing the GNU Tool Chain
- Building and Installing under Linux, FreeBSD, and Others
- Required Tools
- Optional Tools
- GNU Binutils for the AVR target
- GCC for the AVR target
- AVR LibC
- AVRDUDE
- GDB for the AVR target
- SimulAVR
- AVaRICE
- Building and Installing under Windows
- Tools Required for Building the Toolchain for Windows
- Building the Toolchain for Windows
- Using the GNU tools
- Compiler optimization
- Using the avrdude program
- Release Numbering and Methodology
- Acknowledgments
- Todo List
- Deprecated List
- Module Index
- Data Structure Index
- File Index
- Module Documentation
- <alloca.h>: Allocate space in the stack
- <assert.h>: Diagnostics
- <ctype.h>: Character Operations
- <errno.h>: System Errors
- <inttypes.h>: Integer Type conversions
- <math.h>: Mathematics
- <setjmp.h>: Non-local goto
- <stdint.h>: Standard Integer Types
- <stdio.h>: Standard IO facilities
- <stdlib.h>: General utilities
- <string.h>: Strings
- <time.h>: Time
- <avr/boot.h>: Bootloader Support Utilities
- <avr/cpufunc.h>: Special AVR CPU functions
- <avr/eeprom.h>: EEPROM handling
- <avr/fuse.h>: Fuse Support
- <avr/interrupt.h>: Interrupts
- <avr/io.h>: AVR device-specific IO definitions
- <avr/lock.h>: Lockbit Support
- <avr/pgmspace.h>: Program Space Utilities
- <avr/power.h>: Power Reduction Management
- Additional notes from <avr/sfr_defs.h>
- <avr/sfr_defs.h>: Special function registers
- <avr/signature.h>: Signature Support
- <avr/sleep.h>: Power Management and Sleep Modes
- <avr/version.h>: avr-libc version macros
- <avr/wdt.h>: Watchdog timer handling
- <util/atomic.h> Atomically and Non-Atomically Executed Code Blocks
- <util/crc16.h>: CRC Computations
- <util/delay.h>: Convenience functions for busy-wait delay loops
- <util/delay_basic.h>: Basic busy-wait delay loops
- <util/parity.h>: Parity bit generation
- <util/setbaud.h>: Helper macros for baud rate calculations
- <util/twi.h>: TWI bit mask definitions
- <compat/deprecated.h>: Deprecated items
- <compat/ina90.h>: Compatibility with IAR EWB 3.x
- Demo projects
- Combining C and assembly source files
- A simple project
- A more sophisticated project
- Using the standard IO facilities
- Example using the two-wire interface (TWI)
- Data Structure Documentation
- File Documentation
- assert.h File Reference
- atoi.S File Reference
- atol.S File Reference
- atomic.h File Reference
- boot.h File Reference
- cpufunc.h File Reference
- crc16.h File Reference
- ctype.h File Reference
- delay.h File Reference
- delay_basic.h File Reference
- errno.h File Reference
- fdevopen.c File Reference
- fuse.h File Reference
- interrupt.h File Reference
- inttypes.h File Reference
- io.h File Reference
- lock.h File Reference
- math.h File Reference
- parity.h File Reference
- pgmspace.h File Reference
- power.h File Reference
- setbaud.h File Reference
- setjmp.h File Reference
- signature.h File Reference
- sleep.h File Reference
- stdint.h File Reference
- stdio.h File Reference
- stdlib.h File Reference
- string.h File Reference
- time.h File Reference
- twi.h File Reference
- wdt.h File Reference