You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
733 lines
53 KiB
HTML
733 lines
53 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
|
|
<title>avr-libc: pgmspace.h File Reference</title>
|
|
<link href="dox.css" rel="stylesheet" type="text/css">
|
|
</head>
|
|
<body>
|
|
<center>
|
|
<table width="80%">
|
|
<tr>
|
|
<td align="left"><a href="http://www.nongnu.org/avr-libc/">AVR Libc Home Page</a></td>
|
|
<td align="center" colspan=4><img src="avrs.png" alt="AVRs" align="middle" border="0"></td>
|
|
<td align="right"><a href="https://savannah.nongnu.org/projects/avr-libc/">AVR Libc Development Pages</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td align="center" width="13%"><a href="index.html">Main Page</a></td>
|
|
<td align="center" width="13%"><a href="pages.html">User Manual</a></td>
|
|
<td align="center" width="13%"><a href="modules.html">Library Reference</a></td>
|
|
<td align="center" width="13%"><a href="FAQ.html">FAQ</a></td>
|
|
<td align="center" width="13%"><a href="globals.html">Alphabetical Index</a></td>
|
|
<td align="center" width="13%"><a href="group__demos.html">Example Projects</a></td>
|
|
</tr>
|
|
</table>
|
|
</center>
|
|
<hr width="80%">
|
|
<!-- Generated by Doxygen 1.5.6 -->
|
|
<div class="contents">
|
|
<h1>pgmspace.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
|
|
|
|
<p>
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><td></td></tr>
|
|
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3e19ec020621f8b99268a81a85d29f57"></a><!-- doxytag: member="pgmspace.h::__PGMSPACE_H_" ref="3e19ec020621f8b99268a81a85d29f57" args="" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__PGMSPACE_H_</b> 1</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2898830827f947f003d187388f7e6c72"></a><!-- doxytag: member="pgmspace.h::__need_size_t" ref="2898830827f947f003d187388f7e6c72" args="" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__need_size_t</b></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="80fdd263dea318b34bfe11f5c3cbb6f3"></a><!-- doxytag: member="pgmspace.h::__ATTR_PROGMEM__" ref="80fdd263dea318b34bfe11f5c3cbb6f3" args="" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ATTR_PROGMEM__</b> __attribute__((__progmem__))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="536d41f7767c0a501c4f9aa625ef0c58"></a><!-- doxytag: member="pgmspace.h::__ATTR_PURE__" ref="536d41f7767c0a501c4f9aa625ef0c58" args="" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ATTR_PURE__</b> __attribute__((__pure__))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g75acaba9e781937468d0911423bc0c35">PROGMEM</a> __ATTR_PROGMEM__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g05ca900ebf7cd121be73c654d9ccb3eb">PSTR</a>(s) ((const PROGMEM char *)(s))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_word_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_word_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_dword_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_dword_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_float_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__LPM_float_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="08a72fff52c720c8c4da68d94bcbcfb7"></a><!-- doxytag: member="pgmspace.h::__LPM" ref="08a72fff52c720c8c4da68d94bcbcfb7" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__LPM</b>(addr) __LPM_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="68a101b9775c6ca1ce63ffd00cb847fa"></a><!-- doxytag: member="pgmspace.h::__LPM_word" ref="68a101b9775c6ca1ce63ffd00cb847fa" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__LPM_word</b>(addr) __LPM_word_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2ca4c178d5b7cc946d5f9946cfadb60a"></a><!-- doxytag: member="pgmspace.h::__LPM_dword" ref="2ca4c178d5b7cc946d5f9946cfadb60a" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__LPM_dword</b>(addr) __LPM_dword_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9153bd8c33415e46493483d8b1381cd2"></a><!-- doxytag: member="pgmspace.h::__LPM_float" ref="9153bd8c33415e46493483d8b1381cd2" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__LPM_float</b>(addr) __LPM_float_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g88d7dd4863f87530e1a34ece430a587c">pgm_read_byte_near</a>(address_short) __LPM((<a class="el" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(address_short))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gf51eeaa847dd2668d2a66b70ecfb7398">pgm_read_word_near</a>(address_short) __LPM_word((<a class="el" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(address_short))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g7fa92c0a662403a643859e0f33b0a182">pgm_read_dword_near</a>(address_short) __LPM_dword((<a class="el" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(address_short))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g066040df814dabc7980cd1422508b46b">pgm_read_float_near</a>(address_short) __LPM_float((<a class="el" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(address_short))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_word_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_word_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9a8bfdf4b3c7b73339b99f25050bbb7e"></a><!-- doxytag: member="pgmspace.h::__ELPM_dword_classic__" ref="9a8bfdf4b3c7b73339b99f25050bbb7e" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_dword_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_dword_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e1a2d7875738121a279dd9b14e660ffe"></a><!-- doxytag: member="pgmspace.h::__ELPM_float_classic__" ref="e1a2d7875738121a279dd9b14e660ffe" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_float_classic__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_float_enhanced__</b>(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d710ce3e6839b2b0aa751ecdcebc3916"></a><!-- doxytag: member="pgmspace.h::__ELPM" ref="d710ce3e6839b2b0aa751ecdcebc3916" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM</b>(addr) __ELPM_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c5514eda249623758e7bde7a10367981"></a><!-- doxytag: member="pgmspace.h::__ELPM_word" ref="c5514eda249623758e7bde7a10367981" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_word</b>(addr) __ELPM_word_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e13cac4b0bdce8636bbeea69d6f0c56c"></a><!-- doxytag: member="pgmspace.h::__ELPM_dword" ref="e13cac4b0bdce8636bbeea69d6f0c56c" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_dword</b>(addr) __ELPM_dword_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="59000091c8a496a757cc28abd1198899"></a><!-- doxytag: member="pgmspace.h::__ELPM_float" ref="59000091c8a496a757cc28abd1198899" args="(addr)" -->
|
|
#define </td><td class="memItemRight" valign="bottom"><b>__ELPM_float</b>(addr) __ELPM_float_classic__(addr)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g0d4d7f6231716747c52b969d4febdeed">pgm_read_byte_far</a>(address_long) __ELPM((<a class="el" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(address_long))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gd7082c45c2c96f015c76eff1ad00a99a">pgm_read_word_far</a>(address_long) __ELPM_word((<a class="el" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(address_long))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g309908c1b7430f0d140edb78fcf8f2b9">pgm_read_dword_far</a>(address_long) __ELPM_dword((<a class="el" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(address_long))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g4a5a593aa84062ca08b3f2d564a6f466">pgm_read_float_far</a>(address_long) __ELPM_float((<a class="el" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(address_long))</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g73084a8bbde259ffae72980354b3f027">pgm_read_byte</a>(address_short) pgm_read_byte_near(address_short)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g32d8ab354156f4b1ffdb77a275ba6223">pgm_read_word</a>(address_short) pgm_read_word_near(address_short)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gbb68859ac5dfa6a09ac048b4037a83b6">pgm_read_dword</a>(address_short) pgm_read_dword_near(address_short)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g7911bddb066a8a038efc4b7857728fa8">pgm_read_float</a>(address_short) pgm_read_float_near(address_short)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g963f816fc88a5d8479c285ed4c630229">PGM_P</a> const <a class="el" href="group__avr__pgmspace.html#ga475b6b81fd8b34de45695da1da523b6">prog_char</a> *</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g84a61d55b7efefabd8419e28f02704f9">PGM_VOID_P</a> const <a class="el" href="group__avr__pgmspace.html#gdb50761b9f19d45449445208778ee420">prog_void</a> *</td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef void PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gdb50761b9f19d45449445208778ee420">prog_void</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef char PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#ga475b6b81fd8b34de45695da1da523b6">prog_char</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned char PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g7d4701843a2019e3ef5a9866dc7586ed">prog_uchar</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#gef44329758059c91c76d334e8fc09700">int8_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g48c7cb011ea5f82f4b73df40e07dff46">prog_int8_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#gba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g39235a28487ae7790ce5f4c8178c8ed7">prog_uint8_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#g932e6ccc3d54c58f761c1aead83bd6d7">int16_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gafc910d0b2c4d76afffa4710b98df6fa">prog_int16_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g93ec00229866bf6a125384ad08cefa73">prog_uint16_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#gdb828ef50c2dbb783109824e94cf6c47">int32_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#ga839901aa518fb43d361588dd8d2b44b">prog_int32_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g31bad0d22ead95a41e725c38ea63eb26">prog_uint32_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#g831d6234342279926bb11bad3a37add9">int64_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g5b1f9927f06d841e9ac07af62e71cfef">prog_int64_t</a></td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="group__avr__stdint.html#gd27ed092432b64ff558d2254c278720f">uint64_t</a> PROGMEM </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#ga50eebe90a40e0276bcc49ea0482b211">prog_uint64_t</a></td></tr>
|
|
|
|
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">PGM_VOID_P </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g287a70fef8531ad6aa9a2f73ee4fa162">memchr_P</a> (PGM_VOID_P, int __val, size_t __len)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g51805e7bf43ffd1a70a045994a907768">memcmp_P</a> (const void *, PGM_VOID_P, size_t) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g53ee9e2dec1d5f685d78aa8dc444dccb">memcpy_P</a> (void *, PGM_VOID_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g851eaa0bd303b445f6ea70db31059fef">memmem_P</a> (const void *, size_t, PGM_VOID_P, size_t) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">PGM_VOID_P </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gb2614cd3f6b0196d3070b158f1ad05bd">memrchr_P</a> (PGM_VOID_P, int __val, size_t __len)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g1617c6719e65951f109fe29b18c2bd35">strcat_P</a> (char *, PGM_P)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">PGM_P </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g7c26394eea1ddcc33fb698833b9aa9b2">strchr_P</a> (PGM_P, int __val)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">PGM_P </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gf5c3724d0e89d5952738b8c8da004e0a">strchrnul_P</a> (PGM_P, int __val)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#ge3a7686c2e207b543be3b402d919761a">strcmp_P</a> (const char *, PGM_P) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g9c3ff50bdf59b38219394ff5230660da">strcpy_P</a> (char *, PGM_P)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g2e0ce009c836fed26221263d28c79b01">strcasecmp_P</a> (const char *, PGM_P) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gc75a4fcc7f301902eef58f8dea8e5cfd">strcasestr_P</a> (const char *, PGM_P) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gee6bf291c23054aca37533937a1d412f">strcspn_P</a> (const char *__s, PGM_P __reject) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g484117e1416429fc94efad8c66643164">strlcat_P</a> (char *, PGM_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gabad6a32f133121973ea9c06e30cd33a">strlcpy_P</a> (char *, PGM_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g3a8a479d2f1b4aef18a89316e3c9e0eb">strlen_P</a> (PGM_P)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g8ece6c08cef78e50f404072823e48752">strnlen_P</a> (PGM_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g5048829165f57aef87bba38ba9126d1d">strncmp_P</a> (const char *, PGM_P, size_t) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gbe5f48c518cc38229d010467dda41d19">strncasecmp_P</a> (const char *, PGM_P, size_t) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g11ed791b5d147f8d2ce01699a9c220ca">strncat_P</a> (char *, PGM_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g8283f9a987be92ae137ee610e6b11b90">strncpy_P</a> (char *, PGM_P, size_t)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gd6de880a1dd672b52469fe986e3ec011">strpbrk_P</a> (const char *__s, PGM_P __accept) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">PGM_P </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#gb3a5f8b6324d77903d713917eb219f05">strrchr_P</a> (PGM_P, int __val)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#ga3bc55b47998e5ce1d8ddcf0be228638">strsep_P</a> (char **__sp, PGM_P __delim)</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g0ca5a2d8b5b1b4d899edb89535c36b69">strspn_P</a> (const char *__s, PGM_P __accept) __ATTR_PURE__</td></tr>
|
|
|
|
<tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__avr__pgmspace.html#g36c9c2de19d7e23c4a6bf63eee608af3">strstr_P</a> (const char *, PGM_P) __ATTR_PURE__</td></tr>
|
|
|
|
</table>
|
|
<hr><h2>Define Documentation</h2>
|
|
<a class="anchor" name="a3bb050b6f4f954c943e25161b370758"></a><!-- doxytag: member="pgmspace.h::__ELPM_classic__" ref="a3bb050b6f4f954c943e25161b370758" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#gba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov r31, %B1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov r30, %A1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r0"</span>, <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="e960e608b8e9e273d19cc5afe22b2dcd"></a><!-- doxytag: member="pgmspace.h::__ELPM_dword_enhanced__" ref="e960e608b8e9e273d19cc5afe22b2dcd" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_dword_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"movw r30, %1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %B0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %C0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %D0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="33f4d4f7e9deb9a6dd0a96adfe0ddcc7"></a><!-- doxytag: member="pgmspace.h::__ELPM_enhanced__" ref="33f4d4f7e9deb9a6dd0a96adfe0ddcc7" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#gba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"movw r30, %1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="edbbb46a483479811fa0ff5156864dab"></a><!-- doxytag: member="pgmspace.h::__ELPM_float_enhanced__" ref="edbbb46a483479811fa0ff5156864dab" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_float_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<span class="keywordtype">float</span> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"movw r30, %1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %B0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %C0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %D0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="26a3c7d17dc82e065ea9304c57a94d4c"></a><!-- doxytag: member="pgmspace.h::__ELPM_word_classic__" ref="26a3c7d17dc82e065ea9304c57a94d4c" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_word_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov r31, %B1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov r30, %A1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %A0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"in r0, %2"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adc r0, __zero_reg__"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"out %2, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %B0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r0"</span>, <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="c22578c90fad247ec9d4ba3da448d293"></a><!-- doxytag: member="pgmspace.h::__ELPM_word_enhanced__" ref="c22578c90fad247ec9d4ba3da448d293" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __ELPM_word_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __addr32 = (<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"out %2, %C1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"movw r30, %1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"elpm %B0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"r"</span> (__addr32), \
|
|
<span class="stringliteral">"I"</span> (_SFR_IO_ADDR(RAMPZ)) \
|
|
: <span class="stringliteral">"r30"</span>, <span class="stringliteral">"r31"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="ca983107cfbdef8ba6763386d3d32a95"></a><!-- doxytag: member="pgmspace.h::__LPM_classic__" ref="ca983107cfbdef8ba6763386d3d32a95" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#gba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"z"</span> (__addr16) \
|
|
: <span class="stringliteral">"r0"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="de9afae7533e1b3054afd46cafd4d0a4"></a><!-- doxytag: member="pgmspace.h::__LPM_dword_classic__" ref="de9afae7533e1b3054afd46cafd4d0a4" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_dword_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %A0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %B0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %C0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %D0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
: <span class="stringliteral">"r0"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="51a9c87d5a2447c4e481d6c0cde5915e"></a><!-- doxytag: member="pgmspace.h::__LPM_dword_enhanced__" ref="51a9c87d5a2447c4e481d6c0cde5915e" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_dword_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g33594304e786b158f3fb30289278f5af">uint32_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %B0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %C0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %D0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="1b369c790673cf91213297ead210b7a7"></a><!-- doxytag: member="pgmspace.h::__LPM_enhanced__" ref="1b369c790673cf91213297ead210b7a7" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#gba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm %0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result) \
|
|
: <span class="stringliteral">"z"</span> (__addr16) \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="7121f301197b01eae138d18274dde754"></a><!-- doxytag: member="pgmspace.h::__LPM_float_classic__" ref="7121f301197b01eae138d18274dde754" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_float_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<span class="keywordtype">float</span> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %A0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %B0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %C0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %D0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
: <span class="stringliteral">"r0"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="d7f1d1a85be927ecf0912371791ec7cb"></a><!-- doxytag: member="pgmspace.h::__LPM_float_enhanced__" ref="d7f1d1a85be927ecf0912371791ec7cb" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_float_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<span class="keywordtype">float</span> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %B0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %C0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %D0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="4fbd191cba8015caf1278918dffdeeab"></a><!-- doxytag: member="pgmspace.h::__LPM_word_classic__" ref="4fbd191cba8015caf1278918dffdeeab" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_word_classic__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %A0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"adiw r30, 1"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"mov %B0, r0"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
: <span class="stringliteral">"r0"</span> \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
<a class="anchor" name="b62d92f898b21110be73d3d70ee99069"></a><!-- doxytag: member="pgmspace.h::__LPM_word_enhanced__" ref="b62d92f898b21110be73d3d70ee99069" args="(addr)" -->
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">#define __LPM_word_enhanced__ </td>
|
|
<td>(</td>
|
|
<td class="paramtype">addr </td>
|
|
<td class="paramname"> </td>
|
|
<td> ) </td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="memdoc">
|
|
|
|
<p>
|
|
<b>Value:</b><div class="fragment"><pre class="fragment">(__extension__({ \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __addr16 = (<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a>)(addr); \
|
|
<a class="code" href="group__avr__stdint.html#g1f1825b69244eb3ad2c7165ddc99c956">uint16_t</a> __result; \
|
|
__asm__ \
|
|
( \
|
|
<span class="stringliteral">"lpm %A0, Z+"</span> <span class="stringliteral">"\n\t"</span> \
|
|
<span class="stringliteral">"lpm %B0, Z"</span> <span class="stringliteral">"\n\t"</span> \
|
|
: <span class="stringliteral">"=r"</span> (__result), <span class="stringliteral">"=z"</span> (__addr16) \
|
|
: <span class="stringliteral">"1"</span> (__addr16) \
|
|
); \
|
|
__result; \
|
|
}))
|
|
</pre></div>
|
|
</div>
|
|
</div><p>
|
|
</div>
|
|
|
|
<hr width="80%">
|
|
<p><center>Automatically generated by Doxygen 1.5.6 on 4 Dec 2008.</center></p>
|
|
|
|
</body>
|
|
</html>
|