-
- Один, очень простой вопрос: Как в МК с Гарвардской архитектурой и
флешем реализуется "создание экземпляра класса" в рантайме? Ах
никак, у нас раннее связывание, на этапе компиляции? Тогда о каких
"плюсах" мы говорим? Где же тогда хвалёный полиморфизм? Или он
реализуется компилятором, по методу "предварительного
окостылевания", чтобы человек, глядя в исходники, мог высокопарно
мыслить объектами и классами, а процессор выполнять свой
процедурный код. :))) - vpv.vpv(20.05.2024 09:38)
- Экземпляры класса создаются точно так же как экземпляры структур, нет никакой разницы. Проблема может быть только в особенностях архитектуры 51 (а не гарварда вообще) - компилируемый стек, высокие накладные на вызов функции по указателю и т.д. - =AlexD=(21.05.2024 10:11)
- А в чём проблема? Код в памяти кода, экземпляр класса (данные + указатель на таблицу виртуальных функций) в памяти данных. - ЫЫyкпy(20.05.2024 23:50)
- (страшным шопотом) 8х51 МК с внешней памятью программ можно было
превратить в Фон-Неймановскую архитектуру. - Alex68(20.05.2024 16:06)
- Я в 90х так и делал. Когда овладел DS87C520-33, имея внешнее ПЗУ
К573РФ4А :-)))) Прицепил к ПЗУ кеш-память 61С256-12нс, генератор
32мГц делился при сбросе на 4. На тактовой 8Мгц я копировал
содержимое ПЗУ в ОЗУ, и на рубеже адресов 0x00FF->0x0100
(когда мультиплексный младший адрес и данные на шине равны нулю,
т.е. команде "nop") - я переключал процессором делитель с 1:4 на
1:1, и проц взлетал на 32МГц, работая с внешней 12нс памятью
"программ". - vpv.vpv(21.05.2024 10:48)
- ну. "были ж люди как люди" (С) Крок - Alex68(21.05.2024 22:50)
- Можно подробностей что под этим подразумевается? - POV(21.05.2024 09:58)
- Наверное, п.2.3.5 DVV(1 знак., 21.05.2024 10:43, ссылка)
- Совершенно верно. Далее нужный код копируется в ОЗУ. и ему передается управление. - vpv.vpv(21.05.2024 10:51)
- nPSEN объединить с nRD и вместо внешней ПЗУ, ОЗУ. И можно писать в
память программ. - mse homjak(21.05.2024 10:28)
- имано. - Alex68(21.05.2024 22:46)
- Фон-нейман-то тут где? Нет единого адресного пространства, разные
шины, даже разными командами доступ обеспечивается. Это ни
формально ни с точки зрения программиста (хоть бы и на Сях) не
фон-нейман... POV(144 знак., 21.05.2024 11:32)
- Появляется единое пространство во внешней памяти. Можэте получать
доступ через запись/чтение, а можэте, через ПСЕН. На этом принципе
было создано бесчисленное количество внутрисхемных эмуляторов 8051.
И что за беда, что разные команды, если одни являются подмножэством
других? - mse homjak(21.05.2024 12:05)
- Ну что за словоблудие.. 51й как никакой другой это строгий гарвард.
К чему пытаться его обозвать иначе, когда за это приходит платить
тактами доступа к ячейкам памяти? - POV(21.05.2024 12:08)
Мальчик-девочкастрогий-не строгий, какая, в жопу, разница? Если он ведёт себя какуткафонНейман. В диапазоне внешней памяти. У вас внешняя память однородна. Вы в неё пишете, как в ОЗУ, читаете, как ОЗУ и выполняете код. - mse homjak(21.05.2024 12:15)- и можна писать самомодифицирущийся код. либо код вперемежку с данными. как на православном деке. - Alex68(21.05.2024 22:48)
- Ну что за словоблудие.. 51й как никакой другой это строгий гарвард.
К чему пытаться его обозвать иначе, когда за это приходит платить
тактами доступа к ячейкам памяти? - POV(21.05.2024 12:08)
- Из новостей: "Полупроводниковый гигант отменил проект инновационного процессора, в разработку которого было вложено 3 года и 100500 млн доллариев, так как члены совета директоров не смогли прийти согласию, это Гарвард или фон Нейман". - SciFi(21.05.2024 11:35)
- Появляется единое пространство во внешней памяти. Можэте получать
доступ через запись/чтение, а можэте, через ПСЕН. На этом принципе
было создано бесчисленное количество внутрисхемных эмуляторов 8051.
И что за беда, что разные команды, если одни являются подмножэством
других? - mse homjak(21.05.2024 12:05)
- Наверное, п.2.3.5 DVV(1 знак., 21.05.2024 10:43, ссылка)
- Я в 90х так и делал. Когда овладел DS87C520-33, имея внешнее ПЗУ
К573РФ4А :-)))) Прицепил к ПЗУ кеш-память 61С256-12нс, генератор
32мГц делился при сбросе на 4. На тактовой 8Мгц я копировал
содержимое ПЗУ в ОЗУ, и на рубеже адресов 0x00FF->0x0100
(когда мультиплексный младший адрес и данные на шине равны нулю,
т.е. команде "nop") - я переключал процессором делитель с 1:4 на
1:1, и проц взлетал на 32МГц, работая с внешней 12нс памятью
"программ". - vpv.vpv(21.05.2024 10:48)
- Зачем в рантайме? У меня и на компе-то большинство классов - статические. Samx(71 знак., 20.05.2024 11:49)
- бл... не знаю не знаю... писал тут под чужой проект на С++ полностью который под ARM... там чтобы просто на флажок вывести чего-либо надо было продумать архитектурно как это сделать в тестовых целях... все на С++, инициализации периферии тоже... - sav6622(19.05.2024 10:48)
- с фанатизмом еще лучше. поговорим о С++23 coroutine применительно к
mcu c 2к ОЗУ и 16к FLAH ? - klen(18.05.2024 23:51)
- Ну нет почти задач с миганием ледов под корутины. Уметь это
неплохо. Но как правило не нужно. - POV(18.05.2024 23:59)
- Зато про прототреды есть :-) И я уже говрил как-то, что никак не
мог перестроить свои мозги Samx(129 знак., 19.05.2024 00:18)
- да вот проблема в перестройки мозгов, а не в С и С++. это нерешамая
проблема. - klen(20.05.2024 15:32)
- Погоди махать шашкой. В плюсовой версии, локальные переменные треда
можно делать переменными экземпляра объекта. В чисто си-шной -
статическими переменными внутри функции или глобальными
переменными. Как по мне, в плане возможности выстрелить себе в
ногу, две очень большие разницы. - Cкpипaч(20.05.2024 15:53)
- В IAR'е Си не совсем чистый, а "подплюсованный". Функции можно
инлайнить. Везде, где можно, я стараюсь использовать локальные
переменные (компилятор их сует в регистры и после эффективно
жонглирует). Даже комментарии "//" - вроде как тоже из плюсов?
Первый, "ламповый", "чистый" Си времён K&R уже давно канул в
Лету. Нынешний диалект Си в IAR мне очень нравится - он берёт всё
нужное из C++, а ненужное не берёт )) - vpv.vpv(21.05.2024 11:17)
- 1) Инлайн не нужен. Просто не нужен. 2) Комментарии // - это C99. - SciFi(21.05.2024 11:19)
- В IAR'е Си не совсем чистый, а "подплюсованный". Функции можно
инлайнить. Везде, где можно, я стараюсь использовать локальные
переменные (компилятор их сует в регистры и после эффективно
жонглирует). Даже комментарии "//" - вроде как тоже из плюсов?
Первый, "ламповый", "чистый" Си времён K&R уже давно канул в
Лету. Нынешний диалект Си в IAR мне очень нравится - он берёт всё
нужное из C++, а ненужное не берёт )) - vpv.vpv(21.05.2024 11:17)
- Погоди махать шашкой. В плюсовой версии, локальные переменные треда
можно делать переменными экземпляра объекта. В чисто си-шной -
статическими переменными внутри функции или глобальными
переменными. Как по мне, в плане возможности выстрелить себе в
ногу, две очень большие разницы. - Cкpипaч(20.05.2024 15:53)
- да вот проблема в перестройки мозгов, а не в С и С++. это нерешамая
проблема. - klen(20.05.2024 15:32)
- Зато про прототреды есть :-) И я уже говрил как-то, что никак не
мог перестроить свои мозги Samx(129 знак., 19.05.2024 00:18)
- Ну нет почти задач с миганием ледов под корутины. Уметь это
неплохо. Но как правило не нужно. - POV(18.05.2024 23:59)
- Один, очень простой вопрос: Как в МК с Гарвардской архитектурой и
флешем реализуется "создание экземпляра класса" в рантайме? Ах
никак, у нас раннее связывание, на этапе компиляции? Тогда о каких
"плюсах" мы говорим? Где же тогда хвалёный полиморфизм? Или он
реализуется компилятором, по методу "предварительного
окостылевания", чтобы человек, глядя в исходники, мог высокопарно
мыслить объектами и классами, а процессор выполнять свой
процедурный код. :))) - vpv.vpv(20.05.2024 09:38)