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

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> 3xSPI в небольшом корпусе, В TQFP64 или меньше?
aaarrr
сообщение Dec 16 2008, 19:40
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(koyodza @ Dec 16 2008, 21:22) *
Потому, что не так много фанатов пишут сейчас на асме, тем более на ARM, у которого асм - извращение редкостное.

07.gif Что тогда не извращение? У ARM'а замечательно простой и понятный ассемблер.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 16 2008, 20:19
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(aaarrr @ Dec 16 2008, 21:40) *
07.gif Что тогда не извращение? У ARM'а замечательно простой и понятный ассемблер.

Я раньше тоже "воинствующим ассемблеристом" был, ещё на 8080 и Z80, потом на 86. Но жисть расставила всё на свои места: достаточно крупный проект непросто сделать на ассемблере, а поддерживать тем более. Про использование чужого кода я вообще молчу. Не так давно дали мне проект на 51 немного "доработать", более 12000 строк. Написано, прямо скажу, ужасно. Да и необходимости писать на ассемблере в данном случае вообще не было. Короче, разобрался с функционалом, прошелся два раза по листингу и переписал на С, получил не более 5000 строк, дополнительные функции, и примерно тот же объём двоичного кода.
ЗАЧЕМ уродоваться на асме для ARM - не понимаю абсолютно. Экономить пару десятков нсек? Так всё равно один раз ножкой дёрнуть - и вся экономия коту под хвост, и улетели сотни Ваших сэкономленных наносекунд. Код ужимать? Что, не влазим в 128/256/512кБ кода? Это же ARM, это не 8051 с его 128 байт ОЗУ и 4кБ кода, там в этом конечно же был смысл.

Я ни в коем случае не призываю к отказу от оптимизации. Я сам ненавижу монстров, которых порождает современное программирование, с его гигабайтами кода и гигагерцами. Я только сторонник "срединного пути"
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2008, 20:29
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Все верно, но где Вы узрели призыв писать все на асме?

ИМХО, ассемблер ARM'а никак нельзя отнести к извратным, а програмист обязан знать архитектуру системы на которой работает, в том числе и ассемблер.

P.S. Я не "воинствующий ассемблерист".
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 16 2008, 20:38
Сообщение #34


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(aaarrr @ Dec 16 2008, 22:29) *
Все верно, но где Вы узрели призыв писать все на асме?

Ну, мне как-то по-барабану, сколько регистров автоматически сохраняется при входе в прерывание. Меня интересует сколько ВРЕМЕНИ занимает вход/выход, а сохраняется там 4 регистра и ещё от 0 до 8 сохраняется программно, или сразу 8 регистров попадает в стек - меня волнует мало (только с позиции расходования ресурсов), потому как я не пишу:
PUSH AX
PUSH BX
...
а пишу:
void SysTick_Handler(void)
...

Цитата(aaarrr @ Dec 16 2008, 22:29) *
ИМХО, ассемблер ARM'а никак нельзя отнести к извратным

Лично я на этот счет другого мнения.

Цитата(aaarrr @ Dec 16 2008, 22:29) *
програмист обязан знать архитектуру системы на которой работает, в том числе и ассемблер.

Само собой, архитектуру обязан понимать, знать в общих чертах, знать где и что нужно искать. Досконально знать - конечно хорошо, но если это уже не первая, 2... 5 архитектура, а её номер больше smile.gif , то досконально знать их ВСЕ мягко говоря проблематично. Зато ПОНИМАТЬ отличия, особенности каждой из них - это НЕОБХОДИМО для эффективного решения задач.

То же касается и ассемблера, хотя языки высокого уровня (тот же С) позволяют всё более и более смягчать ЭТО требование.

PS вообще между ЗНАНИЕМ и ПОНИМАНИЕМ есть разница
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2008, 20:45
Сообщение #35


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



"Понимает" и "знает в общих чертах" каждый первый, но на деле обычно оказывается, что знаний не хватает даже на 2+2 sad.gif

Ладно, это уже off.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 16 2008, 20:52
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(aaarrr @ Dec 16 2008, 22:45) *
"Понимает" и "знает в общих чертах" каждый первый, но на деле обычно оказывается, что знаний не хватает даже на 2+2 sad.gif

Ладно, это уже off.

"знает в общих чертах" - это да, а вот с ПОНИМАНИЕМ обычно очень туго.
Это легко отличить, поставив вопрос, для ответа на который требуется АНАЛИЗ разрозненных знаний (сами же про 2+2 и сказали).
Да и знания без понимания не очень-то полезны, разве что понты колотить
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 16 2008, 21:10
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(koyodza @ Dec 16 2008, 23:52) *
...АНАЛИЗ

О, вот правильное слово! Достаточно редкая способность, к сожалению.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 17 2008, 01:59
Сообщение #38


Любитель
*****

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



Цитата(koyodza @ Dec 17 2008, 00:19) *
ЗАЧЕМ уродоваться на асме для ARM - не понимаю абсолютно. Экономить пару десятков нсек? Так всё равно один раз ножкой дёрнуть - и вся экономия коту под хвост, и улетели сотни Ваших сэкономленных наносекунд.

А что, на STM32 так плохо с "дёрганием" ножками? Сколько это, приблизительно, занимает тактов?
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 17 2008, 09:08
Сообщение #39


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(sonycman @ Dec 17 2008, 03:59) *
А что, на STM32 так плохо с "дёрганием" ножками? Сколько это, приблизительно, занимает тактов?

На ВСЕХ армах плохо с дерганием ножками. Обычно это занимает порядка 0,1-0,5мксек на одно изменение состояния, и слабо зависит от частоты ядра (здесь влияет частота соответствующей шины - АРВ, АРВ2...) Для STM32 это АРВ2 и порядка 0,22мксек на одно изменение состояния при максимальных частотах ядра и шин и использовании стандартных библиотек. Если дергать без использования библиотек, то порядка 0,12мксек
Вообще армы не для ногодрыжества сделаны, и в этом деле они уступают даже некоторым восьмибитникам, например силабсам.
Go to the top of the page
 
+Quote Post
Sanek_spb
сообщение Dec 17 2008, 09:21
Сообщение #40


Участник
*

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



Цитата(koyodza @ Dec 17 2008, 12:08) *
На ВСЕХ армах плохо с дерганием ножками. Обычно это занимает порядка 0,1-0,5мксек на одно изменение состояния, и слабо зависит от частоты ядра (здесь влияет частота соответствующей шины - АРВ, АРВ2...) Для STM32 это АРВ2 и порядка 0,22мксек на одно изменение состояния при максимальных частотах ядра и шин и использовании стандартных библиотек. Если дергать без использования библиотек, то порядка 0,12мксек
Вообще армы не для ногодрыжества сделаны, и в этом деле они уступают даже некоторым восьмибитникам, например силабсам.


Ну одним-то пином STM32 точно может дрыгать быстро - MCO smile.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 17 2008, 09:24
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Да, на "скоростное ногодрыганье" рассчитывать не стоит - за этим к PIC'ам, AVR'ам и т.п.

В качестве примера: на SAM7 непосредственно команда записи с доступом через ABP, работающей на частоте ядра, занимает 3 такта. Но к этому придется приплюсовать время на загрузку указателей и данных, если они не готовы.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Dec 17 2008, 13:57
Сообщение #42


Любитель
*****

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



Цитата(aaarrr @ Dec 17 2008, 13:24) *
Да, на "скоростное ногодрыганье" рассчитывать не стоит - за этим к PIC'ам, AVR'ам и т.п.

В качестве примера: на SAM7 непосредственно команда записи с доступом через ABP, работающей на частоте ядра, занимает 3 такта. Но к этому придется приплюсовать время на загрузку указателей и данных, если они не готовы.

То есть для STM32 при частоте ядра в 72 МГц (пер. шина=36 МГц) последовательная установка и сброс пина займут 12 тактов = импульсы частотой 6 МГц?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 17 2008, 14:08
Сообщение #43


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sonycman @ Dec 17 2008, 16:57) *
То есть для STM32 при частоте ядра в 72 МГц (пер. шина=36 МГц) последовательная установка и сброс пина займут 12 тактов = импульсы частотой 6 МГц?

Где-то так +/- лапоть. По крайней мере на большее точно рассчитывать не стоит.
Go to the top of the page
 
+Quote Post
koyodza
сообщение Dec 17 2008, 19:00
Сообщение #44


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(sonycman @ Dec 17 2008, 15:57) *
То есть для STM32 при частоте ядра в 72 МГц (пер. шина=36 МГц) последовательная установка и сброс пина займут 12 тактов = импульсы частотой 6 МГц?

Не выше 2,5МГц
И STM32 дает далеко не самый плохой результат
Шина АРВ2 тоже 72МГц
И забудьте про такты, здесь всё несколько иначе: количество тактов непостоянно
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 17 2008, 19:25
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(koyodza @ Dec 17 2008, 22:00) *
Не выше 2,5МГц

Странно, а откуда так много набегает?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 22:27
Рейтинг@Mail.ru


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