zheka 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Как выясняется - даже не зная, как они устроены. Дык известный принцип - "Пастернака не читал, но осуждаю". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vallav 0 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Вы в курсе, что в ARM7 (и в AT91SAM7 в частности) нет пространства ввода-вывода? И GPIO отображается на память? В ARM7 есть команды записи в память значения регистра. И чем же тогда кортекс лучше? Если вы этого не знаете, то как можете делать вывод что кортекс лучше? Это про LPC и SAM7, которые вы обвиняете в кривизне. Как выясняется - даже не зная, как они устроены. Вы о чем? Был пост, в котором интересовались, как одной командой записать значение в порт. И куча ответов с паравозами вместо одной команды. Они не знали, как этот чип устроен? Я подумал, что в этом контроллере почему то нет команды записи в порт. Ну не мог же я подумать, что отвечающий не знает, на что отвечает... Вот и предложил - перейти на кортекс, где такая команда и даже команды побайтовой и побитовой записи есть. Где Вы углядели, что я заявил - кортекс лучше всех? Кортекс как контроллер - полный отстой по сравнению с ADI_шным ADSP21xx. Им бы переферию туда добавит и разрядность до 32 поднять - цены бы этой игрушке не было... Она без конвеера и на старинной технологии выдавала 80 МГц при всех командах - строго однотактовых. А в кортексе - однотактность команд - это чисто враки. А уж быстрые прерывания - через 20 тактов после запроса, или быстрое ПДП - по 5 тактов на пересылку... Но что есть, то есть - GPIO у него на высоте. Добавить бы сигналы синхронизации и однотактное ПДП в память с кольцевым буфером да все биты порта вывести на пины... Дык известный принцип - "Пастернака не читал, но осуждаю". Это Вы про тех, кто выдал паровозы в ответ на вопрос, как записать значение в порт. Не зная, что там это делается одной командой? Или про меня? Так как я выдал следующее: "А разве вSAM7 нет вывода в регистр? Тогда переходите на кортекс Там есть все три" Вот и Вы, похоже, нервничаете :) У ядра Cortex, которое Вы упомянули, есть только адресное пространство для периферийных устройств 0x40000000-0x5FFFFFFF. Какие там будут устройства, зависит от производителя конкретного микропроцессора. Когда Вы сказали "переходите на Cortex", подразумевая там некие регистры портов, это вызвало справедливое замечание zltigo. Надеюсь, я объяснил правильно? А bit-band я просто так упомянул, высказал свое мнение. Он что то отмалчивается. Может Вы ответите - есть кортекс, у которого нет команды вывода регистра в порт? Или он разразился этим исходя из чисто теоретической возможности, что такой кортекс сделать можно? В этом случае замечание ну очень справедливое... И даже не замечание а целый разнос. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Может Вы ответите - есть кортекс, у которого нет команды вывода регистра в порт? Отвечу (еще раз) - у Cortex вообще нет портов! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 132 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Был пост, в котором интересовались, как одной командой записать значение в порт. И куча ответов с паравозами вместо одной команды. Они не знали, как этот чип устроен? Был вопос - как записать 2 байта в порт не трогая остальные 16. Ваш вариант из одной команды, пусть даже для кортекса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vallav 0 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Был вопос - как записать 2 байта в порт не трогая остальные 16. Ваш вариант из одной команды, пусть даже для кортекса? Это был второй вопрос. Первый - как в порт записать 0x0000ffff а затем 0xaaaa5555. И именно посмотрев ответы на этот вопрос я предложил перейти на кортекс. А п овторому вопросу - полагаете, то, как это делается в кортексе, корявее чем приведенные для исходного чипа? Отвечу (еще раз) - у Cortex вообще нет портов! Ага. У него всего навсего 6 букв из латинского алфавита. И что? А вот если Вы про то, что под этим названием - то возможны разные варианты... Уточню для любителей строгости - есть ли микропроцессоры с ядром Cortex M3, у которых не реализована команда вывода из регистра в порт? Если это не совсем строго, Вы не стесняйтесь, поправляйте. Я не гордый, переспрошу... Мне же интересно, на меня просто так наехали ( мимоходом ) или за этим хоть что то есть... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Vallav, я конечно еще лох, но попробую тявкнуть - те три варианта, которые вы написали для Кортекса, в АРМ пишутся как SODR, CODR и ODSR. Про ODSR вы не знали, вот и предложили Кортекс, решив что там этот третий вариант есть. Господа, давайте не будетм засорять тему спорами об архитектуре камней. Я пришел с работы, сел за плату, сейчас ведь вновь засыплю вас глупыми вопросами))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Подскажите, как грамотно организовать задержку на милли и микросекунды. "Тяжелое наследие CodeVision" навевает что-то вроде #include <delay.h> delay_ms(x) delay_us(x) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Подскажите, как грамотно организовать задержку на милли и микросекунды.С помощью таймера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба А можно я еще чуть-чуть про Cortex-M3? Вернее, про STMicroelectronics. Для STM32F103 написал следующий код while (1) { GPIOB->BSRR = 0x0002; GPIOB->BRR = 0x0002; } Скомпилировалось в 0x08000226 F8C01C10 STR r1,[r0,#0xC10] 0x0800022A F8C01C14 STR r1,[r0,#0xC14] 0x0800022E E7FA B 0x08000226 Весь цикл выполняется за 7 тактов - 2 + 2 + 3. Итого, на частоте 72MHz имеем "дрыгание ножкой" с частотой чуть больше 10MHz. А вам с вашим SAM... слабо? Я, извините, SAM... "не читал" :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Он что то отмалчивается. Я даже полным дятлам третий раз повторять не буду. А пытаться замазать потоками флейма свое ламерство ( причем уже не в первый раз ), это уже, как администратор, настоятельно не советую - флейм наказуем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба С помощью таймера можно было и в АВР. А можно было и библиотечной функцией Неужели нет каких-нибудь библиотек? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба Неужели нет каких-нибудь библиотек? А какая, простите Вам "библиотека" нужна, дабы организовать тупой цикл? void delay3t( unsigned long value ) { __asm( " subs r0, #1\n" " bne.n delay3t\n" " bx lr" ); } Мегагерцы по три такта в задержку сможете сказать препроцессору пересчитать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zheka 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба ЧТо помешает? Например вот это: Blinky.c(32): error: #1094: Expected a register expression Blinky.c(33): error: #1083: Inline assembler syntax error Blinky.c(34): error: #1083: Inline assembler syntax error Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 14 мая, 2010 Опубликовано 14 мая, 2010 · Жалоба ЧТо помешает? Например вот это: А чем компилим-то? А.... еще у меня крыша на Cortrex последние дни заклинила для ARM надо subs r0, r0, #1 и bne Ну и задержки будут достаточно отфонарные, ибо waistates на Flash, ну и уcкорители с кэшами тоже встречаются даже на младшеньких ARM7 А вообще такие вещи надо куда-ибудь в ассеблерный фальчик, например, в startup запихивать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vallav 0 15 мая, 2010 Опубликовано 15 мая, 2010 · Жалоба Vallav, я конечно еще лох, но попробую тявкнуть - те три варианта, которые вы написали для Кортекса, в АРМ пишутся как SODR, CODR и ODSR. Про ODSR вы не знали, вот и предложили Кортекс, решив что там этот третий вариант есть. Господа, давайте не будетм засорять тему спорами об архитектуре камней. Я пришел с работы, сел за плату, сейчас ведь вновь засыплю вас глупыми вопросами))) Так вопрос решен? И в SAM7 есть вывод значения регистра в порт? Просто те, кто на этот вопрос отвечал, этого не знали... Так что было бодягу разводить - сразу запостили бы это. Или поговорить захотелось? Я даже полным дятлам третий раз повторять не буду. А пытаться замазать потоками флейма свое ламерство ( причем уже не в первый раз ), это уже, как администратор, настоятельно не советую - флейм наказуем. Тык Вы просто на вопрос ответьте, буквально коротко - В таком то чипе с ядром кортекса от такой то фирмы нет вывода значения регистра в порт. И флейм сразу прекратится... Или не знаете такого чипа и решили включить административный ресурс? А дятлом быть не хочется... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться