|
|
  |
3xSPI в небольшом корпусе, В TQFP64 или меньше? |
|
|
|
Dec 16 2008, 20:19
|

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

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

Местный
  
Группа: Свой
Сообщений: 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 архитектура, а её номер больше  , то досконально знать их ВСЕ мягко говоря проблематично. Зато ПОНИМАТЬ отличия, особенности каждой из них - это НЕОБХОДИМО для эффективного решения задач. То же касается и ассемблера, хотя языки высокого уровня (тот же С) позволяют всё более и более смягчать ЭТО требование. PS вообще между ЗНАНИЕМ и ПОНИМАНИЕМ есть разница
|
|
|
|
|
Dec 16 2008, 20:52
|

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

|
Цитата(aaarrr @ Dec 16 2008, 22:45)  "Понимает" и "знает в общих чертах" каждый первый, но на деле обычно оказывается, что знаний не хватает даже на 2+2  Ладно, это уже off. "знает в общих чертах" - это да, а вот с ПОНИМАНИЕМ обычно очень туго. Это легко отличить, поставив вопрос, для ответа на который требуется АНАЛИЗ разрозненных знаний (сами же про 2+2 и сказали). Да и знания без понимания не очень-то полезны, разве что понты колотить
|
|
|
|
|
Dec 17 2008, 09:08
|

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

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

Группа: Участник
Сообщений: 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
|
|
|
|
|
Dec 17 2008, 19:00
|

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

|
Цитата(sonycman @ Dec 17 2008, 15:57)  То есть для STM32 при частоте ядра в 72 МГц (пер. шина=36 МГц) последовательная установка и сброс пина займут 12 тактов = импульсы частотой 6 МГц? Не выше 2,5МГц И STM32 дает далеко не самый плохой результат Шина АРВ2 тоже 72МГц И забудьте про такты, здесь всё несколько иначе: количество тактов непостоянно
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|