22.12.2010, 13:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от PlainUser
|
Дрыгать ножкой более широкое понятие чем вывод в порт.Собственно задача была быстро запускать и читать 8бит ацп для сбора данных.
20MSPS.И затем порциями сливать по усб.
Разогнать конечно маленько пришлось, до 72Мгц.
|
Выше было - дрыгать ножкой. Впрочем дальнейшие разъяснения не добавили реализма. Чтение с порта + сохранение даже в развернутом цикле - 5 тактов для АРМ7. Увы, и на 72МГц с помощью ассемблера и такой то матери выше чем 72/5=14,4 мегасэмпла не получить. Физически. Эта тема обсосана на форумах от и до.
|
|
|
|
22.12.2010, 15:48
|
|
Временная регистрация
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от v2010
|
PS: интерсно, что никто не интересуется асмом, программирую только на нем и считаю - лучшим языком для профи есть Asembler, конечно, нужно знать и коверканные языки асма - типа СИ и пр. Не против СИ - но программирую на Pascal. Мое глубокое ИМХО
|
Помню давно на семинаре Башлыков строго не рекомендовал использовать асм при программировании армов: камень можно легко ввести в такое состояние, из которого он уже никогда не выйдет, и останется только выкинуть на помойку.
В принципе, любители программировать на асме есть и под винду, только не думаю, что это эффективно. Я, честно говоря, до вас еще не встречал любителей программировать на асме арм7, но мало ли, может это кому-то интересно.
|
|
|
Сказали "Спасибо" Snacker
|
|
|
22.12.2010, 16:04
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Snacker
|
...камень можно легко ввести в такое состояние, из которого он уже никогда не выйдет, и останется только выкинуть на помойку...
|
Можно поподробнее?
|
|
|
|
22.12.2010, 16:17
|
|
Прописка
Регистрация: 09.12.2003
Сообщений: 116
Сказал спасибо: 5
Сказали Спасибо 23 раз(а) в 19 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от kison
|
Выше было - дрыгать ножкой. Впрочем дальнейшие разъяснения не добавили реализма. Чтение с порта + сохранение даже в развернутом цикле - 5 тактов для АРМ7. Увы, и на 72МГц с помощью ассемблера и такой то матери выше чем 72/5=14,4 мегасэмпла не получить. Физически. Эта тема обсосана на форумах от и до.
|
А кто сказал что это было просто ?
Я же сказал "удалось решить эту задачу считающуюся нереальной".
Могу добавить , без применения каких либо дополнительных внешних компонентов.
И .... это частный случай , с бесконечным потоком данных не прокатит.
(про развернутый цикл это правильно) Да и усб его не сможет прокачать.
Ну уже все практически рассказал.
Это не шутка.Решение есть , просто мало кто его видит.
Много лет занимаюсь этим делом , кое какой опыт накоплен.Трюков разных тоже изобретено было немало.Правда в основном давно , когда прцессоры были слабоваты в коленках а стоили как паровоз.
Эх, где мой любимый Z80.
Сейчас скучно , все есть , контроллеры любые , куча апнотов.
Копипастиш тупо , чуть чуть подправишь и..... все практически без отладки работать начинает.
Так, иногда для собственного удовольствия прогнешся.Искусство стало ремеслом.
|
|
|
|
22.12.2010, 16:52
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от PlainUser
|
А кто сказал что это было просто ?
Я же сказал "удалось решить эту задачу считающуюся нереальной".
Могу добавить , без применения каких либо дополнительных внешних компонентов.
И .... это частный случай , с бесконечным потоком данных не прокатит.
(про развернутый цикл это правильно) Да и усб его не сможет прокачать.
Ну уже все практически рассказал.
Это не шутка.Решение есть , просто мало кто его видит.
|
У Вас очевидно ошибка в подсчетах. Если конечно под супер решением не подразумевается оцифровка в регистры. Но это уже явный детский сад. Практическое применение имеет хотя бы непрерывная выборка 256 значений. Больше - лучше. Оцифровывая в регистры не получится даже 60 выборок сохранить. В Вашем случае при частоте 72МГц получить 20 мегасэмплов больше чем для 15 выборок нереально в принципе. Тут вообще интересно получается - 3,6 такта на выборку. Чтение с порта 2 такта. Остается забавная цифра в 1,6 такта. Даже если не обращать внимания на слишком малое значение - для дискретизации на одну выборку должно обязательно приходиться целое значение тактов. Иначе вместо результатов оцифровки будет фигня. На 80МГц можно попробовать для 60 выборок при 20 мегасэмплах, теоретически это возможно. Ну или чуть меньше чем 60. Это правда очень мало, поэтому отбросим. На 100МГц развернув цикл - ограничение только доступной памятью. На 72МГц только 15 выборок, увы.
|
|
|
|
23.12.2010, 13:50
|
|
Временная регистрация
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от L_0_R
|
Можно поподробнее?
|
Ну, к примеру, у арм7 есть семь режимов работы процессора, которые кодируются пятью битами, т.е. 32 варианта, что гораздо больше семи. При желании, с помощью асемблера и такой-то матери можно попробовать ввести процессор в недокументированное состояние. Это один пример, но если внимательно почитать мануал, то можно и другие дырки найти. Сишный компилятор сконструирован так, что он в принципе таких вещей делать не будет.
|
|
|
Сказали "Спасибо" Snacker
|
|
|
23.12.2010, 14:26
|
|
Заблокирован
Регистрация: 26.12.2009
Сообщений: 3,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
![Валяюсь от смеха](images/smilies/icon_biggrin.gif)
Да ну хня полная!
Вы уже компилятору приписываете искусственный интеллект. ![Весело](images/smilies/icon_laugh.gif)
Отдельными битами можно манипулировать что не АСМе, что на СИ. Остаются только "тайные" последовательности, о которых только говорят, но в глаза их никто не видел.
|
|
|
|
23.12.2010, 15:54
|
|
Вид на жительство
Регистрация: 30.07.2009
Адрес: SPb, RU
Сообщений: 382
Сказал спасибо: 81
Сказали Спасибо 119 раз(а) в 92 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Я встречал только сообщения об "нечаянном" отключении JTAG, но, насколько мне известно, не так сложно его включить снова...
|
|
|
|
24.12.2010, 16:04
|
|
Временная регистрация
Регистрация: 16.05.2007
Сообщений: 59
Сказал спасибо: 1
Сказали Спасибо 10 раз(а) в 9 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от st_1
|
![Валяюсь от смеха](images/smilies/icon_biggrin.gif)
Да ну хня полная!
Вы уже компилятору приписываете искусственный интеллект.![Весело](images/smilies/icon_laugh.gif)
Отдельными битами можно манипулировать что не АСМе, что на СИ. Остаются только "тайные" последовательности, о которых только говорят, но в глаза их никто не видел.
|
Я передаю слова А.Башлыкова, который на семинаре представлял NXP. Он еще какой-то пример приводил, только я уже не помню, дело было в 2007 году.
Что касается компилятора, то ни о каком искусственном интеллекте речи не шло, просто компилятор - это программа, которую написали не для того, чтобы она портила микросхему. Да и зачем вам в сишном коде менять состояние в регистре CPSR? А вот в ассемблере это вполне актуальная задача. Вот пример из мануала (стр.670):
Код:
|
; /************************************************** *******************
; * Set up the stack pointers for various processor modes. Stack grows
; * downwards.
; ************************************************** *******************/
LDR r2, =ram_end ;Get top of RAM
MRS r0, CPSR ;Save current processor mode
; Initialize the Undef mode stack for RealMonitor use
BIC r1, r0, #0x1f
ORR r1, r1, #0x1b
MSR CPSR_c, r1 |
|
|
|
|
24.12.2010, 16:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Здравствуй, ARM. Запуск "на коленке"
Сообщение от Snacker
|
Я передаю слова А.Башлыкова, который на семинаре представлял NXP. Он еще какой-то пример приводил, только я уже не помню, дело было в 2007 году.
|
Не секрет то, что такими представлениями занимаются бренд-менеджеры от фирм дистрибьюторов. Сами они ничего не пишут и реальных проектов не ведут. Не стоит всерьез воспринимать такие вот заявления. Ведь кто воевать умеет - тот воюет, кто не умеет - учит воевать...
Сообщение от Snacker
|
Что касается компилятора, то ни о каком искусственном интеллекте речи не шло, просто компилятор - это программа, которую написали не для того, чтобы она портила микросхему. Да и зачем вам в сишном коде менять состояние в регистре CPSR? А вот в ассемблере это вполне актуальная задача. Вот пример из мануала (стр.670):
|
Ваш пример - часть сишного стартапа. Который есть в ЛЮБОМ сишном проекте под АРМ7. Вот кортексы уже обходятся стартапом на си, потому как стек там настраивается автоматически. Процессор на выброс можно сделать как на си, так и на асме - достаточно в программе запретить JTAG и загрузчик - CRP3. Ну и забыть сделать свой загрузчик или вызов из кода стандартного. И превед медвед - можно купить новый кристалл. Это про филипсовые только, у других бывает нога стирания, как в at91sam7.
Так что неважно асм или си. А чисто программно ничего не испортить, всегда можно стереть все и записать правильную программу.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:38.
|
|