|
Хочу попробовать ARM, подскажите, что для этого нужно?, Какой проц выбрать, отлад. платку и какой софт? |
|
|
|
 |
Ответов
(150 - 164)
|
Jan 29 2007, 16:50
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Alex_inventor @ Jan 29 2007, 14:28)  И что тут неверного? Сказали что переменная может изменятся, и компилятор не должен проводить лишних телодвижений при оптимизации? Примерно так. В конкретно этом случае - если ему сказали что переменная volatile и ее надо сто раз увелисчить на 1, то он обязан именно 100 раз ее увеличить а не один раз прибавить 100. Хотя с точки зрения математики оба действия эквивалентны. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Цитата Это значит что ваша программа была написана с ошибками. Вы не понимаете сути, поставленного вопроса, или не хотите понимать. Как программа может быть написано неправильно, если я заранее сказал, что задача написана ПРАВИЛЬНО! Я уже написал выше - если задача написана правильно, она работает при любом уровне оптимизации. Если в зависимости от уровня оптимизации она или работает или нет - значит она написана неправильно. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Давайте скажем, что программа – работает (можно добавить ещё - по алгоритму). Т.е независимо от того, как программа выглядит на С, после компиляции программа выдаёт все заложенные в неё характеристики, это и время и размер и алгоритмы. Это совсем не значит, что она не содержит ошибок. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Вопрос состоит в том, каких фокусов можно ожидать от компилятора при оптимизации и как с ними бороться. В правильно написанной программе - никаких. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Одного при оптимизациях O-0…O-2 ничего не выкидывается, а при O-3 time уже всё? Код int a; int b; a = 1; b = 2; a = a+b; b = b+a; if (a > 5) { кусок кода } При O-0 компилятор сгенерирует вам нужные команды для каждого из выражений. Чтобы вы могли пройти по шагам по каждому из этих выражений в дебаггере. А при более высоком он сам сосчитает, что в if() a = 5 и это условие не будет истинным, значит {кусок кода} никогда не будет выполнен и его можно смело выбросить. Теперь понятно? Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Там правильно, а здесь уже неправильно? Ошибки бывают двух видов. Синтаксические, и алгоритмические. Первые решаются на этапе компиляции, вторые на этапе отладки. Пройти этот путь и всё. Чего вам не хватает? Ваша ошибка относится к алгоритмической. Только вы не учитываете, что уровень оптимизации является так же входным данным для вашего алгоритма как и содержимое переменных. И проверка показывает, что на некоторых наборах входных данных (O-3) ваш алгоритм не работает. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Цитата И такой отказ может произойти, даже если вы добавите одну лишнюю инструкцию в программу Извиняюсь за дерзость, но это, мягко говоря, неправдо! Разница в том, что я для своих утверждений имею достаочно оснований - сам по неопытности попадал в такие ситуации. И их могут подтвердить многие опытные участники конференции. А ваше утверждение голословно. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Я НЕ ЗАЩИЩАЮ МОИ ТВОРЕНИЯ!!! Я ХОЧУ СКАЗАТЬ ЧТО НЕ СТАВТИ ВАШИ ТВОРЕНИЯ ВЫШЕ ВСЕХ ОСТАЛЬНЫХ ТОЛЬКО ПОТОМУ ЧТО ОНИ ВАШИ! Выкладывайте ваши решения и не поливайте помоями другие, допускается указание на более лучшее решения по вашему мнению. А что лучше решит каждый для себя САМ!!! Замечательно. Вам указали лучшее решение, вам показали где у вас ошибка и даже несколько раз разжевали почему это именно ошибка. В ответ получаем Цитата Я абсолютно уверен в своих программах Ну продолжайте верить. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Мне лично больше нравится, и следовательно быстрее работаю, с bin. А ваши (x<<1) ненравятся. Кто же кроме меня покажет и другой стиль если я один такой, а вы все "правильно" пишете в одном стиле. В этом примере упор был на то, что вместо безликих нулей и единиц используются символьные имена битов. Что сильно упрощает и чтение и модификацию программы. Цитата(Alex_inventor @ Jan 29 2007, 14:28)  Если data sheet вас отвлекает, ну тогда я незнаю... прочитайте еще раз тот абзац внимательно. P.S. и постарайтесь просматривать свои сообщения на предмет орфографических ошибок - глаза режет.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 29 2007, 17:11
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(sonycman @ Jan 29 2007, 13:44)  Цитата(Сергей Борщ @ Jan 29 2007, 12:54)  UART->IER = (1 << UART_RDAIE) | (0 << UART_THREIE);
Согласен. Такие выражения можно сделать компактнее, если пропустить подобное: 0 << UART_PS, особенно для неиспользуемых фич. выкинуть всегда можно. Но если вдруг понадобится чуток подправить функциональность, то 0 на 1 заменить проще, чем дописывать.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 29 2007, 17:20
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 25-01-07
Пользователь №: 24 744

|
2Andy Great Да что вы прицепились, с этим GNU? Не работаю я с ним, и работать НЕ СОБИРАЮСЬ! И проблемы, возникшие с ним, решать не собирался. Просто подчеркнул что есть. Если даёте ответы, то уточняйте: я так понял что компилятор и проекты должны быть без пробелов. Цитата Такие как Вы, не разобравшись в предмете, портят потом впечатления другим, которые бы потом проскочили эти грабли незаметно. Ни чего я не порчу, я поднял вопрос, который был решён. И если не поднял бы, то кто этих нюансов не знал, просто так не проскочили. Когда в начале топика задавались вопросы типа как с UART работать, все молчали.  Были лишь изредкие фразы типа “вы отлично варитесь в собственном саку, ну и варитесь там!”. Чтож… Я не спорю, даже скажу согласен с этим. Но когда “поварившись” результатом чего явился РАБОТОСПОСОБНЫЙ проект и был выложен, что бы им пользовались такие как, я был неделю назад (если мне дали тогда этот проект, то я бы поблагодарил). Целью проекта было постепенное наращивание, освоение новой периферии (выкладывание промежуточных результатов) и КОНСТРУКТИВНОЕ обсуждение отдельных алгоритмов, не поливая помоями чужие варианты! Если бы кто, например, сказал, вот тут (x=1; x<100;x++) пауза будет не точной, потому что используется такая инструкция проца (которая в режиме таком то выполняется за два такта), другой бы сказал что он применил другую конструкция, которая меньше места занимает, а третий бы предложил более большую конструкцию, но с более богатыми возможностями. Но нет!!! Как этот “презренный” посмел обратиться к нам, небожителям! И надругаться над нашими священными постулатами. Он даже ПОСМЕЛ!  , стыдно сказать, bin использовать! Так умри же за это! Когда надо было, так нет никого, а сейчас налетели как коршуны, и каждый пытается клюнуть побольнее.  При чём вместо самообучение, я получил публичную порку, и вместо предложений и обсуждений по коду я должен оправдываться за каждое сказанное слово. Оправдаться то я могу, но надоело уже  . Всё больше вы меня не услышите! Если кого обидел, не держите зла, если кому помог, то и помогите вы в будущем, таким как я. Пока. И он гордо удалился, громко хлопнув за собой дверью, и лишь шаги постепенно стихали где то там в дали пока полностью не стихли, и тишина медленно заполнила собой опустевшее пространство… Просьба к АДМИНИСТРАТОРУ. Удалите пожалуйта мой проект, а то сам этого я что то сделать не могу. Не хочу что бы люди "розачаровывались".
|
|
|
|
|
Jan 29 2007, 17:31
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
2Alex_inventor Почему ты так болезненно воспринимаешь критику? Цитата При чём вместо самообучение, я получил публичную порку, и вместо предложений и обсуждений по коду я должен оправдываться за каждое сказанное слово. Какая "порка"? Ну указали, что тут и там неправильно. Наверное, это так и есть? На самом деле ты ведь получил именно обсуждение и последовавшие предложения по твоему коду. Но, почему-то, воспринимаешь это как порку  Явное нежелание прислушиваться к советам других людей...
Сообщение отредактировал sonycman - Jan 29 2007, 17:34
|
|
|
|
|
Jan 29 2007, 17:57
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 25-01-07
Пользователь №: 24 744

|
Обещал не отвечать, но тебе отвечу (похоже единственному, кто себя не считает небожителем): Ты писал что, мне указали на явные ошибки программы. Какие ошибки? Что программа работает неверно? Я люблю использовать bin, НИКОГО НЕ ЗАСТАВЛЯЮ ДЕЛАТЬ ТОЖЕ САМОЕ, но когда “небожители” слышат что я это делаю, они ни все хором тычут меня в книги, как нашкодившую собаку. Обсуждение оптимизации напоминает: “Я тебе про Ерему, ты мне про Фому.” Что в результате? Я не намного больше узнал про UART чем, до обсуждение темы. Хочу отметить, что есть и продуктивные участки форума, например обсуждение про volatile. А так вода…
|
|
|
|
|
Jan 29 2007, 18:09
|
Участник

Группа: Новичок
Сообщений: 54
Регистрация: 25-01-07
Пользователь №: 24 744

|
zltigo Ox!Ox!Ox! Напугали! Коленки трясутся! Нахождение проекта на форуме вопрос скорее риторический, чем практический! Я могу ещё выложить. Выкладывать? Что, пиписьками мерится будем? Неверите тому, что я пишу? Что сотня проектов на МК для вас запредельное число? Ужазз…
|
|
|
|
|
Jan 29 2007, 18:21
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
2Alex_inventor Понятно, если привык к чему-то - менять не хочется. Всё-же, думаю, надо стремиться к лучшему. Например, выражение 00001110 мало о чём говорит. А если это будет 1<<BIT1 | 1<<BIT2 | 1<<BIT3 то уже понятно, какие именно биты задействованы. Не надо каждый раз лезть в мануал, чтобы понять, что к чему. void puts( uint8 *str ) { do{ OUTCH( *str ) }while( *str++ != '\0' ); } будет выводить и нуль. Форум приносит пользу, это однозначно. Зря ты решил его покинуть
Сообщение отредактировал sonycman - Jan 29 2007, 18:22
|
|
|
|
|
Jan 29 2007, 19:41
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Alex_inventor @ Jan 29 2007, 17:09)  Неверите тому, что я пишу? Нет. Цитата(SpiritDance @ Jan 29 2007, 17:23)  Цитата(Alex_inventor @ Jan 29 2007, 18:09)  Что сотня проектов на МК для вас запредельное число? Ужазз…  Да что-то элементарно не стыкуется подобный опыт проектов, со школьным кодом, правописанием и подростковым апломбом.  А "красный диплом института", судя по грамотности, больше смахивает на "волчий билет из школы"
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 29 2007, 20:23
|
Знающий
   
Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057

|
Цитата Значит, это только GCC не любит пробелы? Нет, не только он. Многие программы этого не любят, да и нелатинских символов в путях тоже. Учитывая, что некоторые из них размещают данные в "Моих документах", а их авторы не ведают о локализованных версиях Винды, случаются порой забавные, а порой и не очень приключения.  2ALL: Не напоминает ли вам один из участников реинкарнацию незабвенного раз-два-три?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|