|
|
  |
Сбылась мечта идиота - приехали программатор и SAM7S256, Теперь нужен ликбез. |
|
|
|
May 14 2010, 13:35
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(Сергей Борщ @ May 14 2010, 16:46)  Вы в курсе, что в ARM7 (и в AT91SAM7 в частности) нет пространства ввода-вывода? И GPIO отображается на память? В ARM7 есть команды записи в память значения регистра.
И чем же тогда кортекс лучше?
Если вы этого не знаете, то как можете делать вывод что кортекс лучше?
Это про LPC и SAM7, которые вы обвиняете в кривизне. Как выясняется - даже не зная, как они устроены. Вы о чем? Был пост, в котором интересовались, как одной командой записать значение в порт. И куча ответов с паравозами вместо одной команды. Они не знали, как этот чип устроен? Я подумал, что в этом контроллере почему то нет команды записи в порт. Ну не мог же я подумать, что отвечающий не знает, на что отвечает... Вот и предложил - перейти на кортекс, где такая команда и даже команды побайтовой и побитовой записи есть. Где Вы углядели, что я заявил - кортекс лучше всех? Кортекс как контроллер - полный отстой по сравнению с ADI_шным ADSP21xx. Им бы переферию туда добавит и разрядность до 32 поднять - цены бы этой игрушке не было... Она без конвеера и на старинной технологии выдавала 80 МГц при всех командах - строго однотактовых. А в кортексе - однотактность команд - это чисто враки. А уж быстрые прерывания - через 20 тактов после запроса, или быстрое ПДП - по 5 тактов на пересылку... Но что есть, то есть - GPIO у него на высоте. Добавить бы сигналы синхронизации и однотактное ПДП в память с кольцевым буфером да все биты порта вывести на пины... Цитата(zheka @ May 14 2010, 17:05)  Дык известный принцип - "Пастернака не читал, но осуждаю". Это Вы про тех, кто выдал паровозы в ответ на вопрос, как записать значение в порт. Не зная, что там это делается одной командой? Или про меня? Так как я выдал следующее: "А разве вSAM7 нет вывода в регистр? Тогда переходите на кортекс Там есть все три" Цитата(ViKo @ May 14 2010, 15:36)  Вот и Вы, похоже, нервничаете  У ядра Cortex, которое Вы упомянули, есть только адресное пространство для периферийных устройств 0x40000000-0x5FFFFFFF. Какие там будут устройства, зависит от производителя конкретного микропроцессора. Когда Вы сказали "переходите на Cortex", подразумевая там некие регистры портов, это вызвало справедливое замечание zltigo. Надеюсь, я объяснил правильно? А bit-band я просто так упомянул, высказал свое мнение. Он что то отмалчивается. Может Вы ответите - есть кортекс, у которого нет команды вывода регистра в порт? Или он разразился этим исходя из чисто теоретической возможности, что такой кортекс сделать можно? В этом случае замечание ну очень справедливое... И даже не замечание а целый разнос.
|
|
|
|
|
May 14 2010, 14:21
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(Сергей Борщ @ May 14 2010, 18:04)  Был вопос - как записать 2 байта в порт не трогая остальные 16. Ваш вариант из одной команды, пусть даже для кортекса? Это был второй вопрос. Первый - как в порт записать 0x0000ffff а затем 0xaaaa5555. И именно посмотрев ответы на этот вопрос я предложил перейти на кортекс. А п овторому вопросу - полагаете, то, как это делается в кортексе, корявее чем приведенные для исходного чипа? Цитата(ViKo @ May 14 2010, 17:50)  Отвечу (еще раз) - у Cortex вообще нет портов! Ага. У него всего навсего 6 букв из латинского алфавита. И что? А вот если Вы про то, что под этим названием - то возможны разные варианты... Уточню для любителей строгости - есть ли микропроцессоры с ядром Cortex M3, у которых не реализована команда вывода из регистра в порт? Если это не совсем строго, Вы не стесняйтесь, поправляйте. Я не гордый, переспрошу... Мне же интересно, на меня просто так наехали ( мимоходом ) или за этим хоть что то есть...
|
|
|
|
|
May 14 2010, 14:24
|
Гуру
     
Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164

|
Vallav, я конечно еще лох, но попробую тявкнуть - те три варианта, которые вы написали для Кортекса, в АРМ пишутся как SODR, CODR и ODSR. Про ODSR вы не знали, вот и предложили Кортекс, решив что там этот третий вариант есть. Господа, давайте не будетм засорять тему спорами об архитектуре камней. Я пришел с работы, сел за плату, сейчас ведь вновь засыплю вас глупыми вопросами)))
|
|
|
|
|
May 14 2010, 18:03
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
А можно я еще чуть-чуть про 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... "не читал"
|
|
|
|
|
May 14 2010, 18:47
|

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

|
Цитата(zheka @ May 14 2010, 21:29)  Неужели нет каких-нибудь библиотек? А какая, простите Вам "библиотека" нужна, дабы организовать тупой цикл? Код void delay3t( unsigned long value ) { __asm( " subs r0, #1\n" " bne.n delay3t\n" " bx lr" ); } Мегагерцы по три такта в задержку сможете сказать препроцессору пересчитать?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 14 2010, 19:27
|

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

|
Цитата(zheka @ May 14 2010, 22:13)  ЧТо помешает? Например вот это: А чем компилим-то? А.... еще у меня крыша на Cortrex последние дни заклинила для ARM надо subs r0, r0, #1 и bne Ну и задержки будут достаточно отфонарные, ибо waistates на Flash, ну и уcкорители с кэшами тоже встречаются даже на младшеньких ARM7 А вообще такие вещи надо куда-ибудь в ассеблерный фальчик, например, в startup запихивать.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 15 2010, 07:37
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977

|
Цитата(zheka @ May 14 2010, 18:24)  Vallav, я конечно еще лох, но попробую тявкнуть - те три варианта, которые вы написали для Кортекса, в АРМ пишутся как SODR, CODR и ODSR. Про ODSR вы не знали, вот и предложили Кортекс, решив что там этот третий вариант есть. Господа, давайте не будетм засорять тему спорами об архитектуре камней. Я пришел с работы, сел за плату, сейчас ведь вновь засыплю вас глупыми вопросами))) Так вопрос решен? И в SAM7 есть вывод значения регистра в порт? Просто те, кто на этот вопрос отвечал, этого не знали... Так что было бодягу разводить - сразу запостили бы это. Или поговорить захотелось? Цитата(zltigo @ May 14 2010, 22:15)  Я даже полным дятлам третий раз повторять не буду. А пытаться замазать потоками флейма свое ламерство ( причем уже не в первый раз ), это уже, как администратор, настоятельно не советую - флейм наказуем. Тык Вы просто на вопрос ответьте, буквально коротко - В таком то чипе с ядром кортекса от такой то фирмы нет вывода значения регистра в порт. И флейм сразу прекратится... Или не знаете такого чипа и решили включить административный ресурс? А дятлом быть не хочется...
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|