реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> Гарвардская и фон неймовская, разница на практике?
Ruslan1
сообщение Nov 6 2011, 09:36
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(V_G @ Nov 6 2011, 08:51) *
Вообще-то я к гуру себя не причисляю, а реплика была всего лишь к тому, что все надо изучать постепенно. Если вывалить на голову начинающего сразу все нюансы-тонкости, то легко запутаться. Тут уже 2 страницы споров гуру между собой по нюансам, а всего-то нужен был коротенький ответ.
Ну, и изучать эти нюансы-тонкости все-таки лучше на практике, а не по ответам на форуме. Тогда и скрыть что-то сложно будет.

1. Разницы для си-программиста нет никакой.
2. Есть нюансы при использовании кривых компиляторов, 777777 любезно упомянул об одном из них применительно к гарварду. Уверен, можно найти также кривой компилятор и для фон-неймана. Под "кривым" подразумевается компилятор, оставляющий программисту самому организовывать доступ к разным типам данных, расположенным в разной памяти. Хороший компилятор делает это сам, при его использовании программист не должен заниматься архитектурозависимыми вопросами вообще. Собственно в этом и смысл хорошего компилятора- взять на себя рутинную работу.
3. Мне неизвестны нюансы архитектуры, о которых должен знать си-программист. Если речь идет о том чтобы выжать максимальную эффективность, то программисту нужно знать не нюансы архитектуры, а нюансы конкретного компилятора и конкретного микроконтроллера вплоть до последней ревизии ерраты. Подчеркну, к архитектуре это не имеет никакого отношения.

Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 6 2011, 20:05
Сообщение #32


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(V_G @ Nov 6 2011, 04:06) *
И уж в любом случае архитектура для C-программиста играет куда меньшую роль, чем для asm-программиста.


Нас выручают макросы.


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 7 2011, 05:35
Сообщение #33


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Ruslan1 @ Nov 6 2011, 13:36) *
1. Разницы для си-программиста нет никакой.

Смелое заявление!

Цитата(Ruslan1 @ Nov 6 2011, 13:36) *
2. Есть нюансы при использовании кривых компиляторов, 777777 любезно упомянул об одном из них применительно к гарварду. Уверен, можно найти также кривой компилятор и для фон-неймана. Под "кривым" подразумевается компилятор, оставляющий программисту самому организовывать доступ к разным типам данных, расположенным в разной памяти. Хороший компилятор делает это сам, при его использовании программист не должен заниматься архитектурозависимыми вопросами вообще. Собственно в этом и смысл хорошего компилятора- взять на себя рутинную работу.

Фигасе заявочки! Да если компилятор решает за программиста где разместить те или иные данные, то его надо выкидывать нахрен! Даже const массивы нельзя располагать во флэш без ведома программиста - мало ли как мне захочется их проинициализировать, может это будет делать бутлоадер загружая их при включении по USART. А про const-указатели я уже писал. Забота компилятора лишь в том, чтобы следить за тем, чтобы программист не написал код, пишущий в эту область.

Цитата(Ruslan1 @ Nov 6 2011, 13:36) *
3. Мне неизвестны нюансы архитектуры, о которых должен знать си-программист. Если речь идет о том чтобы выжать максимальную эффективность, то программисту нужно знать не нюансы архитектуры, а нюансы конкретного компилятора и конкретного микроконтроллера вплоть до последней ревизии ерраты. Подчеркну, к архитектуре это не имеет никакого отношения.

Еще более смелое заявление. Странно видеть программиста, исследующего отличия в ревизиях конкретного микроконтроллера, но полностью игнорирующего его архитектуру.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Nov 7 2011, 06:32
Сообщение #34


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(777777 @ Nov 7 2011, 09:35) *
Фигасе заявочки! Да если компилятор решает за программиста где разместить те или иные данные, то его надо выкидывать нахрен! Даже const массивы нельзя располагать во флэш без ведома программиста - мало ли как мне захочется их проинициализировать, может это будет делать бутлоадер загружая их при включении по USART. А про const-указатели я уже писал. Забота компилятора лишь в том, чтобы следить за тем, чтобы программист не написал код, пишущий в эту область.

А вот для того, чтобы программист мог реализовать все свои хотелки, и существуют нестандартные (и компиляторозависимые) расширения языка.
Но, повторю уже неоднократно прозвучавшую мысль, к архитектуре МК это не имеет ни малейшего отношения


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
777777
сообщение Nov 7 2011, 07:41
Сообщение #35


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(Harvester @ Nov 7 2011, 10:32) *
А вот для того, чтобы программист мог реализовать все свои хотелки, и существуют нестандартные (и компиляторозависимые) расширения языка.
Но, повторю уже неоднократно прозвучавшую мысль, к архитектуре МК это не имеет ни малейшего отношения


Нестандартное компиляторозависимое расширение кейла для размещения данных в памяти DATA, IDATA и т.д., а также нестандартное расширение gcc PROGMEM для размещения данных в памяти программ - не имеют, оказывается, отношения к архитектурам этих МК!

Всё, это конец, пора эту дискуссию завязывать.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Nov 7 2011, 11:57
Сообщение #36


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(777777 @ Nov 7 2011, 11:41) *
Всё, это конец, пора эту дискуссию завязывать.

Давно пора...
Попытаюсь обобщить все мнения, высказанные выше.
Программисту, пишущиму на любом языке программирования, необходимо знание архитектуры ЭВМ/МК, на котором будет работать программа. Причем это касается не только того гарвардская или неймоновская/принстонская архитектура. Нужно знание и системы команд, и разрядности шин, и системы прерываний (кстати, в стандарте языка Си - нет соответствующий средств для работы с ними), и устройств ввода-вывода...
Для МК, зачастую, характерна нехватка ресурсов (в первую очередь - ОЗУ, вероятно это - результат "большого" объема ОЗУ в ПЭВМ). При проектировании программы ресурсы нужно распределить. При написании программы компилятору, обычно, нужно указать это распределение. Делается это - нестандартными расширениями языка Си (коль вопрос изначально был о Си).
В остальном - "Си - он и в Африке...". Большенство компиляторов для МК поддерживают стандарт ISO9899 языка Си.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016