Цитата(syoma @ Jul 6 2010, 19:44)

В бытность начинал на Keil для 8051 и там в комплекте был конкретно расписанный Manual с указанием особенностей программирования именно для 8051 контроллеров.
Сейчас листаю help к Keil Realview и ихнему Компилятору Си и ничего такого не нахожу.
У армов нет жестко фиксированной карты памяти (за исключением Cortex-M), регионы меняются от чипа к чипу. Расстановкой переменных занимается линковщик, вручную этого делать необходимости обычно нет.
Неизменяемые переменные (const) идут во флэш. Инициализированные (static int counter = 1) инициализируются стартапом в ОЗУ. Остальные переменные размещаются в ОЗУ и обычно инициализируются нулями.
EEPROM это что-то вроде энергонезависимой памяти? Такого стандартно нет. Многие производители предлагают IAP (In-application programming), он у каждого свой.
Битовые переменные можно эмулировать битовыми полями в структурах, но это это не особо эффективно, да и не нужно обычно - памяти-то не 256 байт. Кстати, советую не жадничать и не объявлять байтовых переменных - памяти они экономят немного, а компилятору приходится генерировать дополнительный код для обрезания после почти каждой операции. Стандартный (unsigned) int практически всегда оптимален.
SFR нет стандартных (за исключением нескольких регионов в Cortex-M), опять же смотрите документацию по конкретному чипу и хидеры от производителя.
По интринсинкам можно посмотреть
тут, по прагмам
тут. Но они редко нужны в обычном коде.
Сообщение отредактировал rezident - Jul 7 2010, 23:32
Причина редактирования: Излишнее цитирование.