Перейти к содержанию
    

А вот какой мелкий контроллер использовать?

2 минуты назад, Vasily_ сказал:

но это совсем не говорит о не убиваймости и надежности.

С другой стороны, а как достоверно проверить, что МК не деградировал? Внешне может работать. Но вдруг начнёт сбоить при минусе или на более высоких частотах?

3 минуты назад, Vasily_ сказал:

Выше не вы писали?

Я вас не понял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, MrBearManul сказал:

С другой стороны, а как достоверно проверить, что МК не деградировал? Внешне может работать. Но вдруг начнёт сбоить при минусе или на более высоких частотах?

Скорее всего никак не проверить. Может и начнет сбоить, естественно не стоит использовать контроллер после издевательства над ним.

11 часов назад, adnega сказал:

Допустим. Но использовать линейное адресное пространство на Си в Cortex-M намного приятнее AVR-овской модели памяти ;)

А что сейчас модно подбирать контроллер по приятности?

У меня совсем другой подход.

11 минут назад, MrBearManul сказал:

Я вас не понял.

Это разве не говорит о надежности AVR?

3 часа назад, MrBearManul сказал:

Помню, однажды вместо 5 В на ATMega16 подал 12 В в течение секунд 10. Нагрелся он жутко. Но на удивление продолжал работать. Какой-либо деградации выявлено не было. Задействованы были пины GPIO как на вход, так и на выход.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что насчет производительности? Кто из мелких самый работящий? Не самый шустрый по мегагерцам, а реально выполняющий задачу быстрее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Obam сказал:

Перефразируя: "Вот из-за такого-эдакого нас евреев небоящихся ассма жидами "кнопкодрочерами" и зовут" ;-)

По тому вас так и зовут. Я же не нули двигаю, а октет.

 

4 часа назад, MrBearManul сказал:

Я для AVR давно тоже начинал на ассемблере. Потом, конечно Си/Си++. А почему вы пишите под кортексы на языке мнемоник? У вас какие-то требования по скорости особые? И какие кортексы? Нулевые или выше?

А я наоборот. ассемблер по тому, что в машинный кодах долго. Нет, по скорости требований нет. В данный момент M0.

 

4 часа назад, MrBearManul сказал:

Так вы на нём прикладную программу пишете, как я смотрю, т.е. обработка кнопок интерфейса. Вот это действительно непонятно зачем делать? Чем Си/Си++ не подходит?

Не вижу смысла объяснять. Объяснение вызовет споры и очередная тема скатится в бездонную пропасть.

12 минут назад, ViKo сказал:

А что насчет производительности? Кто из мелких самый работящий? Не самый шустрый по мегагерцам, а реально выполняющий задачу быстрее?

Тот у которого есть необходимая периферия для конкретной задачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 минут назад, ViKo сказал:

А что насчет производительности? Кто из мелких самый работящий?

Если нужно 5В и нет желания брать AVR, посмотрите на серию ATSAMC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В корпусе SOIC8 сейчас уже доступны STM32G031. Бонус - на них распространяется бесплатная лицензия Keil. Не проходят только по питанию - до 3.6В.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Vasily_ сказал:

Это разве не говорит о надежности AVR?

Думаю, что нет, ведь вы же сами пишите, что

1 час назад, Vasily_ сказал:

Может и начнет сбоить, естественно не стоит использовать контроллер после издевательства над ним.

Разве может такое изделие считаться надёжным? Тем более, что оно подверглось нештатным (запрещённым по докуметации) условиям эксплуатации?

37 минут назад, forummailandlogin сказал:

А я наоборот. ассемблер по тому, что в машинный кодах долго.

Спасибо, развесилили)))

37 минут назад, forummailandlogin сказал:

Не вижу смысла объяснять.

Значит, дело вкуса)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, MrBearManul сказал:

Думаю, что нет, ведь вы же сами пишите, что

Я думаю что да, остальное из серии может да а может и нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 часов назад, Obam сказал:

Ну и подпрограмма регистр SR не сохраняет - фигня ;-)

Не всегда необходимо по собственным следам ходить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не на NOPах надо было заострять внимание, а на комментариях к ним. Они выравнивают адресацию по границе слова.
П.С. Знаю, сейчас будет вопрос: "Зачем, ведь THUMB придуман для плотненького укладывания инструкций". - Не люблю неровности. Как только процедура обретает свой окончательный вид - выравнивания внутри процедур убираю и выравниваю сами процедуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, forummailandlogin сказал:

Не на NOPах надо было заострять внимание, а на комментариях к ним.

А где они?

3 минуты назад, forummailandlogin сказал:

Не люблю неровности.

А директивы ассемблера разве не позволяют выровнять код?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую "    AREA    |.Menu1|, CODE, READONLY, CODEALIGN", на Keil выводит необходимость выравнивать в конце сегмента. Ошибка исчезает при повторной компиляции, но я лучше сам ручками, не так уже это сложно выровнять 16-ти битные инструкции по границе 32 бита перед использованием 32-в битной инструкцией.

Изменено пользователем forummailandlogin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, forummailandlogin сказал:

Использую

Тот код, который вы привели во многом уступает аналогичному Си-коду. Инициализацию на Си гораздо проще описать.

Я понимаю asm, например, для КИХ-фильтра применить. Тут реально можно выиграть в сравнении с Си:

//---------------------------------------------
//	fpu_iir
//---------------------------------------------
	.thumb
	.thumb_func
	.global	fpu_iir
	.type fpu_iir, %function
fpu_iir:
	.cfi_startproc
	cbnz	r1, fpu_iir_load
	bx		lr
fpu_iir_load:
	push					{r0-r4, lr}
	VPUSH					{s0-s7}
	// load f
	VLDR.F32			s1, [r3, #0]		// G
	VLDR.F32			s2, [r3, #4]		// a1
	VLDR.F32			s3, [r3, #8]		// a2
	VLDR.F32			s4, [r3, #12]		// b
	VLDR.F32			s5, [r3, #16]		// tn-1
	VLDR.F32			s6, [r3, #20]		// tn-2
fpu_iir_loop:
	// load
	ldr						r4, [r0], #4
	// s0 <- x
	VMOV.F32			s0, r4
	// calc tn
	VMUL.F32			s7, s1, s0			// G * x
	VFMS.F32			s7, s2, s5			// -a1 * tn-1
	VFMS.F32			s7, s3, s6			// -a2 * tn-2
	// calc y
	VADD.F32			s0, s7, s6			// tn-2
	VFMA.F32			s0, s4, s5			// b * tn-1
	// save t
	VMOV.F32			s6, s5					// tn-2
	VMOV.F32			s5, s7					// tn-1
	// y -> r0
	VMOV.F32			r4, s0
	// store
	str						r4, [r2], #4	
	subs					r1, #1
	bne						fpu_iir_loop
	VSTR.F32			s5, [r3, #16]		// tn-1
	VSTR.F32			s6, [r3, #20]		// tn-2
	VPOP					{s0-s7}
	pop						{r0-r4, pc}
	.size	fpu_iir, .-fpu_iir
	.cfi_endproc

 

void fpu_iir(float *x, int size, float *y, sIIR *f);

 

typedef struct sIIR
{
	float	g;
	float	a1;
	float	a2;
	float	b;
	float	t1;
	float	t2;
} sIIR;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа и товарищи, вернитесь к основной теме обсуждения!
Меряться asm vs C vs C++ ets можно в другой теме. 
Выше я спрашивал, какой микроконтроллер более производительный. Например, за какое время мк может переслать массив из ПЗУ в ОЗУ. Может, где-то есть результы стандартных тестов? 

P. S. вопрос использовать asm передо мной не стоит 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...