Xenia 45 18 июня, 2009 Опубликовано 18 июня, 2009 (изменено) · Жалоба С чего Вы взяли? Просто пример _Bool наглядно показывает несуразности в представлении данных Несуразности возникают только в сознании :), когда путают переменную типа bool и операцию с битами. ЛЮБАЯ ПЕРЕМЕННАЯ - это одна или несколько ячеек памяти, а потому быть тождественной с битом она принципиально не может. А если нужны операции с битами, то это делается не с помощью bool-типа, а с помощью побитово расписанной структуры. Например: struct mystruct bool a : 1; bool b : 1; bool c : 1; bool d : 1; bool e : 1; bool f : 1; bool g : 1; bool h : 1; ) flag; Вот тут уже все становится ясно и компилятору, и процессору, и программисту - видно, что в памяти ассигнован блок в один байт (8 бит), из которого велено таскать биты. В этом виноват компилятор. В том, что процессор один бит из памяти достать-таки может, а компиляторописатели не могут обеспечить автоматическое размещение однобитовых переменных ... Ни у одного процессора в мире нет в памяти однобитных переменных. И это уже потому, что память побитно не адресуется. Однако компиляторы обычно предоставляют пользователям удобные способы работы как с битами, так и с битовыми полями (см. мою предыдущую реплику). Однако надо понимать, что делается это "через ухо", т.е. компилятор достает слово памяти целиком, а потом вырезает из него нужные биты. Модификация бита стоит еще дороже - сначала процессор прочитывает целиком слово памяти, к которому этот бит относится, при помощи операций or и and модифицирует в нем нужный бит или группу битов, а затем записывает модифицированное слово обратно в память. Инструкции ряда микропроцессоров (и AVR в том числе) позволяют модифицировать отдельные биты в собственных регистрах и портах, только в этом случае битовые операции над ними реализуются эффективно. Поэтому битовые флаги лучше всего держать в регистрах, а не в памяти. Во всех же остальных случаях, выгоднее не экономить на спичках, а заводить переменную bool типа. Такая кодировка действительно оказывается избыточной, зато ее применение компенсируется максимально высокой скоростью использования. Можно с полным основанием считать, что тип bool является атрибутом оптимизации как по скорости, так и по объему кода, когда как его недостаток состоит лишь лишнем расходе памяти. Изменено 18 июня, 2009 пользователем Xenia Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Ни у одного процессора в мире нет в памяти однобитных переменных. Ну, вообще-то у 51-го ядра есть Bit Addressable Area и набор команд для работы с ней. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Благодаря удобству программирования Целый зверинец интерфейсов, соответственно программаторов, наплевательское отношение старых интерфейсов программирования... Редко у кого с программированием обстоит хуже, чем у AVR. , отладки, Как и у всех. схемотехнике, Оооооо! А что это? удобные способы работы как с битами, так и с битовыми полями (см. мою предыдущую реплику). Однако надо понимать, что делается это "через ухо", т.е. компилятор достает слово памяти целиком, а потом вырезает из него нужные биты. Модификация бита стоит еще дороже - сначала процессор прочитывает целиком слово памяти, к которому этот бит относится, при помощи операций or и and модифицирует в нем нужный бит или группу битов, а затем записывает модифицированное слово обратно в память. Лениво было отвечать на предыдущее творение, но понятия организации доступа к памяти у Вас осталить на уровне восьмибитовиков, как минимум доступ к единицам менее ширины шины RAM и имеет место быть в обязательном порядке и для сборки из узкой шины памяти процессор не использует никаких специальных команд - это проблема контроллера памяти. Можно с полным основанием считать, что тип bool является атрибутом оптимизации как по скорости, так и по объему кода, когда как его недостаток состоит лишь лишнем расходе памяти. А хоть немного почитать топик и подумать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Xenia 45 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба А хоть немного почитать топик и подумать? А что, разве АРМы превосходят АВРы в том, что биты поштучно из памяти таскают? :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikki 0 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Разговор как всегда уходит в сторону, о чем не забывают напоминать некоторые участники, особенно хорошо это получилось у Ксении, душевно так и логично. И так по-порядку. Самый первый пост от IGK навеян просто грустью по поводу прошедшей юности!!! Старые лохматые джинсы, в которых было так удобно тогда, а что сейчас...? - штанишки просто стали просто малы! Метания в рядах АВР-пользователей понятны, грустно прощаться с полюбившейся платформой. Да мы вырасли на AVR-ках и сейчас на фоне новых требований к продукции разные там интерфейсы, GUI и т.д мощности процессора, надо это признать не хватает. Конечно есть устройства в которых ничего этого не требуется и естественно AVR будет жить, хотя бы как AtX _Mega (думаю по новому техпроцессу устройства получаются конкурентнее классики, поэтому такой соотношение цен на старые и новые модели) и нас просто плавно пытаются перевести на новую микруху. Эх раньше бы все это и не было бы такого разговора сейчас переходить на что то или нет. Например в рядах ПИК-поклонников такого метания нет, там все спокойно, вовремя появился PIC24, dsPIC30, dsPIC33, а теперь и PIC32. Может быть нам (АВР-пользователям ) повезло меньше чем ПИК-пользователям? Попробую дать ответ в следующем посте. И так, куда движется мир? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 29 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Может быть нам (АВР-пользователям ) повезло меньше чем ПИК-пользователям? Точно. Между AVR и AVR32 не хватает AVR16. После изучаемого в стандартном курсе 8080 (и нашего 580) я от AVR просто тащился. Пока не потрогал MSP. Теперь любое упоминание об изделиях атмела вызывает кислую гримасу на лице. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 1 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба А что, разве АРМы превосходят АВРы в том, что биты поштучно из памяти таскают? :) Например, кортексы могут адресовать единственный бит в памяти :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Да мы вырасли на AVR-ках Вы выросли. Вот и мечетесь :) Я, например, к моменту первого ознакомления с AVR (в районе 2000ного года) очень плотно работал с PowerPC (не в микроконтроллерном варианте). Так что плотное пересаживание на восьмибитные камни для меня было серьезным даунгрейдом :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сибирь 0 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба но вот время реакции на событие у авр несколько сотен наносекунд, а ваше арм такое разве может? время загрузки у авр микросекунды, а ваше арм такое разве может? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 28 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Да мы вырасли на AVR-ках и сейчас на фоне новых требований... Кто это "мы"? Или, куда делись те, кто вырос на К580, Z80 и AT89S.. (или i4004)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sonycman 1 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Я, например, к моменту первого ознакомления с AVR (в районе 2000ного года) очень плотно работал с PowerPC (не в микроконтроллерном варианте). Так что плотное пересаживание на восьмибитные камни для меня было серьезным даунгрейдом :) А до этого были и Z80 (восьмибитовик?), и MC680х0? Вам было не привыкать. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 29 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Или, куда делись те, кто вырос на К580, Z80 и AT89S.. (или i4004)? Никуда не делись. Выросли... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rst7 5 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба А до этого были и Z80 (восьмибитовик?), и MC680х0? А еще был K580 (факультативно, но результативно - кличку я еще в те времена заработал) и PDP-11 (до Z80). Так что и там даунгрейд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба но вот время реакции на событие у авр несколько сотен наносекунд, а ваше арм такое разве может? время загрузки у авр микросекунды, а ваше арм такое разве может? :) А что, разве АРМы превосходят АВРы в том, что биты поштучно из памяти таскают? :) Любые 16/32 бит контроллеры "таскают" не так, как вы живописали по ширине шины, а в том числе и побайтно. А подумать это относилось конкретно к тому, в ответ на что было написано, а не по поводу Ваших шинных размышлизмов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 18 июня, 2009 Опубликовано 18 июня, 2009 · Жалоба Пока не потрогал MSP. Теперь любое упоминание об изделиях атмела вызывает кислую гримасу на лице. А я вот видел людей, которые с MSP пересели на AVR и дико плевались от MSP. Кстати, в том числе и от их хлипкости. Так что всётаки это сугубо субъективно всё. Я, от MSP, никакого экстаза не получил что-то. Ни система команд, ни переферия, ни наладка чёто впечатления не произвела. Прорывов в производительности тоже не ощутил. Короче те же грабли - вид сбоку. Тот же M16 круче на порядок. Сейчас ещё пикоманы подтянутся. со своими DS и 32-ыми. Конечно, каждый камень свою нишу занимает, и есть неочевидные применения. Так например тот же сименс SC186 до сих пор широко применяется. Хот тоже как то мало смысла в этом видится. То есть просматриваются шкурные, корпоративные и прочие интересы. Думаю что TI принадлежит к компаниям, которые "продавят" на рынок любой камень. А столь малая ниша MSP как раз указывает на слабость решения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться