Цитата(gladov @ Feb 25 2009, 09:16)

Где скрытый смысл "влезать" в процесс инициализации камня?
Во-первых, на момент вызова __low_level_init() стеки уже проинициализированы.
Во-вторых, если мы разгоним PLL до иницииализации переменных, инициализация пойдет быстрее. AT91SAM7, например, стартует на ~32КГц.
В-третьих, __low_level_init() выполняется до вызова конструкторов статических объектов. Часто статические объекты описывают некие внешние устройства и очень удобно разместить в конструкторе инициализацию этого внешнего устройства. И к моменту вызова инициализации, скажем, spi_flash, набортный SPI уже должен быть настроен. spi_flash может быть унаследован от spi, но проводить инициализацию интерфейса в конструкторе spi некорректно, ибо от него могут быть унаследованы другие устройства и тогда инициализация будет выполнена несколько раз.