Мигать светодиодом. ARM или не-ARM?

Флейм в чистом виде - все что угодно...
Но - в рамках закона :)
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

DIP корпуса для микроконтроллеров уходят в прошлое...
Любительская пайка ATtiny20 в 12-ball WLCSP корпусе 1.555 на 1.403mm, и 0.538mm толщиной.

подробности:
https://mitxela.com/projects/soldering_wlcsp
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18673
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

взбеситься можно, глядя на это видео :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Пока_без_кота
Потрогал лапой паяльник
Сообщения: 359
Зарегистрирован: Чт авг 08, 2013 01:06:54

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Пока_без_кота »

Я выскажусь лично за себя. Мне легче достать микроконтроллер в DIP-корпусе, чем проделывать то, что на видео. Если нет нужного в DIP-корпусе, он наверняка есть, распаяный на какую-либо недорогую платку/макетку. Потом платка/макетка впаивается в мою плату.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3354025#p3354025"]Заодно на популярной TINY13 подобную мигалочку соорудим, тоже на Си:
Спойлер

Код: Выделить всё

#include <avr/io.h>
#include <util/delay.h>

int main()
{
	DDRB |= (1 << 0);
	
	for (;;)
	{
		PORTB ^= (1 << 0);
		_delay_ms(1000);
	}
}
Used FLASH: 68 bytes out of 1024 bytes (6%)
Used RAM: 0 bytes out of 160 bytes (0%)
Менее экономично, глядя на весь листинг - на ассемблере тут можно потягаться.
В этом кусочке самого мигания не прибавить не убавить (имхо):
Спойлер

Код: Выделить всё

     LDI       R25,0x01       Load immediate
     IN        R24,0x18       In from I/O location
     EOR       R24,R25        Exclusive OR
     OUT       0x18,R24       Out to I/O location
хм два регистра, чтоб заксорить.[/uquote]Для ARM размер прошивки меньше - 48 байт. http://purebasic.mybb.ru/viewtopic.php?id=575#p7592
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

[uquote="Пока_без_кота",url="/forum/viewtopic.php?p=3421994#p3421994"]Мне легче достать микроконтроллер в DIP-корпусе, чем проделывать то, что на видео[/uquote]
Любители разные бывают. Давненько NXP на шару рассылала LPC1102 в мелком корпусе - народ использовал в поделках:
СпойлерИзображение
подробности:
http://security-corp.org/hard/diy/18032 ... kator.html

2 Мурик ссылка у меня не открывается :?
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

Возможно временные проблемы доступности форума.
Прошивка и исходники (проект для EmBitz 1.11) во вложении.
Вложения
STM32F103C8T6_Blink_48_bytes.zip
(76.54 КБ) 274 скачивания
Реклама
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

[uquote="Мурик",url="/forum/viewtopic.php?p=3422025#p3422025"]и исходники[/uquote]
нормально - на векторах сэкономлено, интересно а в GCC AVR вектора прерываний можно ли "урезать" каким то способом
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18673
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

oleg110592 писал(а):интересно а в GCC AVR вектора прерываний можно ли "урезать" каким то способом
естественно!

Код: Выделить всё

#include <avr/io.h>
#include <avr_helper.h>
#include <util/delay.h>

MAIN(){
	DDRB = 0xFF;
	for(;;){
		PORTB ^= _BV(PB4);
		_delay_ms(500);
	}
}
добавить в командную строку линкера -nostartfiles -nodefaultlibs
результат компиляции:
AVR Memory Usage
----------------
Device: attiny13

Program: 32 bytes (2.7% Full)
(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
листинг
Спойлер

Код: Выделить всё

micro-tiny13-test.elf:     file format elf32-avr

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .text         00000020  00000000  00000000  00000054  2**1
                  CONTENTS, ALLOC, LOAD, READONLY, CODE

Disassembly of section .text:

00000000 <main>:
   0:	8f ef       	ldi	r24, 0xFF	; 255
   2:	87 bb       	out	0x17, r24	; 23
   4:	40 e1       	ldi	r20, 0x10	; 16
   6:	20 ef       	ldi	r18, 0xF0	; 240
   8:	30 e0       	ldi	r19, 0x00	; 0
   a:	88 b3       	in	r24, 0x18	; 24
   c:	84 27       	eor	r24, r20
   e:	88 bb       	out	0x18, r24	; 24
  10:	88 e8       	ldi	r24, 0x88	; 136
  12:	93 e1       	ldi	r25, 0x13	; 19
  14:	f9 01       	movw	r30, r18
  16:	31 97       	sbiw	r30, 0x01	; 1
  18:	f1 f7       	brne	.-4      	; 0x16 <__zero_reg__+0x15>
  1a:	01 97       	sbiw	r24, 0x01	; 1
  1c:	d9 f7       	brne	.-10     	; 0x14 <__zero_reg__+0x13>
  1e:	f5 cf       	rjmp	.-22     	; 0xa <__zero_reg__+0x9>
естественно, для более сложного проекта потребуется чуть-чуть другой код - с инициализацией R1 и стека... но простейшая мигалка и без этого работает
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

ARM Used FLASH: 68 bytes
AVR Program: 32 bytes
PIC Program space used 29 words
победа AVR
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

oleg110592 писал(а):ARM Used FLASH: 68 bytes
48.
oleg110592 писал(а):победа AVR
Ну с какой стороны посмотреть на это. В действительности кода в ARM-прошивке тоже 32 байта. Остальное это адрес стека и адрес стартовой функции (8 байт) и еще 8 байт - данные.
Исполняемый код находится с адреса 0x08000008 по адрес 0x08000028 что равно 0x20 или 32 байта.
СпойлерИзображение
9vetC.png
(103.03 КБ) 66 скачиваний
ARM 32-ух битные, а AVR 8-ми битные (с 16-ти битной адресацией), т. е. для ARM нужно 4 байта для адреса, а в AVR только 2. Это не может не сказываться на размере прошивки.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18673
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

Мурик писал(а):тоже 32 байта
если вместо PORTB ^= 255 написать PINB = 255, то размер для AVR станет 30 байт :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение dosikus »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3422280#p3422280"]победа AVR[/uquote]

Победа маразма над разумом.
Если уподобляться ARV с его автомобильными рассказками, то вы сравниваете расход топлива у жопика и болида на 100 метров трассы.
Хотя сравнение стм32 с болидом не совсем корректно , по терминологии ARV стм32 может быть чем угодно от жопика до болида в зависимости от настроек.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение Мурик »

ARV писал(а):размер для AVR станет 30 байт
Если вам так нравится мерятся размерами, вот задачка для AVR. Нужно эту строку скомпилировать и выложить асм код того что получилось.

Код: Выделить всё

a = (((b * 10) + (c / 60)) - 1) * 5;
Все переменные типа uint32_t.
Асм для STM32 в этой теме. https://radiokot.ru/forum/viewtopic.php ... 5#p3416775 Размер кода 22 байта. За сколько тактов выполнится точно не скажу, но не очень много судя по коду.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18673
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение ARV »

Мурик писал(а):Если вам так нравится мерятся размерами, вот задачка для AVR.
мне не особо нравится, я продемонстрировал, как избавиться от таблицы векторов.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение oleg110592 »

[uquote="dosikus",url="/forum/viewtopic.php?p=3422548#p3422548"]Хотя сравнение стм32 с болидом не совсем корректно[/uquote]
STM32F0 - тот же запорожец, только с 32 цилиндрами и крыльями как у Фантомасовской машины, естественно расходует больше топлива. Крылья можно не включать. :) imho
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение VladislavS »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3422280#p3422280"]победа AVR[/uquote]Не страшно без тормозовстека летатьползать?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Мигать светодиодом. ARM или не-ARM?

Сообщение a5021 »

[uquote="oleg110592",url="/forum/viewtopic.php?p=3422639#p3422639"]STM32F0 - тот же запорожец, только с 32 цилиндрами и крыльями как у Фантомасовской машины, естественно расходует больше топлива.[/uquote]
Есть STM32L0, который кушает весьма умеренно: 0.68мка в стопе с тикающими часами и пробуждением от оных. Меньше мне не попадалось в этом классе устройств.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3384
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: In vino veritas

Сообщение Мурик »

BOB51 писал(а): http://www.coocox.org с моего сейчас чего-то "недоступен"...
Сайт кокоса бывает что недоступен. Есть на мой взгляд лучше IDE. https://www.embitz.org
BOB51 писал(а):городить примитив таймер на АРМЕ можно, но как-то уж весьма избыточно.
Если стоимость МК с ARM ядром соизмерима или даже меньше чем с PIC или AVR ядром, и при этом удобство разработки выше (больше ресурсов, есть отладка и т. д.), то целесообразнее использовать именно ARM. Возьмите что-то типа STM32F030F4P6. Для простого устройства то что нужно.
salang
Грызет канифоль
Сообщения: 273
Зарегистрирован: Вт янв 18, 2011 19:32:48
Откуда: Мск

Re: In vino veritas

Сообщение salang »

[quote="Мурик",url="/forum/viewtopic.php?p=3424645#p3424645"]Там упоминается что в SystemInit настраивается МК в т. ч. тактирование, но это функция из библиотеки, т. е. ее не нужно самому писать.
[/quote]это частности, а в общем там говорится о том, что быстрого старта не вышло. И это с фирменной платой и uVision, т.е. и софт и железо были гарантированно рабочими
[quote="Мурик",url="/forum/viewtopic.php?p=3424645#p3424645"]Представьте что в то время Pentium 1 и Радио-86РК стоили одинаково, вы чтобы выбрали?[/quote]Вы же понимаете, что это нереальный пример и так не бывает в принципе?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18673
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: In vino veritas

Сообщение ARV »

salang писал(а):Вы же понимаете, что это нереальный пример и так не бывает в принципе?
сейчас вы прослушаете лекцию про ARM STM32 :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Ответить

Вернуться в «МЯЯЯУ!»