Запись char в EEPROM

nik182
Offline
Зарегистрирован: 04.05.2015

Я не специалист в разработке языков програмирования. Интересовался в своё время почему нет Си для тинек без ОЗУ. Тогда основной причиной называли отсутствие возможности организации стека для поддержки вызова процедур. Может быть сейчас что то изменилось, но Си для тинек без ОЗУ так и нет. 

Закона запрещающего производить мат. операции в ОЗУ нет. А у AVR возможности нет. Не поддерживается такой функционал у тинек.

Регистры процессора это ячейки хранения и обработки информации со свойствами отличными от свойств ОЗУ. Если какие то свойства этих двух различных мест хранения информации пересекаются, это не значит что регистры становятся ОЗУ. Доступ к ним разниться. Это как епром и ОЗУ. Много свойств пересекаются, но есть отличия. 

P.S. Залез в вики и о чудо первая же фраза говорит что регистры это не ОЗУ. Это СОЗУ - сверхоперативная ОЗУ :-)

З.Ы. Ну и из введения в линух: 

Современные компьютеры используют широкий спектр технологий хранения. Каждая технология имеет своё предназначение, которому соответствует её скорость и объём.

Это следующие технологии:

  • Регистры процессора

  • Кэш-память

  • ОЗУ

  • Жёсткие диски

  • Внешние резервные хранилища (магнитные ленты, оптические диски и т.д.)

negavoid
Offline
Зарегистрирован: 09.07.2016

Andriano совершенно прав во всех трёх постах подряд, но в то же время, всё это бесполезные придирки, ибо в современном мире никому никогда в голову не придёт называть регистры озу, хотя и по факту, и по определению это так и есть. Новичок со временем потихоньку это осозна́ет, а nik и green и так об этом знали и понимали и раньше.

nik182 пишет:
Регистры процессора это ячейки хранения и обработки информации со свойствами отличными от свойств ОЗУ. Если какие то свойства этих двух различных мест хранения информации пересекаются, это не значит что регистры становятся ОЗУ. Доступ к ним разниться. Это как епром и ОЗУ. Много свойств пересекаются, но есть отличия.

О, редактура :) Ну, я пишу вики. И Библию, и линукс. Могу написать, что это не сверхозу, а недоозу, а вы потом приведёте, как аргумент. От того, что доступ у нас высокоуровневой командой MOV, а не LDR, и дорожки на шине чуть покороче, регистр не перестаёт быть ОЗУ. И еепром тоже озу, не пзу же, по определению (гусары, молчать про ппзу!). Но повторюсь, ныне утратившему актуальность en masse.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Что такое развитие технологии в софте и в железе. Это когда новые вновь создаваемые компоненты имитируют работу старых лучше. Для чего это надо? Для того что бы была совместимость и развитие системы по частям. сначало был триггрер, потом регист, потом простое ОЗУ , магнитная лента, гибкий диск, жеский диск, флешка.  В софте такая же петрушка, но просто меняется внешняя идея а принцип тот же. Конечно можно резко поменять все, но это большой риск и расход денег. Но по чучуть и риска меньше и пользы больше.

negavoid
Offline
Зарегистрирован: 09.07.2016

Как ни странно, но вот тут я с квоном согласен (кроме денег, они уж точно не имеют отношения к терминологии). Время всё решит. Помрёт Кнут, Страуструп, помрут склочные деды с этого форума, помрём мы, помрут наши дети, пзу сроднится с озу и станет единым целым, увеличится скорость обмена данными и станут неважны делеи по шине, регистр потеряет смысл, [оперативка, винт, видеопамять станут единой сущностью], но вот в чём я однозначно уверен, даже и тогда на отечественных нейрофорумах будущего будут бессмысленно докапываться по мелочам, а как же правильно это наименовать :)

nik182
Offline
Зарегистрирован: 04.05.2015

Согласен со всеми про слияние в будущем в один вид памяти. Но прошу всё ж задуматься почему нет Си для тинек без ОЗУ.  Если регистры это ОЗУ то почему нет СИ? В чем регистры отличаются от ОЗУ что на них не сделать того,что можно на ОЗУ. Для меня это главное отличие. Почему я настаиваю на том, регистры это не ОЗУ. Если кто то не видит это отличия - может оставаться при своём мнении. И это не мелочь. Из за этого для тинек без ОЗУ пришлось писать не ассемблере. А это сколько ж времени пришлось потрать, что б и его изучить :-( 

negavoid
Offline
Зарегистрирован: 09.07.2016

nik182 пишет:
почему нет Си для тинек без ОЗУ.  Если регистры это ОЗУ то почему нет СИ? В чем регистры отличаются от ОЗУ что на них не сделать того,что можно на ОЗУ.

Потому же, почему на Коста Конкордии штат стюардов 500 человек, а на яхте Абрамовича 10, просто потому, что регистров мало, да и никто не мешает вам написать свой си с блэкджеком и ограничениями для платформы Тайни. И точно так же, никто не мешает указывать сишным переменным register, заставляя компилятор запихивать их не в оперативку, даже если это и не имеет смысла в 99.999% случаев.

nik182 пишет:
И это не мелочь. Из за этого для тинек без ОЗУ пришлось писать не ассемблере. А это сколько ж времени пришлось потрать, что б и его изучить :-(

Нам, конечно, грустно, но вот это - исключительно ваши персональные трудности. Быстро/Качественно/Дёшево действует не только на айтишных клиентов, но и на самих программистов тоже.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

nik182 пишет:
Но прошу всё ж задуматься почему нет Си для тинек без ОЗУ.  Если регистры это ОЗУ то почему нет СИ?
Точно. Слепой в упор не увидет. https://arduino.ua/art54-znakomstvo-s-digispark

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Регистры процессора это ячейки хранения и обработки информации со свойствами отличными от свойств ОЗУ. Если какие то свойства этих двух различных мест хранения информации пересекаются, это не значит что регистры становятся ОЗУ. Доступ к ним разниться. Это как епром и ОЗУ. Много свойств пересекаются, но есть отличия. 

Дабы не быть голословным, здесь следовало бы привести два списочка:

- свойства регистров,

- свойства ОЗУ,

чтобы всяк желающий мог самостоятельно сделать выводы.

Цитата:

Современные компьютеры используют широкий спектр технологий хранения. Каждая технология имеет своё предназначение, которому соответствует её скорость и объём.

Это следующие технологии:

  • Регистры процессора

  • Кэш-память

  • ОЗУ

  • Жёсткие диски

  • Внешние резервные хранилища (магнитные ленты, оптические диски и т.д.)

Вы всерьез считаете, что существует принципиальная разница, на какой именно технологии реализовано ОЗУ: на триггерах, на конденсаторах, на линиях задержки, на ферритовых колечках или на бумажной ленте с клеточками?

Кстати, просветите, как реализованы указанные "технологии хранения" в машине Тьюринга.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

nik182 пишет:

Но прошу всё ж задуматься почему нет Си для тинек без ОЗУ.  Если регистры это ОЗУ то почему нет СИ? В чем регистры отличаются от ОЗУ что на них не сделать того,что можно на ОЗУ. Для меня это главное отличие. Почему я настаиваю на том, регистры это не ОЗУ. Если кто то не видит это отличия - может оставаться при своём мнении. И это не мелочь. Из за этого для тинек без ОЗУ пришлось писать не ассемблере. А это сколько ж времени пришлось потрать, что б и его изучить :-( 

Да банально не помещается. Т.е. количественное переходит в качественное. Тут далеко не всегда получается в 2 кбайта уместиться, так чего Вы от 0.03 кбайтов хотите?

И, кстати, помнится, Вы приводили в качестве аргумента стек, который якобы можно реализовать в ОЗУ, но невозможно на регистрах. Так вот, это не так: стек можно легко реализовать и на регистрах. Для этого вообще достаточно трех байтов: один для указателя и два - для, собственно, стека. Только какая польза от стека такого размера? Вот разработчики Attiny и отказались от аппаратного стека, а реализовать его программно - ничего не мешает. Ну, разумеется, кроме бесполезности такого действа. И, кстати, вызов функций с использованием стека - лишь один из возможных вариантов реализации этих самых функций. Можно и без стека.

Так что отсутствие Си на Attiny - связано лишь с размерами ОЗУ, но никак не с его отсутствием. Без ОЗУ, как известно, компьютер функционировать не может. Совсем.