AVR Libc Home Page | ![]() |
AVR Libc Development Pages | |||
Main Page | User Manual | FAQ | Library Reference | Additional Documentation | Example Projects |
以下は、ライブラリ関数毎の大まかなリソース要求量を見積もったものです。
There is a number of factors which can both
increase or reduce the effort required:
Avr-gcc version は4.2.3 です。
Function | Units | Avr2 | Avr25 | Avr4 |
atoi ("12345") | Flash bytes Stack bytes MCU clocks |
82 (82) 2 155 |
78 (78) |
74 (74) 2 149 |
atol ("12345") | Flash bytes Stack bytes MCU clocks |
122 (122) 2 221 |
118 (118) |
118 (118) 2 219 |
dtostre (1.2345, s, 6, 0) | Flash bytes Stack bytes MCU clocks |
1184 (1072) 17 1313 |
1088 (978) |
1088 (978) 17 1152 |
dtostrf (1.2345, 15, 6, s) | Flash bytes Stack bytes MCU clocks |
1676 (1564) 36 1608 |
1548 (1438) |
1548 (1438) 36 1443 |
itoa (12345, s, 10) | Flash bytes Stack bytes MCU clocks |
150 (150) 4 1172 |
134 (134) |
134 (134) 4 1152 |
ltoa (12345L, s, 10) | Flash bytes Stack bytes MCU clocks |
220 (220) 9 3174 |
200 (200) |
200 (200) 9 3136 |
malloc (1) | Flash bytes Stack bytes MCU clocks |
554 (554) 4 196 |
506 (506) |
506 (506) 4 178 |
realloc ((void *)0, 1) | Flash bytes Stack bytes MCU clocks |
1152 (1040) 20 303 |
1042 (932) |
1042 (932) 20 280 |
qsort (s, sizeof(s), 1, cmp) | Flash bytes Stack bytes MCU clocks |
1242 (1130) 38 20914 |
990 (880) |
1008 (898) 38 16678 |
sprintf_min (s, "%d", 12345) | Flash bytes Stack bytes MCU clocks |
1216 (1104) 59 1846 |
1090 (980) |
1086 (976) 59 1711 |
sprintf (s, "%d", 12345) | Flash bytes Stack bytes MCU clocks |
1674 (1562) 58 1610 |
1542 (1432) |
1498 (1388) 58 1528 |
sprintf_flt (s, "%e", 1.2345) | Flash bytes Stack bytes MCU clocks |
3334 (3222) 66 2513 |
3084 (2974) |
3040 (2930) 66 2297 |
sscanf_min ("12345", "%d", &i) | Flash bytes Stack bytes MCU clocks |
1540 (1428) 55 1339 |
1354 (1244) |
1354 (1244) 55 1240 |
sscanf ("12345", "%d", &i) | Flash bytes Stack bytes MCU clocks |
1950 (1838) 53 1334 |
1704 (1594) |
1704 (1594) 53 1235 |
sscanf ("point,color", "%[a-z]", s) | Flash bytes Stack bytes MCU clocks |
1950 (1838) 87 2878 |
1704 (1594) |
1704 (1594) 87 2718 |
sscanf_flt ("1.2345", "%e", &x) | Flash bytes Stack bytes MCU clocks |
3298 (3186) 63 2187 |
2934 (2824) |
2918 (2808) 63 1833 |
strtod ("1.2345", &p) | Flash bytes Stack bytes MCU clocks |
1570 (1458) 22 1237 |
1472 (1362) |
1456 (1346) 22 971 |
strtol ("12345", &p, 0) | Flash bytes Stack bytes MCU clocks |
942 (830) 29 1074 |
874 (764) |
808 (698) 21 722 |
この表は関数が与えられたパラメータを処理するのに必要なMCUクロック数を載せています。Avr2とAvr4の最大の違いは、ハードウェア乗算機構のサポートの有無です。
Function | Avr2 | Avr4 |
__addsf3 (1.234, 5.678) | 113 | 108 |
__mulsf3 (1.234, 5.678) | 375 | 138 |
__divsf3 (1.234, 5.678) | 466 | 465 |
acos (0.54321) | 4648 | 2689 |
asin (0.54321) | 4754 | 2790 |
atan (0.54321) | 4710 | 2271 |
atan2 (1.234, 5.678) | 5270 | 2857 |
ceil (1.2345) | 177 | 177 |
cos (1.2345) | 3381 | 1665 |
cosh (1.2345) | 4922 | 2979 |
exp (1.2345) | 4708 | 2765 |
fdim (5.678, 1.234) | 111 | 111 |
floor (1.2345) | 180 | 180 |
fmax (1.234, 5.678) | 39 | 37 |
fmin (1.234, 5.678) | 35 | 35 |
fmod (5.678, 1.234) | 132 | 132 |
frexp (1.2345, 0) | 37 | 36 |
hypot (1.234, 5.678) | 1556 | 1078 |
ldexp (1.2345, 6) | 42 | 42 |
log (1.2345) | 4142 | 2134 |
log10 (1.2345) | 4498 | 2260 |
modf (1.2345, 0) | 433 | 429 |
pow (1.234, 5.678) | 9293 | 5047 |
round (1.2345) | 150 | 150 |
sin (1.2345) | 3347 | 1647 |
sinh (1.2345) | 4946 | 3003 |
sqrt (1.2345) | 709 | 704 |
tan (1.2345) | 4375 | 2420 |
tanh (1.2345) | 5126 | 3173 |
trunc (1.2345) | 178 | 178 |