Этого треда уже нет.
Это копия, сохраненная 6 июля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
387 Кб, 1000x796
ARM ТРЕД 187056 В конец треда | Веб
Ибо не нашел. Здесь мы будем обсуждать микроконтроллеры с этой потрясающей новой современной архитектурой. Только C/C++, IAR/GCC, никаких майкрософтских потуг.

Сам я столкнулся с ней на работе, уже полгода пишу под SAM3 и ATSAM91. Все нравки, внезапно стало доставлять. Планирую накатить линукс и сам собрать ядро.
2 187072
>>187056 (OP)

>накатить линукс


this is the road to Hell
3 187078
>>187056 (OP)
как работа аэрэмщика? много платят? пили стори как устроиться, что требуют? хочу уйти на эту профессию.
4 187085
>>187056 (OP)
Для вкатывания в эту тему есть ли народные девборды по цене не дороже китайской ардуины?
5 187087
с++ чем собирается для арма?
6 187088
>>187085
под cortex-m (микроконтроллеры, linux не запустить) есть, под cortex-a (процессор вроде того, что в телефоны с ведроидом ставят) - будет дороже, от 25$
7 187094
>>187078
Завод , Россия мухосрань, зарплата 30-40к, ибо я инженер-программист и оче мал стаж, года нет даже. Конкретно я делаю коммутацию, что-то типа свитча.
>>187087
Gcc вроде, но я собираю в iar. Он очень уебищен, но вроде по отзывам оптимизация лучше, чем в гсс.

Алсо, в некотрых at91, что на пикче, нет пзу и крайне мало озу, все рассчитано на внешнюю память.
8 187098

>2015


>использовать на микроконтроллере крестопарашу вместо божественной джавы


Ох уж эти говнокодеры-студентик
9 187103
>>187098

>>2015


>>использовать на микроконтроллере крестопарашу вместо божественной джавы


>Ох уж эти говнокодеры-студентик


О! Любители кофематов подтянулись. Почему джава тормозит? Просто оперативки добавить, ага?
Если ты пишешь на джаве, это ещё не значит что она самая заебательская для встроенных систем. Для каждой задачи есть свой инструмент. Я тебя с джавой к промышленным контроллерам не подпущу не под каким соусом. Максимум для джавы -- платёжный терминал, дак и то, драйвера для железа писать на сях. Так что, угомонись.
10 187108
>>187098
>>187103
Вы все мудаки.
11 187110
>>187108
Мог бы и не писать, порванка.
12 187123
ладно, харе сраться.

Помогите лучше задачу решить:

TIM_TimeBaseStructure.TIM_Period = 1000;
TIM_TimeBaseStructure.TIM_Prescaler = (uint32_t) SystemCoreClock - 1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

МК stm32f103
не получается сделать таймер на 1 секунду. что я делаю не так?
тактовая частота 72MHz
кварц 8Mhz
13 187124
>>187123
да, запускается, но выдаёт только 0.5 сек
14 187130
Анон, поясни выгоду при использовании DMA память-память и при прямом копировании около 32Б данных
15 187135
>>187130
Запустил и ушёл по другим делам. Правда, в кортексах DMA такты ворует. У dsPIC33 - нет.
16 187154
>>187103

>джава


>2015


>тормозит


Ох уж эти студентики с их говнокодом

>максимум для джавы


Напоминаем о том что божественная джава - стандарт в энтерпрайзе, части мобильных устройств, части смарт карт. Не бойся, спермопердоля, скоро твой потешный пердоси и из МК выпрут.
17 187157
>>187154

> Не бойся, спермопердоля, скоро твой потешный пердоси и из МК выпрут.


Дурачок. Выпрут С, как же, потом ещё ассемблер выпрут и останется на контроллерах только джава и машинный код, а разработчики джавы будут машкод ебашить напрямую.

>>187130

>поясни выгоду при использовании DMA память-память и при прямом копировании около 32Б данных


Выгоды не вижу. Инициализация DMA больше времени займёт.
18 187158
>>187153

>тыртырпрайзный джава дев


Ало, уёба, >>187154 -- это ты?
19 187170
>>187158
Да
>>187157

>выпрут C


Пердоля, твой недоассемблер за пределами системной разработки ненужен. Конечно, выпрут
20 187173
>>187170

>Пердоля, твой недоассемблер за пределами системной разработки ненужен. Конечно, выпрут


У тебя, уёба, действительно только стоковое железо, и ты, уёба, не разрабатываешь железо своё, потому ты так и думаешь, а зря. Железа бывает всякого и много, и его постоянно разрабатывают, и в каждой конкретной реализации пишут драйвера, что не редкость. И пока твои синьоры не напишут их, ты будешь дрочить, ибо сам ничего не можешь. Так что, настанет время, когда джава макакеров станет столько, что твоя ценность упадёт чуть ниже чем уровень плинтуса, но зато, вас будет много, есть с кем пообщаться. А боги асма и С будут надсмехаться над вами и вашей джавой. Кстати, С-шники и сегодня получают на вашем уровне, что же будет дальше?
sage 21 187198
>>187124

>выдаёт только 0.5 сек


Так умножь на два хули ты.
15 Кб, 480x360
22 187272
Пердолюсь с STM32F429I-DISCO платой. Недавно решил прицепить камеру к DCMI и через DMA гнать кадры в память, затем по SPI выводить на дисплей (жаль что у DCMI и LTDC конфликт выводов). Все это делалось в Keil и STM32Cube последней версии. Собственно все работает, только как-то долго обновляется изображение на дисплее (в примере, которым вдохновился все работает норм, но там используется StdPeriph, вместо божественной HAL либы). Сейчас думаю наладить отправку изображения на дисплей тоже через DMA, только хз как оно в SPI будет слать массив картинки rgb565 320x240px. Есть тут кто делал что-нибуть подобное?
Вызов типа этого выполняется, возвращая, что все ок, но дисплей никак не реагирует:
HAL_SPI_Transmit_DMA(&hspi5, (uint8_t)frame_buffer, (uint16_t)(IMG_ROWSIMG_COLUMNS));
23 187281
>>187173

>джавамакакеров


>С-богов


Пердоля, а с чего ты взял что я не знаю си?)))

>НИНУЖЕН СТОНИШЬ


Напоминаем пердоле о том что з/п джава девов - одна из найбольших в индустрии. Продолжаем зоонаблюдения за манямирком спермопердоли-сидауна
24 187283
>>187272
Проблемы сидауна с недоассемблером. Писал бы код на Java ME embedded было бы все нормально
25 187286
>>187281
Я понимаю, что ты не съебёшь просто так. Но взываю к разуму, коле ты такая умная джава-макака, твоя джава не везде актуальна, свет на ней клином не сошёлся, и не сойдётся. Алсо, если бы твоя собственная ЗП была бы хоть сколько-нибудь значимой в индустрии, ты бы не тут сидел... Вангую, что ты джуниор, и пришёл сюда повыёбываться, но ты ошибся, ни какой джавятиной тут не пахнет.
26 187357
>>187281
студент максималист итт, джаву не любят хотя бы за то что нет управляемости кодом, в любой момент может проснуться уборщик мусора и начать убирать все что видит. А если в этот момент какая нибудь хуйня с двигателем произойдет? нужно очень быстро отреагировать, но вот хуй там сборщик мусора ничего не дает сделать. И таких задач очень много в реальном мире, это тебе не формочки пилить для офисных клерков. Ты просто тупой студент и не понимаешь, что есть разные задачи. Я и сам не буду писать на С/С++ десктопную часть решения для построения графиков или вывода еще какой нибудь хуйни, а возьму няшный C#. Но писать код под МК на чем то кроме С/С++ это бред.
27 187362
>>187357

>Но писать код под МК на чем то кроме С/С++ это бред.


Поссал на рот.
мимо пользователь ASM
28 187365
>>187357
>>187286

>студент


>Джуниор


Найс проекции спермопердоликов. Студентики похоже порвались
29 187375
30 187403
>>187272
Что-то у меня не получается с этой hal библиотекой дисплей запустить. Светится белым и все, сука такая. Можешь какую ссылочку подкинуть, где написано про инициализацию и работу с этим дисплеем или показать свой код?
40 Кб, 604x392
31 187438
Сап, нанонимусы. Помогите с DMA. Есть некий модуль на плате, который подключен к МК по EBI (ШД, ША, управляющие), и регистры этого устройства для мк видны как оперативка. Вот.

Задумал я тут записывать всякую хрень в модуль по ДМА, тип память-память. Разовый трансфер выполняется норм, все работает, нарушений нет, но блядь, не мк не знает, что трансфер окончен, ибо модуль не пересылает специализированный сигнал. Или я не знаю, как это делается. В даташите мк в регистры ДМА из чего-то эдакого можно вписать только адрес источника/приёмника, а настроить управление окончания трансфера нельзя. Стандартные компоненты мк типа уартов-спиаев и прочего говна сообщают, видимо, об окончании. Хотя об этом в дш явно об этом не указано, при трансфере периферия-память ты указываешь айди периферии.

Так вот, что делать? Отлавливать прерывания от того внешнего модуля и говорить ДМА, что трансфер окончен? А это ли не нарушит всю выгоду ДМА?
32 187483
>>187123
для измерения времени нужно юзать systick. только нужно корректно частоту задать кварца
33 187485
>>187272
проблема халовской библиотеки в том, что я например настраиваю SPI через ХАЛ. вроде бы в кубе все пины должны настроиться и в свойствах куба эти пины настраиваются . а на деле в проекте пины не настраиваются. хотя в кубе настроены. это пиздец, я ебал. в кубе эти пины настроенный уже а в готовый проект не добавляются.

>>187403
после создания проекта в коде могут быть вполне детские ошибки. выше описал.
34 187494
>>187438
DMA сам прекрасно знает, когда происходит окончание передачи. Как правило, у МК есть обработчик прерываний для DMA. И да, у DMA должен быть флаг Transfer Complete (TC), по которому можно отлавливать окончание передачи.
35 187629
Анон, прости за тупой вопрос, но выполняемая программа же всегда располагается в оперативной памяти? Т.е. например при включении устройства выполняются инструкции из бут секции с минимальным конфигом и перекачкой из пзу в озу? Или есть варианты погрузки кода из медленной памяти, подключенной, например, по spi?
36 187630
>>187629
У контроллеров типа STM32 программа как правило выполняется из FLASH памяти, хотя есть возможность и из оперативки.
Если используется операционная система, то как правило они все копируют в оперативку.
В общем, зависит от конкретного проекта
17 Кб, 625x147
37 187801
>>187123
Как частоты настраивал? APB1 prescaler какой? Ну и помни, что у таймеров на шине APB1 у STM32F1 (может и на APB2 тоже, не помню точно) частота в два раза выше, чем у периферии. Поэтому делители надо рассчитывать с учётом удвоенной частоты. Ну а ещё поля Period и Prescaler структуры TIM_BaseTypeDef типа uint16_t, если не ошибаюсь, хотя сейчас уточню в своих проектах.
38 187804
>>187485

>а на деле в проекте пины не настраиваются. хотя в кубе настроены. это пиздец, я ебал. в кубе эти пины настроенный уже а в готовый проект не добавляются.


Вот поэтому и надо пользоваться SPL вместо куба. У меня на работе два прогера пишут под SPL, один - под куб. При этом SPLщики не чураются для быстрого прототипирования и проверки функционала накидать за пять минут болванку на кубе, потом уйти делать по-уму под SPL. В то время как прогер, пишущий под HAL вечно охуевает то от багов в библиотеке, то от отсутствия или устаревшей документации, то от несовместимости разных версий HALа между собой. Ну и плюс много неочевидных мест.
39 187806
У кого-нибудь был опыт с подключением внешней SDRAM к STM32F429 по FMC? Настроил тайминги, проинициализировал так, как написано в рефренс мануале на STM32F4 и даташите на саму память, контроллер нормально её адресует, может даже записать туда одну двухбайтную переменную и она не испортится, если её тут же считать. Но вот если попробовать записать и считать массив - то в памяти будет записан только последний байт массива, причём записан обширно, в диапазоне адресов байт так на 200. Burst отключен, документации по FMC толком нет, гугл выдаёт только обсасывание примеров для дискавери и один форум, где всё на китайском.
40 187808
>>187806

>Но вот если попробовать записать и считать массив - то в памяти будет записан только последний байт массива, причём записан обширно, в диапазоне адресов байт так на 200.


Код сюда давай, ты, наверно, объебался с указателями.
41 187831
>>187808
Это работает хорошо:
uint16_t read16, write16;
write16 = 0xB16C;

//Write to SDRAM
((uint16_t )0xC0000002) = write16;
read16 = ((uint16_t )0xC0000002);

Адреса заданного банка начинаются с 0xC0000000

А вот это - уже нет:
for (i = 0x00; i < 0x7F; i++)
{
((__IO uint16_t )0xC0000000 + i2) = (uint16_t)i;
}

read16 = 0;

for (i = 0x00; i < 0x7F; i++)
{
read16 =
(__IO uint16_t )(0xC0000000 + i2);
if (read16 != (uint16_t)i)
{
//Обработчик ошибки
}
}

Если делать так:
uint16_t testarr[16] = {0,1,2,3,4,5,6,7,8,9,0xA,0xB,0xC,0xD,0xE,0xF};
uint16_t readarr[16];
uint16_t testvar_ptr = (uint16_t )0xC0000000 + 0x100;

memcpy(testvar_ptr,testarr,sizeof(testarr));
memcpy(readarr,testvar_ptr,sizeof(readarr));

То тоже случается обсерушен. Прерывания в это время я выключаю (в errata сказано, что разрешённые прерывания могут портить чтение/запись в память на некоторых ревизиях процессора).
41 187831
>>187808
Это работает хорошо:
uint16_t read16, write16;
write16 = 0xB16C;

//Write to SDRAM
((uint16_t )0xC0000002) = write16;
read16 = ((uint16_t )0xC0000002);

Адреса заданного банка начинаются с 0xC0000000

А вот это - уже нет:
for (i = 0x00; i < 0x7F; i++)
{
((__IO uint16_t )0xC0000000 + i2) = (uint16_t)i;
}

read16 = 0;

for (i = 0x00; i < 0x7F; i++)
{
read16 =
(__IO uint16_t )(0xC0000000 + i2);
if (read16 != (uint16_t)i)
{
//Обработчик ошибки
}
}

Если делать так:
uint16_t testarr[16] = {0,1,2,3,4,5,6,7,8,9,0xA,0xB,0xC,0xD,0xE,0xF};
uint16_t readarr[16];
uint16_t testvar_ptr = (uint16_t )0xC0000000 + 0x100;

memcpy(testvar_ptr,testarr,sizeof(testarr));
memcpy(readarr,testvar_ptr,sizeof(readarr));

То тоже случается обсерушен. Прерывания в это время я выключаю (в errata сказано, что разрешённые прерывания могут портить чтение/запись в память на некоторых ревизиях процессора).
42 187832
>>187831
Чёрт, обосрался с табуляцией.
s/\t/ /g
43 187834
>>187831
Вставлять сюда было не лучшей идеей. Закинул на пейстбин: http://pastebin.com/sJ4t2E3Z
44 187847
>>187806
С таймингами объебался, ящитаю. Плюс, когда я настаивал на атмеловском, я указывал, что нехуй ждать сигнала nwait. Т.е. вероятно есть регистр с настройками работы
45 187848
>>187483
частоту кварца корректно задал, даже замерял на ноге A1 частоту процессора,
как заюзать systick? не подскажешь?
>>187801
в RCC_CFGR_PPRE1 стоит 0x04 значит, по datasheet "100: HCLK divided by 2"
таймер висит на RCC_APB1

за такое пиздят палкой по рукам?:

TIM_TimeBaseStructure.TIM_Period = 2000;
TIM_TimeBaseStructure.TIM_Prescaler = (uint32_t) SystemCoreClock - 5500;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
46 187870
>>187847

>С таймингами объебался, ящитаю.


Причина оказалась примитивнее - забыл затактировать один из портов GPIO, отсюда и кривая адресация.
47 187871
>>187848
А почему просто не задаёшь <...>.Tim_ClockDivision = TIM_CKD_DIV2, например? Да и делитель частоты лучше сделай в виде макроса, или посчитай чуть выше.
48 188089
>>187056 (OP)
Продолжение ардуино даунов, я у мамы паграмист я умею паграмировать плис.Азаза у меня отладочная за 500 бачей.Гляди те, я делаю пищалку на макросхеме с 500000 мультиплексоров.Ахахахъхяъ
49 188134
>>188089
ты хоть сам понял что сказал? причем тут ПЛИС?
50 188492
>>188089
Чому ты такой злой? Это потому что у тебя велосипеда нет?
53 Кб, 489x604
51 188553
>>188492

потомучто у меня плис нет
52 188555
>>188492

>Чому ты такой злой?


>>188089

>ардуино даунов


>я у мамы паграмист



сам-то не злой?
53 188594
>>188555
Эм. Ты ебу дал?
54 188635
>>187056 (OP)
С чего начать осиляторство? Проще ли писать под ОС на МК чем на "голом" железе как диды?
55 188641
>>188635
Разные области задач, вопрос некорректен.
56 188644
>>188635
c осцилляторства. кварц купи сначала.
57 188656
>>188594
походу) ответы перепутал
58 188659
>>188635

>С чего начать осиляторство? Проще ли писать под ОС на МК чем на "голом" железе как диды?


Дальше то чё делать собрался?
Я вот пишу под линукс на атмеловском ARMе. И под FreeRTOS на STM32, который тоже ARM. Под линухой не могу решить задачу подачи на выход кратковременного импульса строго заданной величины, не залезая на железный уровень, а под STM32 могу, ибо уже на железе работаю. Вопрос в том, какая стоит задача на будущее.
Ну как нубу, я бы посоветовал для начала в железе поковыряться, чтобы понимать что и к чему, а потом бы на высокий уровень полез, учитывая специфику борды. Если бы спросил в /pr/, то я бы начал спрашивать, нахуя тебе железо, если под всё есть драйвера (но это правда только для /pr/, а тут аноны некоторые свои устройства собирают, к которым драйверов нет).
59 188701
>>188659

>Под линухой не могу решить задачу подачи на выход кратковременного импульса строго заданной величины, не залезая на железный уровень, а под STM32 могу, ибо уже на железе работаю.


Кстати, почитай про PRUSS в AM335x биглбоновских, если еще не встречался, - такая-то годнота, не нужен дополнительный МК/ПЛИС для realtime задач на линупсе.
60 188760
>>188635

>С чего начать осиляторство? Проще ли писать под ОС на МК чем на "голом" железе как диды?


На железе начинать писать строго обязательно для понимания сути происходящего. Освой хотя бы основы CMSIS (хотя регистроёбство многие недолюбливают, предпочитая какой-нибудь HAL), разберись что и как работает, напиши что-нибудь на циклах и прерываниях. А потом уже можешь к ОС переходить.
61 189236
Сап, анон. Столкнулся с необходимостью консольной компиляции в gcc флешлоадера. Примеры есть, вся хуйня есть. Но что-то бинарник большой, 37КБ при sram в 32. Вопрос: с оптимизацией -Os компилятся только те функции библиотек, которые я использую? Есть флаги, которые нахуй трут весь текст (в библиотеках много вывода лога по уарт)? Знаний о флагах компиляции мало.
62 189237
Сап, АРМщики.

Поделитесь опытом, кто запиливал общение между двумя контроллерами STM32 по SPI в режимах Master <-> Slave. Как я понял, в SPI, в отличие от того же уарта, нельзя отослать сразу несколько посылок, не дожидаясь ответа. Так как же наиболее правильно организовывать пересылку пакетов (штук десяти 16-битных посылок, например)? Как правильно прикрутить DMA чтобы не заниматься рутиной, пердолингом и синхронизацией на мастере?
63 189297
>>189237
Есть небольшой пример, но очень сложно мне сейчас проверить работоспособность, нет логического пробника и второго контроллера.
В программе Master, для тестов сейчас, я замкнул MOSI и MISO вроде данные передались в Reciever_SPIBuffer.
Попробуй протестировать вместе со slave
http://pastebin.com/2AeACbgB - Master
http://pastebin.com/dU3NaKTw - Slave

в Datasheet написано какие каналы DMA отвечают за какую периферию
64 189304
Сап, ARMач. Есть ли в природе модели c внешней шиной как у 8051. ARM 9000 видов, пока все пересмотришь. Может кто сталкивался?
65 189394
>>189297
Спасибо.
У меня поначалу не завелось по два DMA, вместо данных приходил мусор. Потом разобрался, оказалось, что обязательно надо было делать подтяжку при настройке пинов MOSI, MISO и SCK.
66 190031
Есть какая-нибудь миграция с асмы гцц на асму иара? Надо запустить пример на последнем, а читать документацию обоих очень лень
67 190036
>>189304
ОЗУ повесить? SMT32F4xx. Делал, взлетело.
68 190038
>>190031
Это вопрос не для двача.
69 190046
>>190031
во, блин, лентяй, асм асвоил для ARM, а документацию читать - лень
70 190050
>>190046

>асм асвоил для ARM


Да нихуя он не освоил. Он просто скопипастил то, что было.
71 190054
>>190052
Задача-то какая? От неё и танцуй.
72 190065
>>190050
Разбираюсь же, будьте вы людьми. На самом деле, нужно всего лишь правильно оформить секцию специфического старта, но копаться в талмудах линуксобояр крайне не хочется.
73 190069
>>190059
С MCS51 возможно ЕОТ в 50% случаев. ARM же ставит условием ТНН. Решать тебе.
74 190096
>>190069
а в чем нужно уметь разбираться чтоб тянки давали?
75 190099
>>189304
>>190036
Хватит любого STM32 в ста (и более) выводном корпусе — там FSMC штатно предусмотрен.

P.S. На 100-ногих, впрочем, придётся возиться с защёлками и мультиплексированием,
76 190102
>>190099
Согласен. Именно с 144 ног начиная.
77 190103
>>190096
В тянках.
78 190124
>>190069
нихуя не понял прорведеных аналогий
79 190128
Поцаны-ребята, если я умею в программирование мкк, что нужно читать, чтоб хотя бы понять принцип того как работает линукс на плисе, как засунуть туда линукс, куда сувать код и и прочие финтиклюшки.
80 190132
>>190128
т.е. ты хочешь на ПЛИС реализовать МК, а потом засунуть туда какой-нибудь uClinux?

Не слишком ли это сложно?
81 190133
>>190132
Я хочу понять как работает линукс на плис.
82 190136
>>190133
лучше разберись с ПЛИС, сначала, и пойми что это, как там реализовывают другие процессоры. ПЛИС это не МК, это, простыми словами, набор логических микросхем.
83 190258
Реально ли запилить на арме портативный плеер с замашками на хайфай?
84 190264
>>190258
это и на авр/ардуино можно запилить, если подключить внешний цап, но получится в любом случае хуита уровня 3-долларовых плееров с китая, так что смысл такое делать отсутствует
85 190351
>>190258
Можно попробовать использовать MP3 микросхему, например VS1053 там есть подключение по spi.
она будет у тебя для декодирования музыки. а для работы с flash и экраном у тебя будет МК.
86 190382
>>189236

> с оптимизацией -Os компилятся только те функции библиотек, которые я использую?


если при компиляции ты не сделал статическую линковку (напр. флаг -static), то да.

>Есть флаги, которые нахуй трут весь текст (в библиотеках много вывода лога по уарт)?


флагов точно нет. Возможно, существуют другие способы, но всё полностью зависит от библиотеки.

да и что-то я не понял

>Но что-то бинарник большой, 37КБ при sram в 32.


Ты собрался грузить весь бинарник в озу? Нахуя?
87 190392
>>190382
Бинарник флешлоадера жи
88 190418
Никто не делал на stm32f100 управление по CEC-HDMI? не поделитесь схемами подключения?
89 190426
>>190418

>CEC-HDMI


Потянет ли? ПЛИСы-то ели вытягивают
90 190430
>>190264
Почему отсутствует? Мне вон нравится мультибитные ЦАПы, но их в готовых решениях раз два и обчелся, и те сделаны из говна и палок, с ценником как у ушатаной иномарки.
>>190351

>VS1053


Почитал описание, годная штука, даже вроде как умеет во флак с плагинами, плюс имеет выход на внешний ЦАП. Как я понял с этой микрухой мне и арм особенно не нужен, подойдет какая нибудь средненькая ардуина, по крайней мере для них продаются платы расширения с этой микросхемой.
91 190433
>>190426
Потянет, потянет. СЕС это протокол управления устройстами по HDMI. Он поддерживается в stm32f100
92 190491
>>190128
так же как и на обычном контроллере. Сначала поебись с обычным МК и Линуксом. К слову сказать на Марсаходе есть цикл статей о том как впердолить линукс в ПЛИС.
93 190517
>>190491
А там срач был о том, что ПЛИС не для того придуманы? Красноглазые скоро на квантовые будут свою швабоду накатывать
94 190568
А поясните за серии STM32F2 и STM32F3. Чем они лучше/хуже F1 и F4 соответственно? Какие подводные камни? Наслышан о том, что в F3 куча каких-то проблем и багов, и поэтому эти серии редко используют. Так ли это?
95 190579
Аноны, выручайте. Есть старый ненужный планшетик Amazon kindle fire. Хочу использовать его в качестве полигона для изучения всякого низкоуровневого погроммирования. Подскажите с чего начать. Скомпилить туда себе u-boot? Сразу ядро линукса слишком хай-левел, как по мне? Если что, там стоит TI Omap 4430, флеш-память какая-то на 8 гигов и 512 оперативки DDR2. Сорри, если сумбурно изложил, полный нуб в кодинге под железо есть опыт андроид и веб разработки 3 года.
96 190702
>>190517
ну хуй его знает, система на кристалле жи наверное есть задачи где в ПЛИС надо запихать красногалзое поделие. Это иногда даже удобнее, если руки из правильного места растут все в одну ПЛИСку запихать. Хотя бы в учебных целях поебаться с этим надо. По мне некоторые вещи удобнее учить все таки на ПЛИСках, в контроллерах все спрятано в регистры, а когда реализуешь на ПЛИСке хотя бы какой нибудь интерфейс то уже действительно понимаешь что и как работает. Хотя сейчас есть же SOC микрухи с уже готовым процессорным ядром, и танцы с бубном не нужны.
97 190704
Кто нибудь знаком с такой хуйнёй как ENC28J60? зависает после некоторого времени работы в рандомное время может через два дня может через час, а может и сразу, что ей надо, вообще?
Говорят в интернете проверять флаги, ну проверяю
сделал задачу проверки флагов, один хер, могут флаги не поменяться, а адаптер виснет, индикаторы не горят, задачи vTask_uIP_periodic(void pvParameters) и vTask_uIP(void pvParameters) как крутятся, так и крутились

http://pastebin.com/T8K2yTqr - проверка флагов.

МК - STM32f103RCT6
уже давно проблема, искал в интернете, у народа тоже виснет, решений толковых не пишут
98 190737
>>190704
Самое мудрое - вести некий лог или выводить куда-либо состояние. Также, очевидно, срабатывает некое прерывание (программное или железное), при его срабатывании стоит зажечь индикатор например, чтобы хотя бы понять, куда идти
99 190738
>>190704
Алсо, причина может быть в банальном пине, который не переведён в z состояние.
100 191815
в стандартной STM32F100 при запуске таймера срабатывает прерывание, хотя срабатывать должно только через некоторое время при переполнении.
Может кто-то сталкивался? А то похоже предстоит долгое штудирование мануала по таймерам

[code]
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM15, ENABLE);
TIM15->PSC = 24000 - 1; // Настраиваем делитель что таймер тикал 1000 раз в секунду
TIM15->ARR = 1000 ; // Чтоб прерывание случалось 2 раза в секунду
TIM15->DIER |= TIM_DIER_UIE; //разрешаем прерывание от таймера

NVIC_EnableIRQ(TIM1_BRK_TIM15_IRQn); //Разрешение TIM6_DAC_IRQn прерывания
NVIC_SetPriority (TIM1_BRK_TIM15_IRQn, 4);

TIM16->CR1 |= TIM_CR1_CEN; // Начать отсчёт!
тут сразу срабатывает прерывание, хотя срабатывать должно только через секунду
[/code]
101 191821
>>191815
возможно при смене ARR оно вызывает прерывание
110 Кб, 839x600
102 191845
вобщем помогла смена таймера и магические строки в main!!!! при объявлении таймера

TIM4->EGR |= TIM_EGR_UG; // костыль чтобы не вызывалось прерывание при старте
TIM4->SR &= ~TIM_SR_UIF;
103 192103
>>191815

>


>TIM16->CR1 |= TIM_CR1_CEN; // Начать отсчёт!



Точно TIM16?
104 194168
Анонимусы, для работы с dma обязательно нужен некий ответный пин?
105 194174
>>194168

>для работы с dma обязательно нужен некий ответный пин?


Что такое ответный пин?
106 194311
>>187056 (OP)
Поясните за использование стандарной библиотеки периферии для стм32 это зашквар или нет, как паступают профи?
107 194312
>>194311

> паступают


поступают
108 194328
>>194311

паступают следующим образом, берут и используют

но библиотека в целом хуёвая, постоена по принцепу лижбы ета хуета хоть как нибудь работала, динамическая семантика, использование языка Си как Си с класами, активно используюется препроцесор
109 194363
>>194174
Не знаю. Некоторая вещь, которая обозначает конец трансфера или что-то типа этого
110 194953
Как выяснить частоту дескритизации ADC?

Таймер дёргает анус ADC, который начинает преобразование.
Частота ADC: 8 МГц
Частота МК и таймера: 32 МГц

#define ADCSAMPLESPERSEC 100000

Таймер считает до: 32000000 / 100000 = 320
111 194972
Вопрос не по теме. Где применяют и чем обусловлено использование таких АЦП?
http://www.mouser.com/ds/2/405/ads1263-710436.pdf
112 194980
>>194972

>Где применяют



>High-Resolution PLCs


>Temperature, Pressure Measurement


>Weigh Scales and Strain-Gauge Digitizers


>Panel Meters, Chart Recorders


>Analytical Instrumentation

113 197485
>>187871
>>187848
>>187483
>>187124
>>187198
Сап, раданы.

В общем, забил я тогда на проблему, она не была настолько глобальной, затикал временно от RTC и дело с концом. А вот дальше проблема лавинно начала нарастать.
Сейчас разобрался, т.к. вообще прифигел, настраивая ШИМ на таймерах.
Проблема была вот в чем:
Кварц микроконтроллера (HSE) у меня был 12 Мгц. По стандартной настройке в system_stm32f10x.c прописан параметр
PLLCLK = HSE * 9 = 72 MHz (там расчитано на то, что вы поставите кварц 8Мгц). И, это означает, реальная выдаваемая частота МК выходит 108Мгц, Т.к. внешний кварц (мой 12Мгц) умножается на множитель 9. Мне необходимо было просто поменять множитель PLL. c 9 на 6, что я и сделал.
Вот скрины, приятно смотреть.
114 197510
Какой ARM выбрать для швоего шпутника?
115 197517
>>197510
какого?
116 197531
>>187056 (OP)
Платы есть. Деньги есть.
Задач нет.
117 197533
>>197510
Любой cortex m3,тот у которого RAM больше. Флеша в 64...128 кб хватит на многое.
Более того, даже модем удастся закодить.
118 197540
>>197517
Шапускаю швой швабодный шпутник. Швабодный обмен информацией и вообще, швабодка. Основные будут на орбите геостационарной, а на средней и низкой будут ретрансляторы, которые смогут переключатся в основной режим. Почти, что, проект по обеспечению всей Земли интернетом.
119 206368
Анон, есть ли в природе русскоязычная документация по stm-овскому HAL? У меня мозг отказывается воспринимать это. Может начать изучение с авр-ок?
120 206370
>>206368

> есть ли в природе русскоязычная документация по stm-овскому HAL


Нет. Учи английский.
121 206375
>>197540
Тебе нужна радиационно-стойкая военка ,анон. Теги: НИИЭТ, Миландр, у этих товарищей есть кортексы
122 Кб, 2000x1086
122 206389
Хоть тыкните нуба в нормальное чтиво по этим вашим АРМ-кам. Тоска берет от чтения st.com в каком бреду они сайт делали?
123 206458
>>206389
В анус себе тыкни, мразь!
23 Кб, 640x640
124 208449
Заказал STM32F106C8T6 и ILI9340C, все правильно сделал?
125 208450
>>208449

> STM32F106C8T6


А чо за 106? На сайте ст только 105 и 107
126 208453
>>208449
Да, накати ведро или линукс
44 Кб, 640x494
127 208455
кто заказывал эту штуку? Поделитесь документаций пожалуйста
128 208485
>>208455
Ты хочешь сказать, что производитель нихрена в нет не выложил документацию? Что за плата, кстати?
129 208497
130 208505
>>208497
Дык на нем только ст-линк собран. А к чему ты будешь дисплей подключать?
131 208506
>>208505
Так там же есть SPI, в чем проблема то?
Околоньюфаг
132 208507
>>208505
Да и хлебница с проводами у меня есть.
133 208508
>>208506
103 шибко слаб, чтоб такой дисплай тянуть.
134 208513
>>208508
Думаю если ведруино справляется, значит и 103 справится
135 208515
>>208513
Статику с обновлением раз в секунду он потянет, но нахуя? Есть же f4-я серия.
189 Кб, 380x395
136 208518
>>208449
STM32429I-EVAL1 надо было заказывать, что ты как ребенок.
137 208522
>>208485
http://www.aliexpress.com/snapshot/6124307167.html?orderId=62576689192091
заказал, в комплекте не оказалось диска, забил. Сейчас захотелось поковыряться - а документации нигде нема. Китайцы пока молчат.
Единственное что нашел - http://www.haoyuelectronics.com//Download/ HY-MiniSTM32
Но там плата другая, без кнопок
138 208524
>>208518

два чаю господину с cortex m4f
но уже пора переходить на STM32F7
139 208526
>>208522
Вы больные люди. За 42 бакса купить такую хуергу без доков и поддержки.
За 25 можно купить нормальную 429zit или за 60 32F469IDISCOVERY
http://www.st.com/web/catalog/tools/FM116/CL1620/SC959/SS1532/LN1848/PF262395
140 208528
>>208522

судя по этой теме
http://forum.easyelectronics.ru/viewtopic.php?f=35&t=8595

ты купил какоето говнище, китайское, хуже ардуины
141 208536
>>208528
>>208526
Утешает что я покупал её до падения рубля, за 1,5к.
Эта норм? http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/LN1848/PF259090?s_searchtype=keyword

Думаю пока обойтись без тачскрина
142 208538
>>208536

> Думаю пока обойтись без тачскрина


Она с тачскрином. У меня такая. Пока слеганца пытаюсь освоить.
143 208716
>>208518
Бюджет не позволяет, как придет, попердолюсь и посмотрю что да как.
Может доллар снова будет 40
144 208783
>>208515
>>208508
Не пизди, делал для f103 c DMA, норм было. Можно было еще поизъебываться и скорость сделать еще выше, но не кайф было.
145 208784
>>208716

>Может доллар снова будет 40


Проснись ты обосрался на лекции.
146 208790
>>206389
Ищи на свой процессор Programming manual(технические характеристики, инструкции), Reference Manual (описание регистров), User Manual (библиотека SPL), Datasheet (распиновки, электрические характеристики).
Лучшего не найдешь. Вся эта поебота в инете - полный шлак:
1. GPIO бывают нескольких типов, а какие - погуглите.
2.вот здесь я приведу работу периферии X, бит а отвечает за то и это, b за это и то, с - да хуй знает, я не разобрался, но если не поставить не работает. Если хотите поуглите.
3.Дальше я поставлю комментарии в работе программы, как и что настраивается но что я не знаю, комментарии ставить не буду и умолчу. Надеюсь погуглите сами.
147 208961
>>208485

> Ты хочешь сказать, что производитель нихрена в нет не выложил документацию?


Добро пожаловать в Китай: http://fixled.ru/datasheet/HY-STM32_100P.pdf

>>208522
Сюда смотрел: https://kbiva.wordpress.com/2013/07/24/stm32f103vet6-microcontroller-development-board-hy-stm32-with-lcd-module/ ? Гражданин с такой же платой пердолится.
148 209044
Друзi! Шо вы думаете о моем желании приобрести новый продукт фирмы ST - STM32F469? У него MIPI интерфейс, что позволит подключать дисплейчики от китайфонов и прочих мобил. Осталось только дождаться пока доллар опустится хотя бы до 40, а то договасто, 20.56$ в дигикее.
149 209219
>>209044

>дорар по 40


не будет, максимум спустится до 50
150 210036
Очевидный оффтоп, но все же. Каким микроконтроллером можно делать примитивную обработку видео? Распознать QR, например.
151 210099
>>210036

> обработку видео


> Распознать QR


Я чот не понял, таки видео или распознавать изображение?
152 210104
>>210036
ПЛИС же
153 210251
Здесь спрошу, пожалуй.
JTAG везде один и тот же? Подойдет ли дешевый USB-JTAG, про который написано, что он для Altera (с Ебэя, ессно) для работы с остальными МК?
154 210296
155 210313
Анон, где ты берешь либы под C/C++? Балуюсь с ардуиной (которая арм), но кастрированные функции начали поднапрягать почти сразу.
156 210318
>>210251
не покупай такой - этих поддельных Альтер 10 штук разных видов в одинаковом корпусе. проблемы с поддержкой обеспечены, не говоря уже о работе в линуксе

рекомендую этот: http://ru.aliexpress.com/item/ST-Link-st-link-V2-for-STM8S-STM8L-STM32-Cortex-M0-Cortex-M3-SWIM-JTAG-SWD/32322884886.html
работает везде, умеет и JTAG и SWD, стоит столько же
157 210351
>>210318
Merci beaucoup, Antoin!
158 210446
>>210099
Разбивать видео на кадры и распознавать изображение на лету.
159 210565
>>210446
Вот, нашел такое: http://www.atmel.com/products/microcontrollers/arm/sam9m.aspx
15$ штука на али.
160 210626
>>210446
сделай сначала на пека + вебка, чтобы оценить глубину всех глубин
3,7 Мб, 1952x2592
161 210734
Есть плата STM32F429I-DISCO 180MHz и камера OV7720, которая подключена к ней по DCMI и которая, к сожалению, не умеет в jpeg сжатие, поэтому я делаю его на STM. Достал энкодер отсюда: https://github.com/mitchd/vt-fox-1 . Но он какой-то медленный, Y'CbCr фрейм 320x240 сжимает за 85мс, RGB565 с предварительным преобразованием в Y'CbCr за 105мс. Это нормально или можно все-таки значительно быстрее жать?
162 210739
>>187056 (OP)
Насколько трудно запилить себе сотовый на ведре?
163 210741
>>210739
а ведро это что?
164 210745
>>210734
Кажется неплохой результат. Прикинь сколько потребуется умножений для выполнения ДКП.
165 210773
>>210626
Хм, ну я под смартфон уже делал, хуле делов OpenCV-то оупен сорсная.
166 210774
>>210734
Впервые вижу, чтобы на пины крепились термоусадкой.
167 210797
>>210774
Там внутри термоусадки железка от разъема.
>>210745
Я надеялся, что будет 40-50мс, видел какой-то проект, где тоже на stm32f4 320x240 сжимают в jpeg и передают на пеку с 20фпс.
168 210805
Посоветуйте дешевую плату с ПЛИС и ARM одновременно.
169 210807
>>210797

>Я надеялся, что будет 40-50мс, видел какой-то проект, где тоже на stm32f4 320x240 сжимают в jpeg и передают на пеку с 20фпс.


Ну значит у тебя алгоритм неочень. Попробуй векторные операции заюзать.
170 210832
>>210807
Не знал, что у Cortex-M4 есть SIMD инструкции. Я писал в основном для 1986ВЕ1Т и совсем немного для STM32F1.
>>210797
Но все равно это SIMD совсем не то что в x86. Максимум что можно использовать - что-то вроде SMMLA (умножение со сложением).
Перемножений потребуется (320 240 16) * 3 = 3.6 млн. Не так уж много, но потом еще кодирование методом Хаффмана потребует довольно много операций (затрудняюсь оценить порядок).
1 Кб, 143x67
171 210963
Есть тут обладатели raspberri pi? Накатите пожалуйста https://www.offensive-security.com/kali-linux-arm-images/ и подключитеь по ssh с логином и паролем root\toor и скажите зайдет ли. Потому что везде написано что логин\пароль root\toor, но когда я ввожу это, у меня access denied, я уже заебался, не представляю что тут я делаю не так и я ли делаю.
172 211000
>>210773
OpenCV есть на микроконтроллерах, м?
173 211007
>>210832
Сложно что-то говорить не видя кода (да и видя тоже), проверь, грамотно ли ты используешь память: все буфера и массивы нужно по максимуму реюзать, избегая malloc-ов, не делаешь ли ты одну и ту же работу по 2 раза: по возможности кэшируй промежуточные вычисления.
174 211008
>>211000
Главное, что она есть на плюсах.
175 211009
>>211000

откуда вы лезите уёбки, уёбывайте в cortex-a тред и ибите свои распери пи
176 211016
>>211009
Но ведь это ARM-тред.
Или cortex-a уже не ARM?
177 211017
>>211008
Это как раз главный её недостаток.
Под прыщеARM opencv работает на ура, проверено™, а вот под Cortex-M4 я уже давно хочу её собрать да попробовать что там можно сделать на 256кб RAM, да никак руки не доходят.
178 211020
>>210832

>Не знал, что у Cortex-M4 есть SIMD инструкции


Более того, там есть даже DSP либа. Вот, нашел для себя, и для тебя заодно, там даже примеры есть:
http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
179 211021
>>211017
Да нет смысла ее собирать, она даже под мощные мобильные процы не оптимизирована для ARM. Опун сурс нужен, чтобы посмотреть детали реализации, скрытые константы там, удачные решения, и все то, чего нет в статьях. Библиотека эта громоздкая, и всегда она будет избыточной.
180 211023
>>211020
Ну DSP там вообще говоря так себе. Но за неимением лучшего - сойдет. Всяко лучше чем дрочевать на ванильному thumb2.
http://www.arm.com/files/pdf/DSPConceptsM4Presentation.pdf
1,1 Мб, 440x248
181 211025
>>211021

>Опун сурс нужен


>OpenCV - BSD license

182 211026
>>211021

>мощные мобильные процы


хихикс
183 211576
>>211026
какой-нибудь зверюга типа qualcom 810 вполне справляется с задачами обработки графики до 4К@60
184 211715
>>211576

> qualcom 810


Купил бы кит, если бы ссаный доллар не стоил так дорого.
https://www.intrinsyc.com/snapdragon-embedded-development-kits/snapdragon-810-development-kit/
185 212329
>>211715
Зачем он тебе?
186 212385
>>212329
Ну как бы уже считаю что дорос, а вообще мне интересны системы обработки графики и звука.
Вот такие процы тож гуд:
http://www.ti.com/ww/ru/prod_dsp.html
187 212393
>>212385
тебе не дадут на него сдк так как ты хер простой, для люмпенов только кортексы и кривой алвинер
188 212395
>>212393
Спизжу на работе.
Не для того ни для другого нет SDK в свободном доступе, ни на торрентах?
189 212405
>>212393
Нахуй тогда нужен проц который не поюзать без кривого уёбищного сдк?
Лучше пойду под balckfin'ы gcc конпелять.
190 212514
>>212395

> Не для того ни для другого нет SDK в свободном доступе, ни на торрентах?


Нет, разумеется. Дают только после подписки кучи всяких Non Heterosexuality Agreement, а поскольку в розницу (или даже мелким оптом) такие камни не продают, то и пиратить SDK никому не нужно.

>>212405

> Нахуй тогда нужен проц


Для белых людей из промышленности, а не для всяких гаражных ниггеров.
191 212519
>>212395
NDA - выебут всю контору, если спалят утечку.
192 212551
>>212514

>Non Heterosexuality Agreement


Тонко ты, лол. Не сразу вчитался.
Ладно. Но там же есть ссылка на чекаут через payal? Разве я не смогу купить одну штучку? Или смогу?
Вот ссылки на всякий их софт:
https://developer.qualcomm.com/download/software

Ты уверен, что ты не заблуждаешься? Даже Datasheet на их проц в свободном доступе есть.
193 212555
>>212551

даташыт неполный, софт в свободном доступе неполный
все огорожено анальными заборами
купить можешь, можешь скачать и наслаждаться анальными утехами если гаражный негр, полный сдк только для белых людей
1,3 Мб, 612x816
194 212556
>>187272
О, брофист.
У меня такая проблема, при включении тактирования порта А (любой пин) при прошивке Keil выдает ошибку и плата зависает, оживает только если стереть флеш в ST Visual Programmer. Это я обнаружил когда пытался в ЦАП. При этом все остальные порты работают нормально, заменю в коде например GPIOG на GPIOA - и все, пиздарики.
Не было у тебя такой проблемы? Я чего-то не понимаю? Плата бракованная?

только учусь в микроонтроллеры
195 212665
Где найти примеры на кортех3 на стм32? везде срачи spl vs hal. СПЛ говорят ст забросило, пилит ХАЛ. Но ХАЛ пиздец как перегружен. Есть нормальная книжка по программированию на CMSIS?
2,5 Мб, 1952x2592
196 212695
Не могу решить проблему с SPI. Есть ESP8266 с распаянным HSPI и код ArduCAM, котрый по SPI передает JPEG с камеры на ESP и стримит в веб. Я пытаюсь в цикле передавать с ESP на STM32 1 байт с задержкой в 1 сек, но он приходит с каким-то кривым сдвигом. Передаю 0xAA (10101010), а получаю:
1) 00101010
2) 00010101
3) 00001010
4) 10000101
5) 01000010
6) 10100001
7) 01010000
8) 10101000
9) 01010100 - этот байт приходит сразу же после 8-го, без задержки
Потом снова 1 и так по кругу.
197 212697
>>212556
судя по пику у тебя stm32f429i-disco, держи схему к нему, посмотри может какая периферия висит на тех ногах или еще что http://www.st.com/st-web-ui/static/active/en/resource/technical/layouts_and_diagrams/schematic_pack/stm32f429i-disco_sch.zip
198 212704
>>212697
Дело не в периферии я думаю, ибо ноги с периферийными диодами работают, а тут целый порт А крашит работу МК.
Вот рабочий код http://pastebin.com/ZcV4TYht
Вот код который выдает ошибку http://pastebin.com/NZJPycKk
Как видишь разница минимальна.

Ошибка "Cortex-M error. Cannot access target. Shutting down debug session."
199 212726
>>212665
Что за примеры тебе нужны?
200 212746
>>212704
на PA9, 10, 13, 14 висит ST-LINK собственно.
5 Кб, 194x190
201 212803
>>212746
Не совсем понял о чем ты, но проблема разрешилась - собрал с нуля проект с подключением вручную StdPeriph по одному мануалу с ютуба, теперь ошибки не выдает.
Жаль что в пятом кейле нету СтдПерифа в списке либ к плате по умолчанию Отсюда начался срач SPL vs HAL?
202 212851
>>212665
Отвращение к CMSIS было настолько сильно, что я в итоге написал свою либу с нуля по даташитам. Только то что мне нужно. Причем в процессе написания растет понимание, так что может когда и не в падлу будет этот смсись снова поковырять если очень припрет.
203 212854
>>212726
Стандартные: ГПИО, УАРТ, АЦП, возможно парочку примеров с ДМА, чтобы понять плюсы его использования. Может быть есть какой-то аппнот, где расписано использование всей этой переферии с примерами кода (так у АВР сделано, очень понравилось - сразу все вкурил)
204 212876
>>212854
Очень хороший примеры, правда на немецком языке, переведи на русский. А если не хочешь переводить с немецкого, возьми оттуда примеры и почитай USER MANUAL на микроконтроллер, там написано про SPL. Можно еще попробовать логическим анализатором посмотреть через симулятор, что там происходит.
http://www.diller-technologies.de/stm32.html

Я немецкого не знаю. Но с SPI+DMA мне это это помогло.
205 212878
>>212695
Что ты блядь куда передаешь? Твой пост нечитаем. Могу сказать, что интерфейс SPI простой как плуг, если ты нуб, то гугли статьи общего характера на хабре/гиктаймс, если какая-то конкретная проблема, то внятно всё опиши.
206 212960
>>212854
У ST есть же тонна аппнотов по STM32Fx буквально на все.
207 212963
>>212876
А что ты хочешь понять по DMA? В cлучае SPI ты с DMA напрямую не взаимодействуешь. То есть DMA регистры не нужно трогать. Просто устанавливаешь бит "включить DMA на tx rx". В отличие например от I2C или DAC. Хотя наверное cмсись от тебя эти подробности все равно прячет в своих хитровыебанных структурах. Аппнотов море на английском.
208 212965
>>212963
Вообще нет, фигню, сказал точно также для SPI нужно конфигурить, по крайней мере для f4

Two DMA requests are configured:
• DMA2_Stream2 for SPI1_RX: this stream is configured to be the highest priority in
order to serve in time the SPI1 received data, and transfer it from the SPI1_DR register
to the SRAM buffer.
• DMA2_Stream3 for SPI1_TX: this stream transfers data from the SRAM buffer to the
SPI1_DR register.

Вот документ нормальный:
http://www.st.com/web/en/resource/technical/document/application_note/DM00046011.pdf
209 213007
>>212963

>А что ты хочешь понять по DMA?


Да не, спасибо, я уже допетрил как оно работает. Я тогда еще подключал ILI9341. А это я просто кинул мануальчик где я научился работать с DMA.
210 213043
>>213007
>>213007
О кстати как раз хотел сказать, что на таких LCD типа 320x240 SPI заметно тормозит, и наверное DMA должно помочь.
211 213078
>>213043
aга, 12 фпс по spi без dma, 28 с dma
212 213345
>>213078
Ну из ILI9341 я много выжать не смог то ли контроллер нужен другой то ли дисплей, хз что. 0.7 без DMA 11-12 c DMA. stm32f103.
Кот вылизывал, по-всякому.
Выше, ну никак.
что ты юзал?
213 213389
>>213345
А чем вы fps меряете, аноны? Я когда с параллельным интерфейсом возился, то мерял только скорость полного заполнения экрана, что мне кажется самый медленный тест. У адофрукта демка рисует всякие линии да кружочки. Параллельный конечно просто летает, даже 8 бит. 2"4 240x320 fillscreen меняет цвет экрана мгновенно, даже для глаза незаметно. Так потом тоскливо с SPI only работать.
214 213422
>>213389
Включил заполнение экрана 1 кадр и запустил часовой таймер. При полном заполнении программа остановилась и показала время.
215 214235
>>187056 (OP)
АРМ - говно. 88 и 99 тебе.
216 214306
Наконец-то сделал флешлоадер для iar, через c-spy. Могу пояснить особенности компиляции и отладки в иаре
217 214363
какую иде использовать для новенькой stm32f4discovery?
Я заебекался пытаться добавить либу в CoIDE
218 214368
>>214363

gnu make

мхаха
219 214370
Сами ST советуют:

Development toolchain supporting the STM32F429
Discovery kit
• Altium: TASKING™ VX-Toolset
• Atollic: TrueSTUDIO
• IAR: EWARM
• Keil™: MDK-ARM

Что из них нормальное и не монстроподобное
220 214376
>>214370
Keil ноорм синтаксис имеет, сам лично в иаре работаю. На самом деле, берёшь любую иде, и настраиваешь компилятор/линковщик/ассемблер gcc, хули как маленький. У иара и кейла свои компиляторы, говорят, лучше, чем гцц собирают.
221 214377
>>214370

это всё сорта ардуины
222 214378
223 214379
>>214377
Иди погуляй придурок.
39 Кб, 480x360
224 214381
>>214379

cmsis дрочер хуже ардуинщега
225 214386
>>214378
а что для этого нужно установить? Keil MDK ARM? Какую версию?
226 214388
>>214381
Хуйню сказал и рад.
227 214389
>>214386
Да, скачай на сайте последнюю версию и всё.
Как и что делается, где настраивается говорят тут:
http://www.youtube.com/watch?v=Qqk81seMlHA
228 214394
>>214381
Хули доебался, долбоеб? В >2016 под арм писать на асме является верхом долбоебизма и никому не нужно. Во-вторых, подобия cmsis выпускают всякие атмелы, заточенные под себя; при разборе, эти библиотеки, на деле, являются тупо значениями регистров и всякой настройкой ДМА. Нахер городить свой огород, когда нормальные программисты сделали эффективную открытую реализацию? Короче, пошел нахуй, тебе не рады, въеби говна, школьник с авр
229 214397
>>214394
Поддерживаю.
Открой CMSIS - это набор структур и дефайнов.
230 214403
>>214394

> эффективную


> писать на асме является верхом долбоебизма


> когда нормальные программисты сделали эффективную открытую реализацию



мхаха, максимум ордуинщег

>въеби говна, школьник с авр



нет ты
231 214408
>>214403
>>214403

> писать на асме является верхом долбоебизма


сказано было для ARM

ты не добьешься быстрой работоспособности и отказоустойчивости программы если на пишешь на асме для ARM. Компилятор си сделает всё равно лучше и надежнее.
118 Кб, 590x683
232 214414
>>214408

>ты


>Компилятор си сделает



с хуя ли такие заявления? некоторые вещи вполне можно прописывать на асме и это вполне профессиональный приём, именно потомучто компилятор не всё может оптимизировать, и я могу написать оптимальней а ты нет, потомучто ты ардуинщег мхаха

нет ну НА САМОМ ДЕЛЕ я конечно потролил, cmsis получше всяких ордуин и я тоже пользуюсь этой поделкой криворуких индусов, но не потомучто она пиздец какая эффективная, а потомучто у меня нет времени переписывать нормально это говнище
233 214415
>>214414
Похоже, кто-то не знает директив компилятора для си, которые показывают, как оптимизировать код. Более того, любой армо-господин знает ассемблер. В-третьих, частенько многие задачи арм инициализации-обработки являются впихиванием значения х в адрес y, что, очевидно, на асме никак не улучшишь. Иди жпио настрой на уарт, долбоеб, сделай очередную миллиардную хуевую реализацию без стека.
234 214420
Интересно, а почему STM32F100 стоит 1 бакс, а F427 уже 15 баксов. В 15 раз больше
235 214422
>>214415

>директив компилятора для си



дерективы тебе непомогут долбоёбина, да можно писать на C хорошо и оптимально но если писать на asm хорошо то это будет всеравно быстрее

вот напрмер давай разъберём эту ситуацию

http://stackoverflow.com/questions/11508172/c-vs-assembler-vs-neon-performance

почему ассемблер всеравно быстрее чем C?
и почему пришлось танцевать с бубном что бы добится того чтобы код на C был близок к асемблерному?
236 214425
>>214422
А на ДСП вообще будет два такта. Короче, все ясно, ты на втором курсе и только начал асму изучать, уебывай.

И тот автор такой же профан, он не указал флаги компиляции хотя очевидная эплоблядь не знает таких слов и собирал, скорее всего, из-под дебуга.
237 214428
>>214425

не ДСП а NEON
а ты уже на третьем курсе? уже все флаги выучил?
ясно всё с тобой профессионал теперь уёбывай и немешай школьникам писать на асме в ардуиностудии
238 214429
Как в редакторе кейла пройти к определению переменной/функции?
Обычно зажимаешь контрл и щелкаешь мышкой по переменной/функции. Здесь не работает. Как?
221 Кб, 1280x1024
239 214434
И еще. Что оно хочет и как это установить?
240 214451
>>214414

>с хуя ли такие заявления?


С того что все давно написано и отлажено и не 1 раз.

> у меня нет времени переписывать нормально это говнище


И знаний. Охуеть, пришел какой-то и начал рассказывать что сейчас напишет CMSIS лучше, а ЕГО код на асме у него будет работать быстрее, ну может и будет, если светодиодом поморгать. А реализуй-ка ты там протокол - да обосрешься, переполнишь стек и схватишь HardFault.

>потролил


Сам использует, сам тролит. Да ты, походу, ошибся тематикой.
241 214453
>>214429
Я нажимаю ПКМ -> goto defenition, предварительно скомпилируй.
242 214486
>>214434
Значит еще нужна библа с указанным именем из графы Graphics Display (третья снизу в списке)
243 214498
Привет, что мне нужно чтобы замутить самодельный аккумулятор из 18650 батареек, выдающий 5v2a? Проще говоря, батарею для питания orange pi.
961 Кб, 1000x1550
244 214499
Вот эту залупу запитывать.
245 214501
>>214498
18650 батареек и залупа, которую запитывать.
246 214502
>>214363
CoIDE ацкое говно. То есть нормально сперва как легковесный эклипс. Но глюкавый сука. Так что юзаю эклипсе и хайль. Это две противоположности. Кайл использую для маленьких проектов, быстро поднял, запустил, потом закрыл нахуй. Эклипсь удобен, но монстр. А еще в кайле редактор полное безнадежно унылое говно. Зато отладчик супер. Кому что
247 214506
>>214501
А контроллер?
248 214507
>>214414
Двачую про cmsis. Жуткая хуйня но лучше ничего нет. К ней пилят всякие надстройки, что наверное заебись с тз самого писателя, так как это он же писал и знает что да так. А остальным придется еще и с его кастомной хуйней разбираться, и все равно вель придется рано или поздно в cmsis смотреть, потому что нихя это не black box. Я свое написал, но не надстройку, а по спекам. Но так делать тоже хуево, ибо "неправильно", только как хобби, а остальным блять марш cmsis или HAL учить.
249 214509
>>214498
>>214498
А батарейки то хорошие или китай. У них небось емкость маленькая да и при таком токе они наверняка будут разряжаться в момент. Может лучше LiPo??? Проблема правда, что нужно до 5v тогда регулировать

>>214506
Не понял, какой тебе еще контроллер? В смысле как 5v получить из твоих батареек? Они у тебя 3.7? Можно наверное еще один v регулятор, но хз может headroom не хватить если особенно подсядут. Надо пробовать. Главное не пытайся резисторами делить.
250 214562
Хуй знает, что мне нужно, так что заказал http://ru.aliexpress.com/item/1pcs-Arm-cortex-m3-stm32f103c8t6-stm32-core-board-development-board-Hot-Worldwide/32314951617.html
Оно прошивается напрямую, какие-то дополнительные программаторы не нужны?
Как запитать от 220В?
252 214584
>>214573

мда цынники даже на говноборды стали недемократичными, а если приобретать отдельно камни и обвязку а потом ЛУТить то наверно то на то и выйдет в итоге
253 214596
>>214422

>12X faster than assembler


Ассмеблешваль себя же затраллила. Там про профит от NEON операций.
254 214604
>>214573
>>214584
Ваня, не выёбывайся и слушай свою любимую песню «Валенки»: http://www.aliexpress.com/item/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino/32478120209.html
255 214606
>>214573
Что это за дичь с ценниками, купил у местных барыг клон стлинк v2 и f103 суммарно за 500р, тренируйся до усрачки. А еще продает cortex-M0 в корпусе TSSOP-14 за 50/штука, такая то вкуснятина.
256 214636
>>214606

> купил у местных барыг клон стлинк v2 и f103 суммарно за 500р


Мне кажется, что тут пиздежом завоняло на пол треда. Или покупал в бородатом 2013-14. Я вот дискавери ф429зит за 1100р купил, хуле.
257 214642
>>214573
1 471,48 руб ???

Вы че охуели за такие деньги покупать. Можно же микро ардуинку за копейки, стереть нахуй bootloader и просто использовать как арм. Своих можно кнопочек и лампочек навешать. Бакса 3 наверное на ебае.
66 Кб, 900x645
258 214644
>>214642

> ардуинку


> стереть нахуй bootloader


> и использовать как арм


Туда ли ты зашел, чепушок?
259 214645
>>214636
Ну ебта 429 хоть и дорого но вещь! И там небось дохуя наворотов, LCD, всякие датчики хуяччики годнота! А это сраная f103 там же нет нихуя и 1.5 тыщи???
260 214646
>>214645
Так долляр-то, по 75 нонче. 429 сегодня стоит 3183.95р https://www.terraelectronica.ru/catalog_info.php?CODE=1200422
А вот 103 у китайцев, я бы не брал, нуклео с программатером столько же стоит.
261 214647
>>214644
А что не так, я же не про атмегу говорю, а про stm32f103c8
http://www.ebay.com/itm/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino-DHUS-/321569700934?hash=item4adf0c3c46:g:~4QAAOSwosFUVEEU

Или там слово ардино тебя пугает, поэтому зашквар?
262 214649
>>214646
Да нормально. Я у китайцев брал просто ГОЛЫЕ чипы f103. Это пиздец я такого никогда не видел, они пришли голые корпуса, просо завернутые в ЦЕЛЛОФАН. Но ничего запаял, работает! А уж если платку взять за 3 бакса и к ней stlink программатор тоже стоит копейки. jlink чуть дороже. Пацаны вы че, охуели столько денег тратить.
263 214651
>>214646
Нихуя. Ну это пиздец это не жизнь.
264 214654
Я еще вот на основе таких свою борду делал в махараечном стиле

http://www.ebay.com/itm/1pcs-STM32F407VET6-STM32F407-STM32-LQFP100-32-bit-ARM-MCU-ST-IC-/321433106563?hash=item4ad6e7f883:g:QpcAAOSwcnpTnAp0

Это конечно не 429 но тоже годнота. И недорого.
Я никаким травлением не занимаюсь, а просто покупаю адаптеры QFN -> DIP + обычные дешевые платки и все на проводочках. Получается некрасивая но работоспособная махараечка за смешные деньги.
265 214660
>>214647

> А что не так, я же не про атмегу говорю, а про stm32f103c8


Всё так, просто Шеппель и слыхом не слыхал про нашу сингуль-хроматронную оптику эта платка никакого отношения к «ардуинам» не имеет, что бы там не писали китайские продавцы-сеошники на ебэе и алиэкспрессе.
266 214661
>>214654
Посмотрел в Терре (920), посмотрел на сайте st (5.645х76=430) и понял, что терра охуела вкрай.
267 214666
>>214660
Хуй знает, я ни разу рил ардуино не щупал, а что делает платку "ардуиной"? Я ее использовал исключительно как голый арм. Но там же usb разъем, наверное есть ардуинский bootloader и перемычки откуда загружаться и тп. Чего там принципиально нет, чтобы не считаться минимальной ардуинкой?
268 214668
>>214661
суки в баксах накручивают и сваливают на курс.
269 214670
>>214668
А нет, поторопился, на st 5.645 похоже вымышленная цена. Кликнул на digi и mouser - 10 баксов, плюс доставка.
270 214671
>>214670
Точнее не вымышленная, а оптовая (мин 10 тыс).
271 214675
>>214666

> Но там же usb разъем,


> наверное есть ардуинский bootloader


> перемычки откуда загружаться


Потому что у микроконтроллера есть USB2.0 на кристалле, а фабричный загрузчик есть у любого STM32: http://www.st.com/web/en/resource/technical/document/application_note/CD00167594.pdf

> Чего там принципиально нет, чтобы не считаться минимальной ардуинкой?


Того, что она не совместима (ни программно, ни аппаратно) с отладочными платами (включая клоны) от «Ардуино». Разве что вкрячить туда STM32Duino, но так любую плату на STM32 можно ардуиной назвать.
272 214709
>>214675

>Потому что у микроконтроллера есть USB2.0 на кристалле, а фабричный загрузчик есть у любого STM32



Ну разумеется, и почему на основе такого чипа можно нельзя сделать ардуино совместимую плату, прошив туда правильный загрузчик, например?

>не совместима (ни программно, ни аппаратно) с отладочными платами



Вот тут я ничего не могу сказать, так как никогда ардуино не пользовался. Что мешает энтузиастам запилить такую совместимость?
Есть же какие-то Maple IDE. И что значит несовместима на аппаратном уровне, в смысле всякие GPIO pins не совпадают?
То есть под совместимостью ты имеешь ввиду, чтобы можно было компилить и запускать сто тыщ мильонов существующих "скетчей" без каких либо изменений?
273 214712
>>214709
Я вот сюда посмотрел и примерно начал понимать про "совместимость", тут несколько категорий:
https://en.wikipedia.org/wiki/List_of_Arduino_boards_and_compatible_systems

Один из критериев видимо, чтобы shields работали. Тогда конечно, какая там совместимость.
274 214718
Короче я заморочился, сходил на github посмотрел на этот maple. Во-первых, оказывается эти китайские трехдолларовые платки с ебая и есть клоны maple, который видимо обанкротился. И понятно почему. Слишком там дохуя мороки, многое недоделано, надо напильником доводить и ПОНИМАТЬ что ты делаешь, так что ардуинщикам это нахуй не уперлось. А те кто знает что делает, нахуй ему вообще это говно, проще напрямую. Может быть есть какая крощечная ниша для в меру продвинутых ардуинщиков, которых пугает cmsis и им хочется продолжать использовать свой любимый язык ардуино и им не впадлу кое-где пины подправить и кроме нескольких либок типа wire и servo им ничего не надо. Эдакий sandbox недоарм без кайлов и cmsis.

Хуяссе, почему-то я был уверен что есть какое-то официальное хуилоново, или как его, для арм.
275 214722
>>214675

>Того, что она не совместима (ни программно, ни аппаратно) с отладочными платами (включая клоны) от «Ардуино»


Вапщето ардуино это просто надстройка над cmsis. Чего бы ему не быть совместимым?
276 214724
>>214499
Интересно, если сделать аналогичный DIY компьютер на ладони, во сколько обойдется?
277 214754
>>214724
Если есть опыт разводки скоростного говна - дохуя, если опыта нет - дохуя * 3+ сфейленных дизайна.
278 214763
>>214636
Пока воняет дерьмом из твоего ротешника. Но да, ценник немного поднялся. Теперь не 500, а 700р. Но и дорар на улице по 80, а не по 65.
279 214764
>>214763
Mur4ik, не нервничай, твои пацаны видимо остатки позапрошлогодние распродают.
281 214812
а как программируется stm8?
http://www.aliexpress.com/item/J34-Free-Shipping-ARM-STM8-Development-Board-Minimum-System-Board-STM8S103F3P6-Module-for-Arduino/32351992629.html?

чот не вижу двух контактов для swd
282 214817
>>214812
Через USB порт?
283 214829
>>214817
насколько я знаю, это невозможно. Либо SWD, либо JTAG. Но тут нет ни того ни другого
284 214835
>>214812

> а как программируется stm8?


Через SWIM
285 214870
Кто-нибудь имел дело с mbed? Что это вообще? Просто онлайн компилятор или сорт ардуины?
286 215139
>>214870

онлайн компилятор, офлайн компилятор можно прикрутить, онлайн сообщество

куча разных годных и неочень библиотек, попытка запилить HAL, в целом сорт ардуины, но поддерживается продвинутое байтоёбство, работа на прерываниях, использование DMA, даже есть RTOS

в целом годная штука, правдо разбор исходников в некоторых местах выявил сильно ардуино-индуский стиль програмирования

пользоваться можно, зависимости нет
287 215141
>>215139
Как по мне, лучше, чем официальные примеры от производителя, ничего не придумано.
288 215142
>>215139
не смог на нем писать для stm32f103, это вообще реально?
289 215143
>>215141

согласен, но примеры от производителя не охватывают все типы извращений которые можно проделывать с их восхитительными девайсами, и производители не быстро правят косяки котрые изредка имеею место быть, а в mbed можно нарыть различные извращения и воркароунды
290 215144
>>215142
на mbed?
291 215145
>>215142

сейчас проект разделился на new mbed OS и mbed Classic

в new mbed отношение ко всему что ниже cortex-M4 стало презрительным

а вот в mbed Classic есть поддержка
https://developer.mbed.org/platforms/ST-Nucleo-F103RB/
292 215150
>>215143
Это да. Один SPL от ST чего стоит уже (SPL обновляется быстрее чем документация) и файлов-то некоторых нет, о которых они пишут в своей документации, а примеры вообще, хер пойми как сделаны, файлы от примеров не подходят к SPL. Приходится править.
293 215185
Как дела у M3 и ниже с floating-point операциями?
294 215186
>>215185
грустно, много лишних тактов, которые можно потратить на более нужное дело
295 215190
>>215186

>более нужное дело


Например, мигнуть светодиодом.
296 215194
>>215190
Ну моргнуть светодиодом не такая уж и плохая затея, скажу я вам.
297 215209
>>215186
Сколько тактов? Неужели 32 бита ему мало.
298 215227
>>215209

зависит от операции, для операций с флоатами требуется изрядное байтоёбство и gcc умеет это делать очень эффективно, но увы издержки неизбежны

http://www.keil.com/forum/18033/floating-point-performance-on-cortex-m3/
299 215242
>>215139

>индуский стиль програмирования


cmsis передает привет участникам треда
300 215247
>>215242
Как пойти к вам работать?
301 215251
>>215242
Съеби
302 215256
Хочу к smc подключить дисплеи с параллельной шиной щитай, как оперативка. Какой нужен обвес на линии, чтобы все было заебись, не было наводок и скорость была норм? Текущая реализация блядь это пиздец с шиной 30 сантиметров вкупе с 220В фазой, мягко говоря, плохая, и при работе на дисплее вполне реальные галка.
Я не по схемоте, я программист, но блядь тот, кто будет это говно разрабатывать, в схемоте еще хуже меня.
303 215261
>>215256

>Я не по схемоте, я программист, но блядь тот, кто будет это говно разрабатывать, в схемоте еще хуже меня.


А конечное устройство получится еще хуже чем ты описал.
304 215306
>>215261
Первая вариация пиздец какая кривая, ты бы видел. Я не участвовал в разработке, я программировать сел
305 215312
>>215306
Ну ты бы рассказал поподробнее что надо-то именно. Тогда понятно будет, чем тебе помочь.
306 215383
>>215256
Вешай свой контроллер к дисплею, от него RS485 интерфейса микросхему, можно и без гальванической развязки (MAX485, ADM485), а потом через 485й управляй. Медленнее, но 220В рядом не так сильно сказываются. Либо сам кабель экранируй.
307 215403
>>215383

>RS485


А что если в шине сделать в 2 раза больше проводов, передавать дифференциальный сигнал, как на RS-485, а на обоих концах - дешифраторы на логике?
308 215419
>>215403
Тогда проще Ethernet прокинуть. У тебя какая скорость обновления экрана? Видео или просто информационный текст?
309 215442
>>215419
Не, я другой анон, предложил как версию.
310 215447
>>197531
>>197531
Часы собери)) или термометр
311 215569
>>215419
Информация, экран не нуждается в постоянном оьновлении. Я просто хотел видосики запилить, сливать буфер кадра по дма. Можно даже двойную буферизация, ороро.

Короче, будем перекатываться на миландровский ве91т, пущай развивается электроника в России. Я доволен, проц вполне норм
57 Кб, 300x250
312 215586
Народ, я тут помиргал светодиодом на АВР-ке, сделал энкодер с движка от дисковода и датчиков Холла из кулеров. В общем ненапряжно вник в контроллер и стало мне МАЛОВАТО функционала и я приобрел платку stm8l-discovery, дабы насладиться мощью АРМ. И ожидаемо соснул. Есть, что нибудь русское, почитать, поучить, а?
313 215589
>>215586
Блоги дихальта же, даташит и примеры стм, тысячи их, исходники, там много инфы
12 Кб, 390x470
314 215620
>>215586

>stm8l-discovery


>дабы насладиться мощью АРМ



сука ардуинщики и сюда протекли
315 215794
>>215586
Ты чтобы помигать светодиодом и поиграться с датчиками Холла ты покупаешь stm8l-discovery. Ну не пустая ли трата денег и сил? Лучше бери ATmega8 или ATtiny2313 для таких дел.
316 215796
>>214642
А стоит там атмега.
317 215817
>>215794
Тебя читать в школе так и не научили?

> я тут помиргал светодиодом на АВР-ке, сделал энкодер с движка от дисковода

979 Кб, 2166x1609
318 215821
>>215794
Это не "пустая трата", а подготовка к железному занавесу. Ща еще всяко разных контроллеров накуплю.
319 215846
>>208449
Бля, к нему ещё ST-Link нужно было брать?
320 215852
>>215569

> миландровский


Любопытно, не знал. Можешь пояснить за их микроконтроллеры. MDR32F9Q2I - это аналог STM32 M3? Совместим ли он в плане программирования, или нужны особые библиотеки программатор окрашенный в хохлому?
321 215955
>>215852
Касательно сравнения с конкурентами - хз, у меня опыта мало. В целом неплох: атмеловский sam3s и медленнее, и периферии поменьше. Ядро после пллов на 80мгц ебашит, всякие модные ДМА и прочее. Кристалл большой, да, раза в два больше площадь, чем у конкурентов, техпроцесс не как у тайванцев, зато есть ебучая военная и космическая приемка, метал-керкмические корпуса и позолота, выглядит внушительно.

Хал потихоньку пилят, уже мало чем отличается от конкурентов, есть примеры, собранные под кейл, иар, гцц, вся настройка и конфиги линковщика и флешлоадера, для безпроблемного переката с буржуйщины.

Еррата правда большая пиздец, но это просто слишком мало проц обкатан.

Помимо кортекса м3, есть м4ф и а1 - послабее, но и меньше/дешевле.
322 216052
>>215955

>Хал потихоньку пилят, уже мало чем отличается от конкурентов, есть примеры, собранные под кейл, иар, гцц, вся настройка и конфиги линковщика и флешлоадера, для безпроблемного переката с буржуйщины.


Оно в открытом доступе?
323 216076
>>216052
Да, у них на сайте полно
324 216145
>>215955

ну и где эту ебалу купить подешовке без смс?
325 216158
>>216145
Очевидно, что у них нет витрины с этим говном, все ориентировано на фирмы. Но есть путь: тупо написать в миландр, сказать, что ты сиартапер-эмбеддер, частный разработчик, и запросить образец. Возможно, даже бесплатный. Общайся, срсли
326 216169
>>216145
>>216158
Написал им, чтобы были поосторожней. Халявщики с Двачей решили запустить свои липкие лапки в электронные закрома Родины. Не бывать этому!
327 216314
>>216169
Это нормальная практика, знакомый кун получил в свое время образцы альтеровских ПЛИС, тупо написав им. А хули, надо же как-то свое говно двигать
328 216315
>>216314
Я пытался ST писать, хуй на рыло, TI сказали - лососнешь, пока почту корпоративную не покажешь. В общем - пидарасы.
329 216364
Анон, я впервые столкнулся с задачей, когда нужно сделать табличную функцию на 12кб. ARM Cortex-M3, 96кб оперативы. В принципе можно и там держать массив, ничего страшного же? Какие подводные камни?
330 216392
>>216364
Что такое "табличная функция"? Алсо, можешь держать и в оперативку, чому бы и нет?
331 216399
>>216364
никаких абсолютно, твой выбор. хоть во флеше, если read only, хоть в раме. и главное в отличие от всяких атмелов не нужно никаких безумных макросов. ибо hybrid harvard, linear address space, оперативка с 0x20..... флеш 0x80.... так же мапится в нуль
332 216400
>>216392
значения x-> f(x) записываются в таблицу, чтобы в рантайме не генерить, например синус, для скорости.
333 216412
>>216400
Ты вполне можешь в ПЗУ впихнуть, чому бы и нет? Правда, там возможен полуассемблер. И банально сделать константный массив, что лучше
334 216421
>>216399

>хоть во флеше, если read only


А на производительности это не скажется?
335 216432
>>216421
Алсо, я так понял, достаточно указать const, и капилятор сам все расположит гуда надо.
336 216483
>>187272
беру дамп пикселей с камеры в реальном времени и отправляю на комп через юарт. 405 камень, камера ov7670.
337 216484
>>212803

>Не совсем понял о чем ты


думаю, что ты переводишь весь порт во вход или выход а так как на нём висит СТЛИНК то он сразу же отваливается и программатор теряет связь с камнем.
338 216490
>>212556
У меня была потрясающая проблема, что волею случая пин дисплея был заведен на цлк-аут, а в конфигах тактировки забыл указать байпас мод, так как стоял генератор. В итоге при подключенном дисплее контролер подыхал, так как ожидал резонатор, а получил хуй.

>>187272
Поковыряй хал, посмотри конфигурацию скорости в соответствие с даташитом, сделай тупейшую портами ио инициализацию, и посмотри, как сбрасывается дисплей
339 216516
>>216483
Какой размер изображения и формат, rgb565? Кодируешь в JPEG? Какой фпс?
91 Кб, 2048x1152
340 216673
Спешу поделиться покупкой с уважаемыми разработчиками.
sage 341 216682
>>216673

>Keil


>ulink



нахуя это всё нужно?
342 216707
>>216682
Действительно, зачем? Где ты раньше-то был, я бы 100 тысяч конторе сэкономил.
343 217061
>>187438

>а настроить управление окончания трансфера нельзя


ну да блять, конечно. Ищи внимательнее что-то типа Transfer size, то есть сколько элементов нужно переслать
31 Кб, 422x600
344 217071
Сап анчоусы. Пытаюсь настроить свою stm32f429 на PLL от HSE, прошу советов мудрых inb4 сосни-ка хуйца

От HSE работает.
От PLL с таким кодом http://pastebin.com/7m1XzuyF не работает.
Внешний кварц 8 Мгц, PLL=(HSEPLLN)/(PLLMPLLP)
По идее итоговая должна стать 116Мгц

Чому не работает?
345 217072
>>217071

>PLL=(HSE x PLLN)/(PLLM x PLLP)


fix
91 Кб, 1135x850
346 217087
>>217071
Куб выдал такой код - http://pastebin.com/31UDg5gN. С твоим не сравнивал, по картинке вроде 116
347 217090
>>217087
У меня плата почему-то зависает. Мб дело в том что флеш не успевает за такой частотой, но на сайтах где идет базовое описание PLL ни слова об этом.
348 217091
>>217090

> флеш не успевает за такой частотой


У меня на 180 нормально работает.
349 217117
350 217165
>>216516
размер изображения 120х176 (20760 пикселей)
формат YUV
не кодирую
фпс 6,5 к/с
собираюсь распознавать изображения
200x100
351 217247
Счастливые владельцы stm32f429i-discovery, у вас при рисовании через emWin работает многослойное отображение?
У меня почему-то не работает 0 слой, только 1.

GUI_SelectLayer(0);
GUI_SetBkColor(GUI_LIGHTGREEN);
GUI_Clear();

GUI_SelectLayer(1);
GUI_SetBkColor(GUI_TRANSPARENT);
GUI_Clear();

Должно выдавать зеленый экран, выдает заставку экрана.
Судя по документации https://www.segger.com/emwin-multi-layer-multi-display-support.html
оно таки должно работать
352 217269
>>217247

> выдает заставку экрана


Что сие значит?
353 217281
>>217269
ну видимо все слои прозрачные, то контроллер дисплея рисует дефолтную картинку
354 217311
>>217281

> GUI_Clear();


> рисует дефолтную картинку


Чота я совсем не понял. Закинул я свою 429 в дальний угол. Когда получу чорный пояс по сям, достану.
355 217317
>>217311
GUI_Clear();
Судя по документации, оно закрашивает весь экран цветом фона
356 217335
Аналогичная проблема с буферами. Не работает. Нормальных примеров нет
49 Кб, 436x415
357 217341
>>217335

непонял, а какие проблемы с буферами?
358 217358
>>217341
с буферами для рисования. Тоже не работают и хз как их использовать
359 217432
>>217341
Мне бы такие.
360 217452
>>217247
Ну тебя в пизду! Я только спать начал нормально, а тут опять полез в мануалы по этому стм-овскому пиздецу.
361 217483
И какого черта тестовые примеры сделаны размером в 26000 строк и содержат кучу вызовов специфических функций, что я не могу это скомпилировать
362 217485
>>217483
Патамушта!
мимо >>217311 - анон
363 217488
>>217247
Не видел код, но вангую, что отрисовка подобна фотошопу: есть слои, есть текущий слой, в котором ты выполняешь граф. операции. Ищи команду смены слоя
364 217489
Я >>217488 в глаза ебусь, не заметил
365 217499
Господа, Raspberry Pi здесь обсуждают или где?
366 217506
>>217499
Не здесь
22 Кб, 431x516
367 217522
>>217506
А где?
Почему у ардуинохолопов есть свой тред, а малинкобогов нет?
368 217529
>>217522
Потому что малинка - готовый компьютер.
370 217536
>>217522
киньте ссыль на ардуино тред, плиз.
371 217548
>>217536

> совсем охуели шкальники


https://2ch.hk/ra/res/210443.html (М)
372 217584
>>217530
Благодарю.
373 217607
Умножение int на float, результат int.
Если float представить как int/int что будет быстрее.
int=intfloat
или
int=int
int/int
374 217609
>>217607
Ебучая разметка, знак умножения там.

int=int × float
или
int=int × int/int
375 217617
>>217609
Какой-то ты хуевый, наверное, съеби.

Так-то если брать ассемблер, то на х86 на фпу очевидный инт на флоат, если брать архитектуру с хитровыебанными командами, то очевидное использование команд, наиболее подходящих. Если фпу нет, то ебаный флоат будет каким-то пидорством представлен
376 217667
>>217071
Разобрался. Просто диод на плате на частоте порта выше 32 Мгц не работает. Прескейлы не помогают.
92 Кб, 575x312
377 217671
>>217667
Разобрался с прескейлами, как днище записывал не в тот регистр, хех. Но все равно не заработало, пока задержку флеша не сделал, хз как у >>217091 на 180 флеш без задержек работал.
378 217705
>>217671

> флеш без задержек работал.


Ты про какой флеш? Запаянный на плате или микроконтроллерный?
379 217741
>>217705
Встроенный же, наверно микроконтроллерный?
В референс мануале задержки описаны в параграфе "Embedded flash", тобиш встроенный.
380 217813
>>217671

> хз как у >>217091 на 180 флеш без задержек работал.


Да я в такие глубины-глубин и не лез еще, дефолтное демо работает на 180 и не глючит.
381 217855
>>217813
Так это камень на 180 летает, на флеш через делитель же идет. Но даже с ним больше 30 МГц надо задержки вводить.
47 Кб, 606x462
382 217867
>>217855
Ну хуй его знает
82 Кб, 807x518
383 217889
>>217867
Он написал про 180 без задержек - такое возможно только если камень на 180, на флеш через делитель (который AHB prescaler). Можно и на 180 гонять флешь, но без задержек он не будет работать.
384 218039
>>217889
Т.е. SysClk 180, камень тоже на HCLK работает, не заметил.
Но в любом случае вышенаписанное в силе.
385 218147
ребят, помогите. отладочная плата stm32vl discovery. не работает ацп. написал программу, которая читает напряжение с потенциометра и шимом регулирует яркость светодиода на основе этих значений. тупо не заходит в прерывания ацп. гляньте код и скажите в чем проблема

void init_ADC()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
ADC_reg.ADC_ContinuousConvMode=DISABLE;
ADC_reg.ADC_NbrOfChannel=1;
ADC_reg.ADC_Mode=ADC_Mode_Independent;
ADC_reg.ADC_ScanConvMode=DISABLE;
ADC_Init(ADC1,&ADC_reg);
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5);
}

int main(void)
{

init_GPIO();
init_Timer ();
init_PWM ();
init_ADC();
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM4, ENABLE);
ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
ADC_Cmd(ADC1,ENABLE);

ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));

NVIC_EnableIRQ(TIM4_IRQn);
NVIC_EnableIRQ(ADC1_IRQn);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(1)
{

}
}
385 218147
ребят, помогите. отладочная плата stm32vl discovery. не работает ацп. написал программу, которая читает напряжение с потенциометра и шимом регулирует яркость светодиода на основе этих значений. тупо не заходит в прерывания ацп. гляньте код и скажите в чем проблема

void init_ADC()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
ADC_reg.ADC_ContinuousConvMode=DISABLE;
ADC_reg.ADC_NbrOfChannel=1;
ADC_reg.ADC_Mode=ADC_Mode_Independent;
ADC_reg.ADC_ScanConvMode=DISABLE;
ADC_Init(ADC1,&ADC_reg);
ADC_RegularChannelConfig(ADC1, ADC_Channel_1, 1, ADC_SampleTime_239Cycles5);
}

int main(void)
{

init_GPIO();
init_Timer ();
init_PWM ();
init_ADC();
TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM4, ENABLE);
ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
ADC_Cmd(ADC1,ENABLE);

ADC_ResetCalibration(ADC1);
while (ADC_GetResetCalibrationStatus(ADC1));
ADC_StartCalibration(ADC1);
while (ADC_GetCalibrationStatus(ADC1));

NVIC_EnableIRQ(TIM4_IRQn);
NVIC_EnableIRQ(ADC1_IRQn);
ADC_SoftwareStartConvCmd(ADC1, ENABLE);
while(1)
{

}
}
386 218176
>>218147
попробуй повторить код из онлайн-мануала. У меня все работало, даже целых 2 штуки одновременно
387 218448
Аноны выручайте.
СИтуация такая. Я пока нуб в микроконтроллерах, но хочу научиться и мой, скажем так, наставник посоветовал изучить простенькие китайские микроконтроллеры для игрушек всяких и тд. Не просто так, я буду пытаться разрабатывать всякую сувенирную продукцию и поэтому нужен дешевый контроллер.
Что посоветуете?
388 218449
>>218448
Ну а какая цель, что должно быть в конечном результате?
389 218450
>>218449
по сути один котроллер под разные цели.
Для начала хотелось бы запилить что-то типа китайского фонаря который будет реагировать на движение-при раскачивании будет издавать звук +реагировать на уровень освещенности и изменять режим подсветки светодиодов-переливаться, мигать и тд
390 218451
Анон, я пишу под ARMы уже года три или четыре, но в основном какое-то неинтересное говно. Сейчас на текущем месте работы тухляк, и я подумываю о том, чтобы съебать в другое место. Смотрю требования к разработчикам ПО для встраиваемых систем, а там требуют знания принципов RTOS, знание архитектуры ARM7/9/11 ли других процов и т.д. Что вы можете посоветовать почитать хотя бы по архитектуре ARM7, например? Так как не требовалось, я много чего до сих пор не знаю. Всякие MMU, защищенные режимы и т.д., зачем это нужно и как используется. Ну и по RTOS то же самое.
Где-то еще и пишут в обязанностях разработку драйверов для устройств, вот это для меня вообще темный лес.
391 218452
>>218450
Скажем так, если ты не собираешься выходить выше уровня микроволновок, стиралок, сувениров, детских игрушек - то выбирай Sonix (Sn8p2501bpb), AVR (tiny13, atmega16, tiny2313).
Если ты хочешь двигаться дальше в этом направлении просто поверхностно изучи AVR, мигни диодиком, свяжись по USART с компом, пойми как работает сам контроллер и изучи асм. Это для меня было 3-4 месяца.
Дальше изучай ARM, например Cortex-m3 это ST (stm32f10x) или NXP (LPC176x), таким образом будешь двигаться по ARM, и дойдешь до более совершенных армов, т.к. базовая архитектура будет ясна.
392 218454
>>218452
от всей души благодарю)
393 218455
>>218454
Да, и хочу сказать что изучая такие архитектуры как sonix, pic, avr, не забывай что они все имеют свою архитектуру, и каждый раз пересаживаясь с одного проприетарного контроллера на другой тебе надо изучать полностью его архитектуру, т.к. они совершенно разные, изучая NXP после ST у меня больших проблем не взоникло, а вот ST после AVR - честно говоря, я не сразу въехал (ну еще учитывая что он сам по себе сложнее).
вот тут пишут:
>>188758
394 218460
>>218455
а есть какая-нибудь общая обзорная статья по ним? Нашел одну, но она 2011 года и уже може быть неактуальна
395 218466
>>218460
Ты про кого именно?
396 218467
>>218466
вообще в целом небольшой обзор основных мк по ценам, производительности и тд
397 218469
>>218467
Ты сначала возьми AVR, то для чего ты описал, МК вполне подойдет. Все, о чем я тебе писал стоит от 15р. до 150р. для китайского фонаря пойдет AVR tiny13, atmega16, tiny2313, для последнего есть документация в инете на русском, а все эти три МК отличаются периферией и количеством ног. Все равно тебе нужны будут внешние датчики.
398 218476
>>218451
Я со стажем в год и без знания ртоса и ядра пишу драйвера, так что не ссы.
399 218477
Господа, как правильно гуглить библиотеки, реальные или хотя бы на метакоде, с описанными структурами регистров и базовыми функциями? Гугл запрос типа x library, x source нечего не дает
400 218479
>>218476
Я даже примерно не представляю, как это делать и что для этого нужно знать.
401 218501
>>218477
reference manual гугли, придурок.
402 218520
>>218501
Пошел нахуй, уеба
25 Кб, 420x420
403 218527
>>218520
Нормально жи общались!? Какого хуя агришься?
84 Кб, 725x960
404 218529
Что можно МАКСИМАЛЬНОКРУТОЕ собрать из Ф4 Дискавери?
Не траль)
405 218530
>>218529
Шилд для ардуинки.
406 218538
>>218529
Я буду умную избу собирать. Когда С доучу. Тока дисплейчик на 7" поменяю.
407 218540
>>218538

умная изба с курьими ножками? чтобы пугать богатырей залётных? хитро
408 218543
>>218540
Какие богатыри, какие ножки, наркоман? Ты не знаешь, что есть исконно русское жилище - изба?
409 218554
>>218543

лучше в хате жить чем в такой холупе для халопов
1,2 Мб, 2592x1456
410 218561
>>218554
И какую ты хату считаешь нормальной? У нас тут лес дешевый (на самом деле нет), а кирпич дорогой. Вот и приходится в таких жить. Я правда отбился от рук, не хочу жить как диды завещали, и въебал себе котел.
99 Кб, 640x360
411 218575
>>218530
>>218538
сёма пытается шутить))
412 218579
>>218575
Я не шучу, я реально в избе живу. Чо смешного то? Я реально собираюсь автоматизировать отопление, работу наружного освещения, охрану, вентиляцию, контроль насоса скважинного, дренажи и т.д. Да и не с дискавери буду делать, а на стм32ф429зит, а дисплейчик подключать через SPI, чтоб ноги не тратить на параллельный ргб. Так что пройди нахуй, дорогой анонимас.
413 218583
>>218554
Это в той, где стены говном обмазывают?
414 218585
>>218579

>Так что пройди нахуй, дорогой анонимас.


Я не он, но пообщаться готов.
Ты даже себе не представляешь, как ты себе голову ебёшь в данный момент.
Ты ведь ещё не понимаешь, что каждая из твоих систем (отопление, наружное освещение, охрана и т.п.) должны быть независимыми и надёжными, а вместе их может объединять МОЗГ, но он должен жить отдельно, чтобы при нарушении работы не вешать всё вокруг. На одном 32F4 ты этого делать явно не будешь, ибо дорого...
415 218588
>>218585

> ибо дорого...


Но я уже приобрел его. И не дорого, 920р.
Конечно я не буду все вешать на один контроллер. Он и будет МОЗГОМ, а всю чОрную работу будет делать мелочевка по 5 копеек, типа stm8s003k, stm32f103, stm32f401, stm8s003f, атмеги в конце-концов.
416 218589
>>218588

>stm8


Нахуй.

>stm32f103


Дороговато.

>атмеги


ДА НУ ЕЁ НАХУЙ!

Советую отличный stm32f030... Его хватит на любую автономку из перечисленных.

Осталось решить, как организовать каналы связи. Ваши мысли?
417 218596
>>218589
Ок. Выкладываю всю подноготную. Я старый-престарый хуй, во время строительства своего домишки, решил максимально его автоматизировать, чтоб на пенсии жмакать в экран своего говнопланшета, а у бабки вода горячая в душе отключалась бы. Радиогубительством занимался в далеком детстве, почти собрал с одноклассником компуктер "Радио-86РК", добывая на него детали из станков ЧПУ производимых нашим местным военным заводом, за что были пойманы и в виду малолетства и чистосердечного раскаяния были осуждены на 5 лет условно с выплатой родителями по 150к тех еще рублей( это я к тому, что не жалейте денег на личинусовские хобби, а то они пойдут разбирать Эльбрусы за 400к). Долго не держал в руках паяльник (лет 20), а тут решил тряхнуть стариком, купил ебучий дискавери и все пошло кувырком. Чем дальше я лез в эти дебри, тем больше понимал насколько отстал и дабы не объебаться с инфраструктурой, напихал в свою избу 2 упаковки витухи cat 5e. Так что радиоинтерфейсами страдать не буду, а использую чота вроде rs485. Вот.
418 218601
>>218589

> >stm8


> Нахуй.



Почему же? Например в кессоне скважинном, мне надо померить температуру, давление в экспансомате, записать это на флешь и заснуть пока старшой не попросит ему отдать эти данные. Зачем туда ARM городить? Я в терре stm8l151c4 жменю на 300р купил, надо же их использовать.
419 218604
>>218601

> Почему же?


Потому что для STM8 только три с половиной компилятора. Один из которых SDCC, а остальное с калечными пропиертарными лицензиями.
420 218605
>>218604
Cosmic 32к бесплатно компилит.
421 218607
>>218561

> сравнивает кирпич с бревном


> считает, что кирпич лучше


Не лучше! У меня охрененный деревянный дом, дед построил в 50х. Есть печь, руssкая, которая и как плита, и как ебаная батарея, и как рассадник котов. Главное, нужно следить и ухаживать за домом, а также жить в нем
422 218608
>>218596

>rs485


16c550, фуллдуплекс, xon/xoff?
423 218610
>>218607
Я сейчас, пока строюсь, живу в избе примерно 1905 года постройки. Это пздц, хотя за 5 (планировалось пару лет, но йобанные деньги не хотят зарабатываться в нужном количестве) лет привык.
>>218608
Возможно, я пока как ребенок, тыкаю примеры, вдупляюсь в этот мозголомный HAL, схемотехникой пока не занимался.
424 219475
>>187056 (OP)
посоветуй годной литературы по ARM и с чего начать изучение, а то через месяц придется работать с этим делом, а я только AVR изучал
425 219531
>>219475
Конкретно по stm32 "Мартин М. Инсайдерское руководство по STM32", по остальным анон подскажет.
426 219565
>>219531
Спасибо за книгу, я и не мог подумать, что по СТМ-ам что-то подобное есть.
1,1 Мб, 3264x2448
427 219784
Вкачусь в тхреад.
Где найти подобные гайды dmilvdv.narod.ru/AT91SAM9260/intro.html по адаптации линукса под конкрентый контроллер, про BSP, DeviceTree, BoardFile и прочие необходимые вещи?
Правую железку не заводил еще - как минимум DataFlash через sam-ba можно прошить-зачитать - уже что-то, как и работа phy. Сношаю гугол как bootstrap и u-boot готовить и не особо то успешно.
На левой - только из STM32-Cube FreeRTOS + LwIP запущен - только на пинги отвечает.
428 219785
>>219565
Да незачто, пожалуйста.
1007 Кб, webm,
480x480
429 219793
>>219784
А-а-а-а-ааааааааааааааа! Ебать тебе делать нехуй!
430 219841
>>219784
Я скоро этим займусь. Весь низ изучен, суть тоже, загрузчик изучен, флешлоадер написан.
431 219846
Не пошел в Аудуино так как там вообще уровень дтского сада. Спрошу тут. Что можно сотворить на arm, конкуренто способное и прибыльное?
Надоело мигать светодиодом оброабатывать видоопоток и сигналы с ультразвуковых датчиков дальность и угол излучателя, фурье, подобность функций и прочий шлак
432 219862
>>219793
Что это?
433 219866
>>219862
мультивибратор
434 220231
>>219846
Изучи рынок электронных приборов, сделай свой дешевле конкурентов и продавай
435 220328
Какой нехороший человек делал bootstrap-1.6?
Мало того что там свежая версия компилятора вклеивает 24 байта своего мусора с указанием кем и когда было скомпилено, так еще и в 6 векторе пишет 0 длину/заглушку-вектор и загрузчик только 32 байта бутстрапа читает и в sam-ba вываливается. Приходится вручную править собранный бинарник чтобы указать независимо от реального размера читать 4К кода.
Завис сегодня на запуске u-boot + dm9161 в
MII. Физика верная, линк ловит на 100, MDIO-MDC работает, в ответ тишина, на аппаратном лупбэке видно что что-то шлет, когда компом цепляюсь - ничего не могу поймать.
U-Boot> setenv ethaddr 02:03:04:85:06:07
U-Boot> setenv ipaddr 172.16.0.89
U-Boot> ping 172.16.0.89
macb0: Starting autonegotiation...
macb0: Autonegotiation timed out (status=0x7849)
macb0: link down (status: 0x7849)
ping failed; host 172.16.0.89 is not alive
U-Boot> <INTERRUPT>
U-Boot> ping 172.16.0.89
macb0: Starting autonegotiation...
macb0: Autonegotiation complete
macb0: link up, 100Mbps full-duplex (lpa: 0xc5e1)
Using macb0 device
Abort
ping failed; host 172.16.0.89 is not alive

>>219784
436 220670
Анон есть какая-нибудь инфа по Apple A9? Это уникальная разработка эпл? полный клон Cortex
437 220742
>>220328
Проверь размер кучи (heap), анон, в файле конфига линкера.
>>220670
Кортекс - ядро арма, которое покупают у внезапно ARM ltd. Вокруг типовой обвес, разводка и производство, все м настолько тупо, что может любой студент /ра/дист сделать.

У нас в России аж две мегаизвестных компании также делают процы на м3 и м4ф. В перспективах ашки, но пока дораха.
438 220793
>>220742

>студент


из Гарварда. И назвать AVR.
439 220978
>>220742
Мимо.
arm-linux-gnueabi-gcc -nostartfiles -nostdlib -Wl,-Map=dataflash_at91sam9260ek.map,--cref -T ../../../elf32-littlearm.lds -Ttext 0x200000 -n -o dataflash_at91sam9260ek.elf crt0_gnu.o at91sam9260ek.o main.o gpio.o pmc.o debug.o sdramc.o dataflash.o _udivsi3.o _umodsi3.o div0.o udiv.o string.o
arm-linux-gnueabi-objcopy --strip-debug --strip-unneeded dataflash_at91sam9260ek.elf -O binary dataflash_at91sam9260ek.bin
2.1M Mar 22 04:38 dataflash_at91sam9260ek.bin
440 220979
There are 18 section headers, starting at offset 0x7c8c:

Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .note.gnu.build-i NOTE 00000000 0000d4 000024 00 A 0 0 4
[ 2] .text PROGBITS 00200000 000100 000e00 00 AX 0 0 16
[ 3] .text.startup PROGBITS 00200e00 000f00 000038 00 AX 0 0 4
[ 4] .bss NOBITS 00200e38 000f38 000000 00 WA 0 0 1
[ 5] .ARM.attributes ARM_ATTRIBUTES 00000000 000f38 00002e 00 0 0 1

.note.gnu.build-i - эта гадость мешала, а так - оно верно все собирало, за исключением одного
00000000 04 00 00 00 14 00 00 00 03 00 00 00 47 4e 55 00 |............GNU.|
00000010 29 58 18 26 e9 db 53 09 5c 97 05 09 c8 dd 49 6a |)X.&..S.\.....Ij|
00000020 e7 2f f9 51 00 00 00 00 00 00 00 00 00 00 00 00 |./.Q............|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00200000 0d 00 00 ea 05 00 00 ea 05 00 00 ea 05 00 00 ea |................|
00200010 05 00 00 ea 05 00 00 ea 05 00 00 ea 05 00 00 ea |................|
00200020 fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea |................|
00200030 fe ff ff ea fe ff ff ea fe ff ff ea d4 d0 9f e5 |................|

по адресу 0х14(00200014) - полная хуита вместо FF 0F 00 00 - поэтому загрузчик ничего не читал.

Сейчас проблемка с I2C - банальные LM75 и 24C04 невидятся.

Может есть профи которые подскажут как завести такую память ?
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x44
nand: Micron MT29F32G08CBADA3W
nand: 4096MiB, MLC, page size: 8192, OOB size: 744
nand: No oob scheme defined for oobsize 744
------------[ cut here ]------------
kernel BUG at drivers/mtd/nand/nand_base.c:3925!

Сам камень(at91sam9260) по даташиту держит память до 16гБит, а тут в 2 раза больше + страницы по 8 КБ.
Мелкую память оно нормально хавает, но мелких флешек откуда ее сдернуть в промышленных масштабах нету.
Jan 1 00:01:01 deb kernel: nand: device found, Manufacturer ID: 0xec, Chip ID: 0xdc
Jan 1 00:01:01 deb kernel: nand: Samsung NAND 512MiB 3,3V 8-bit
Jan 1 00:01:01 deb kernel: nand: 512MiB, SLC, page size: 2048, OOB size: 64
Jan 1 00:01:01 deb kernel: Bad block table found at page 262080, version 0x01
440 220979
There are 18 section headers, starting at offset 0x7c8c:

Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .note.gnu.build-i NOTE 00000000 0000d4 000024 00 A 0 0 4
[ 2] .text PROGBITS 00200000 000100 000e00 00 AX 0 0 16
[ 3] .text.startup PROGBITS 00200e00 000f00 000038 00 AX 0 0 4
[ 4] .bss NOBITS 00200e38 000f38 000000 00 WA 0 0 1
[ 5] .ARM.attributes ARM_ATTRIBUTES 00000000 000f38 00002e 00 0 0 1

.note.gnu.build-i - эта гадость мешала, а так - оно верно все собирало, за исключением одного
00000000 04 00 00 00 14 00 00 00 03 00 00 00 47 4e 55 00 |............GNU.|
00000010 29 58 18 26 e9 db 53 09 5c 97 05 09 c8 dd 49 6a |)X.&..S.\.....Ij|
00000020 e7 2f f9 51 00 00 00 00 00 00 00 00 00 00 00 00 |./.Q............|
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00200000 0d 00 00 ea 05 00 00 ea 05 00 00 ea 05 00 00 ea |................|
00200010 05 00 00 ea 05 00 00 ea 05 00 00 ea 05 00 00 ea |................|
00200020 fe ff ff ea fe ff ff ea fe ff ff ea fe ff ff ea |................|
00200030 fe ff ff ea fe ff ff ea fe ff ff ea d4 d0 9f e5 |................|

по адресу 0х14(00200014) - полная хуита вместо FF 0F 00 00 - поэтому загрузчик ничего не читал.

Сейчас проблемка с I2C - банальные LM75 и 24C04 невидятся.

Может есть профи которые подскажут как завести такую память ?
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x44
nand: Micron MT29F32G08CBADA3W
nand: 4096MiB, MLC, page size: 8192, OOB size: 744
nand: No oob scheme defined for oobsize 744
------------[ cut here ]------------
kernel BUG at drivers/mtd/nand/nand_base.c:3925!

Сам камень(at91sam9260) по даташиту держит память до 16гБит, а тут в 2 раза больше + страницы по 8 КБ.
Мелкую память оно нормально хавает, но мелких флешек откуда ее сдернуть в промышленных масштабах нету.
Jan 1 00:01:01 deb kernel: nand: device found, Manufacturer ID: 0xec, Chip ID: 0xdc
Jan 1 00:01:01 deb kernel: nand: Samsung NAND 512MiB 3,3V 8-bit
Jan 1 00:01:01 deb kernel: nand: 512MiB, SLC, page size: 2048, OOB size: 64
Jan 1 00:01:01 deb kernel: Bad block table found at page 262080, version 0x01
441 221036
>>220978
Открой .lds блия
442 221038
>>220979
Анон, я почти с тем же мк ебался совсем недавно. Вкрадцыи, не читая тебя:
размер образа бинарника, зашитого во внешнюю флеш, равен оперативке минус несколько килобайт железного загрузчика. Короче, для at91sam9x25 при 32К sram прошивка должна быть 24 КБ. Об этом есть одна строка в даташите, в секции с загрузчиком.

Тут вроде в посте у тебя типа не определилась флеш. Решение до жопы простое: пересобери ебиную либу, вписав типовую строку со своей памятью и ее вендором; поройся в либах
443 221040
444 221101
>>221036
more elf32-littlearm.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(reset)
SECTIONS
{
. = ALIGN(4);
.text : {
_stext = .;
(.text)
(.rodata) / read-only data (constants) /
(.rodata)
. = ALIGN(4);
_etext = . ;
}

/ collect all initialized .data sections /
.data : AT ( ADDR (.text) + SIZEOF (.text) ) {
_sdata = .;
(.vectors)
(.data)
_edata = .;
}

/ collect all uninitialized .bss sections /
.bss (NOLOAD) : {
. = ALIGN(4);
_sbss = .;
(.bss)
_ebss = .;
}
}
end = .; /
define a global symbol marking the end of application /

>>221038
Почти угадал, но проблема в другом - сам бутстрап должен быть менее 4К размером. У меня же выходил размер овер 2 мегабайта из-за информационной секции.
Обрезка секции strip-ом - уменьшает размер и сборка по прежнему нерабочая. Снимал обмен логическим анализатором - только тогда заметил что длина загрузчика не указывается. Подправил руками бинарник и заработало. U-boot завел, ядро грузит по tftp, корневую фс по nfs тоже грузит, работать более-менее можно.

>пересобери ебиную либу, вписав типовую строку со своей памятью и ее вендором


Зачем ? память то опознается. Если гуглить по "oobsize 744" - не каждый камень его держит, насильный перевод в коде на oobsize 128 - все засрано что или блок мертвый или ецц не сходится, заканчивается память под бэдблоки, далее обычная разгрузка и в /dev/mtd
пустота, хотя в ядре есть описание пары разделов.
444 221101
>>221036
more elf32-littlearm.lds
OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(reset)
SECTIONS
{
. = ALIGN(4);
.text : {
_stext = .;
(.text)
(.rodata) / read-only data (constants) /
(.rodata)
. = ALIGN(4);
_etext = . ;
}

/ collect all initialized .data sections /
.data : AT ( ADDR (.text) + SIZEOF (.text) ) {
_sdata = .;
(.vectors)
(.data)
_edata = .;
}

/ collect all uninitialized .bss sections /
.bss (NOLOAD) : {
. = ALIGN(4);
_sbss = .;
(.bss)
_ebss = .;
}
}
end = .; /
define a global symbol marking the end of application /

>>221038
Почти угадал, но проблема в другом - сам бутстрап должен быть менее 4К размером. У меня же выходил размер овер 2 мегабайта из-за информационной секции.
Обрезка секции strip-ом - уменьшает размер и сборка по прежнему нерабочая. Снимал обмен логическим анализатором - только тогда заметил что длина загрузчика не указывается. Подправил руками бинарник и заработало. U-boot завел, ядро грузит по tftp, корневую фс по nfs тоже грузит, работать более-менее можно.

>пересобери ебиную либу, вписав типовую строку со своей памятью и ее вендором


Зачем ? память то опознается. Если гуглить по "oobsize 744" - не каждый камень его держит, насильный перевод в коде на oobsize 128 - все засрано что или блок мертвый или ецц не сходится, заканчивается память под бэдблоки, далее обычная разгрузка и в /dev/mtd
пустота, хотя в ядре есть описание пары разделов.
445 221170
Ребя, я начинающий погромист контроллеров и у меня есть вопрос о структуре программ. В универе мне сказали что main'е надо только инициализировать контроллер, а вся работа контроллера выполняется в функциях обработки прерываний. На работе же мне сказали, что ещё можно в обработчиках прерываний устанавливать нужные флаги, а обрабатывать их уже в main'e. Поясните как правильней.
446 221177
>>221170
Я пишу все структурами. И указателями на функции. Так как сказали тебе первые.
Без фанатизма, не использовать дохуя структур и не таскать где не попадя, иногда легче вызвать функцию. Оверинжиниринг ни к чему.
Но в прерывание программа должна быстренько зайти, переключить флаг (как сказали вторые) и выйти, чтобы, если у тебя не накопилось много прерываний, они по быстрому переключаются и выходят и освобождают стек.
447 221193
>>221170
второй вариант. Основной медленный поток программы крутится в майне, в прерываниях ставишь флаги. Так проще тестировать, не нужно ебаться с многопоточностью и защитой данных, медленные потоки внутри прерываний не будут наслаиваться друг на друга.
448 221216
Дополню, что тебе сказали немного разные вещи. Первые, наверное, имели ввиду, что можно делать while(1); после инициализации и реагировать только на прерывания. Это хорошо, если прерывания короткие.
А если есть нужда в длинных задачах то лучше сделать как сказали 2-е.
Но Main должен быть пустой никаких программ не должно быть(ну, или по-минимуму), только переменные указатели на функции или, если тебе нравится, просто вызовы функций.
Структуры с указателями на функции:
в начале заводим наши переменные(или структуры с описанием всего и инициализируем): гироскоп1, лампочка1, panasonic и пр.

main()
{
инициализация.таймер(&таймер1,5600);
инициализация.таймер(&таймер2,3600);
инициализация.таймер(&таймер3,4800);
инициализация.датчик(&датчик1,55,55,77);
инициализация.датчик(&датчик2,85,15,47);

while(1)
{
задача.координаты(&гироскоп1);
задача.свет(&лампочка1);
задача.камера(&panasonic);

}

}

Никакой охуеть большой кучи в майне не должно быть, иначе это полет фантазии. Через месяц запутаешься.
Лучше программу разбить на логические структуры:
Все что касается, например, датчика 1 - в один файл, датчик 2 - другой файл, файл инициализации 3-й файл.(В main только всё в кучу собираешь.) И там, в файлах, лучше никаких привязок к переменным все переменные должны храниться в Main. Функции должны быть гибкими, и при вызове этих функций они меняют только данные в той переменной, или структуре, в которой указали.
Таким образом main является хранилищем всех переменных и связующим звеном.
Как сказал >>221193 делаешь все задачи др. за др. я делаю тоже так же. И как только выставился флаг меняется просто поведение задачи.

>>221177 -кун
448 221216
Дополню, что тебе сказали немного разные вещи. Первые, наверное, имели ввиду, что можно делать while(1); после инициализации и реагировать только на прерывания. Это хорошо, если прерывания короткие.
А если есть нужда в длинных задачах то лучше сделать как сказали 2-е.
Но Main должен быть пустой никаких программ не должно быть(ну, или по-минимуму), только переменные указатели на функции или, если тебе нравится, просто вызовы функций.
Структуры с указателями на функции:
в начале заводим наши переменные(или структуры с описанием всего и инициализируем): гироскоп1, лампочка1, panasonic и пр.

main()
{
инициализация.таймер(&таймер1,5600);
инициализация.таймер(&таймер2,3600);
инициализация.таймер(&таймер3,4800);
инициализация.датчик(&датчик1,55,55,77);
инициализация.датчик(&датчик2,85,15,47);

while(1)
{
задача.координаты(&гироскоп1);
задача.свет(&лампочка1);
задача.камера(&panasonic);

}

}

Никакой охуеть большой кучи в майне не должно быть, иначе это полет фантазии. Через месяц запутаешься.
Лучше программу разбить на логические структуры:
Все что касается, например, датчика 1 - в один файл, датчик 2 - другой файл, файл инициализации 3-й файл.(В main только всё в кучу собираешь.) И там, в файлах, лучше никаких привязок к переменным все переменные должны храниться в Main. Функции должны быть гибкими, и при вызове этих функций они меняют только данные в той переменной, или структуре, в которой указали.
Таким образом main является хранилищем всех переменных и связующим звеном.
Как сказал >>221193 делаешь все задачи др. за др. я делаю тоже так же. И как только выставился флаг меняется просто поведение задачи.

>>221177 -кун
449 221220
>>221216

>Таким образом main является хранилищем всех переменных


ты в курсе что такое "инкапсуляция"?
450 221222
>>221220
Да я в курсе. Хорошо, не всех переменных поголовно. Статусные переменные, например датчиков хранятся в их файлах. Main только принимает данные по вызову функций.
451 221227
>>221220
Ты знаешь, что такое статическая адресация в мк?
452 221279
>>221227
Нет. Это в смысле эти переменные хранить в SRAM?
453 221284
кстати что можно почитать про архитектуру микропроцессора? Всякие там стеки, кучи, страницы памяти и прочее
455 221306
>>221193
А если задача повиснет? В тот-то и многозадачность лучше, одна зависшая задача не испортит программу.
456 221321
>>221288
а это справочник или учебник? Хотелось бы именно учебник, чтобы объясняло принципы
457 221331
>>221321
Это учебник. Там для задротов. Рассказывают еще как на АСМе под него писать.
458 221561
>>221331
при том что писать на асме под ARM не рекомендуется из-за thumb-инструкций
459 221658
>>221561
Не, ну все равно почитать стоит, не ради программирования на АСМ, а хотя бы чтоб понять как этот АСМ там работает.
Кстати,>>221284 , ты можешь почитать вот это, про AVR, переведенный Datasheet.
http://kazus.ru/forums/showthread.php?t=284
(ссылка для скачивания ниже).
460 221696
>>221658
А есть переводы на STM32F4xx?
461 221704
а в чем смысл перевода даташитов? Это же сугубо справочная информация
462 221829
>>221696
хуле там переводить, одно да потому
463 221849
>>221829
Переводчику заебись в гуглтранслейте перевёл одну буку, остальные одно и тоже, а в портфолио напишет дохуища технической литературы перевёл. Пидоры они.
464 221860
А смысл в учебниках? Достаточно читать даташиты и спецификации и рач иногда.
465 221865
>>221860
Учебники нужны для того чтобы на доцента или профессора ВАК подавать, надергуют хуйни из пиндоских учебников и даташитов и профессорами становятся, а людям они нахуй не всрались, только вымер бумаги.
466 221869
>>221860
>>221865
Датащиты датащитами, а все мы начинали с учебников. Нормальный учебник - это расшифровка датащита устройства и не всегда конкретного, иногда рассказывают абстрактно, чтоб читатель понял что к чему. Это сейчас я беру любую микросхему, и на основе полученных знаний из учебников я понимаю как и что там работает. Но в начале, например, я, не сразу понял организацию микропроцессора, там рассказывается как он устроен как таковой: здесь память, здесь регистры, здесь контроллер прерываний. Это слишком много незнакомой справочной информации, тем более сразу.
А почему именно так устроено и никак по другому, никто там не говорит.
Все равно что электронику учить с книг Тицце и Шенка или вообще со справочника, как бы всё с низов рассказывают и подробно, но, блин, все равно, непонятно.
467 221884
>>221869
Из книг любимые - Р. Токхейм Основы цифровой электроники и Микропроцессоры. Остальное говно непонятное - пидоры высрали.
468 221887
>>221860
зачем нужно обучение вождению автомобилем, если у тебя есть техпаспорт и схема автомобиля?
469 221899
>>221887
толсто или не знаешь какое оно это обучение.
Как это обычно - после получения прав за неделю сам научишься
Все эти сранные учебники лютое говно, как и инструкторы вождения и теория в автошколе
470 221900
>>221899
Т.е. ты не освоил электронику и не открыл ни одного учебника, и сразу начал с датащитов?
471 221931
>>221900
Не слушай его, он бугуртит от того что его учили по дерьмовым учебникам, и теперь думает что они все такие.
472 222988
>>187130
Зависит от шины и как memcpy работает. Если уебищно по слову копирует, а ты делаешь memcpy((char )buf1, (char )buf2, sizeof(N)), то он и будет побайтово херачить: сместил байт, записал 4, 3 отбросил, снова подвинулся.

DMA очень полезен.

мимо-nios-быдлячер
473 223101
>>221931

>32Б



дольше будешь настраивать ДМА чем копировать

>DMA очень полезен



безполезная трата транзисторов
474 223107
>>187135

>в кортексах DMA такты ворует


Что за говно, бля?
475 223110
>>223107

ворует такты, тормозит, глючит, ведёт себя нехорошо
476 223347
>>222988
Слыш слыш, а ведь что-то из memcpy можно переопределить на копирование через дма память-память! У х86 такого режима дмы нет
477 223355
>>187056 (OP)
есть кто с Дальнего Востока?
478 223356
>>187056 (OP)
Сап парни, разбираюсь с HAL возникла проблема при попытке завести SPI. С помощью этого кода я пытаюсь оживить SPI1
__SPI1_CLK_ENABLE();
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_HIGH;
hspi1.Init.CLKPhase = SPI_PHASE_2EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLED;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLED;
hspi1.Init.CRCPolynomial = 7;
HAL_SPI_Init(&hspi1);
вроде бы все норм, но не знаю как включить его с помощью бита SPE. В SPL это делалось через SPI_Cmd. А как сделать в HAL'е? На данный момент просто тупое вбиваю его через SPI1->CR1 |= SPI_CR1_SPE;
479 223405
>>223347
Подразумеваешь, что оно изначально не определено через него?
480 223418
>>223405
Подразумеваю, но я не си-бог, чтобы знать, как оно собрано в ядре линукса, например, на аимах.
Но факт, анон, память-память на х86 нет, только периферия.
481 223480
>>223107
>>223110
А как оно может не воровать, если DMA сидит на одной и той же шине с остальной периферией?
482 223489
Анон, почему например интел/амуда не выпускают микроконтроллеры?
483 223491
>>223418

>память-память на х86 нет


Ну а кагбе как ты его сделаешь и в чём будет принципиальная разница если это сделает ЦП? DMA с устройств хорош тем что не надо постоянно синхронизироваться с устройством, чтобы читануть оттуда наполнившийся буфер.
484 223618
>>223489

>почему


8051
485 223619
>>223489
Потому что ты не гуглил.
486 223740
>>223618
>>223619
А почему сейчас, при их монопольном, а тем более погорелом положении как у амуды, они не хотят зохавывать ST/TI/Atmel и остальных?
487 223744
>>223740

наверно потомучто рынок микроконтролеров намного меньше чем те куски рынков которые есть у лидеров, нет никакого смысла захватывать непрофильных аутсайдеров, ктомуже микроконтролеры это зашквар
19 Кб, 400x400
488 223869
>>223744

>рынок микроконтролеров намного меньше

489 223871
>>223744
Ты посмотри дома соотношение микроконтроллеров и процессоров. Телек, радио, машинка, микроволновка, некоторые холодильники, да даже пульты для телеков, практически каждый прибор, имеет в себе микроконтроллер. Даже в самом компьютере найдется место для него.
20 Кб, 360x288
490 223905
>>223871

все эти микроконтролеры нихуя нестоят, сравни цену с процессором, накрутки на ёбо процессоры охуенны а себестоимость такаяже, объём рынка определяется не только количеством но и ценой, если лидеры не хотят заниматься этим зашкваром значит они это уже всё посчитали, или у вас диваных экспертов с пультами от телевизоров другие цыфры?
109 Кб, 883x906
491 223924
>>223905

> все эти микроконтролеры нихуя нестоят


Просто даром
492 223933
>>223924
Что ты мне хочешь доказать? Есть DSP embedded-процессоры и микроконтроллеры, специально выпускаемые для работы со звуковыми, медицинскими, автопром и пр. устройствами где нужно быстрое реагирование. Интел и AMD туда не лезет. Это специальная ниша, это совсем другие процы.
Майкрософт, к примеру тоже хотел охватить необъятное, например, делал программные фаерволлы (ISA SERVER), Нокиа делала что-то вроде чекпоинта. Но обосрались, потому что у каждого своя ниша. И нахуя? Если это заботы Juniper, Cisco, CP? Чего с ними тягаться?
инбифо:

>intel edison


>Intel Quark


процессоры для встраиваемых систем.

>>223924
Это еще не потолок.
493 223989
>>223933

> Эдисон


> кварк


Чото в наших по работе вместо этих неизвестных используются ноутбучные и7 хасвелл/иви бридж
494 224004
>>223989
О чем вообще разговор? О том что у вас используется или почему интел не захватил рынок микроконтроллеров и процессоров для встраиваемых систем?
495 224016
>>223924

>STM32F4xx



такое в пульты не ставят это говно без задач которое покупают только уебаны чтобы помигать светодиодом, много на этом не заработаешь

уёбывай в бизнач там тебе по хардкору объяснят что на на говне без задач плохо зарабатывать
496 224111
>>224016
Дурак чтоле?
497 224148
>>224016

>stm32


>dma


>usb


>помигать светодиодом


Ты даун?
498 224155
>>224148
В российском интернете увы два года уже мигают светодиодом, надо подождать еще года четыре
499 224165
>>224155
Ну на российском интернете свет клином не сошелся. Тем более везде так, любители кроме этого ничем не занимаются, я думаю везде так. А более продвинутых ты не видишь, т.к. они работают а не в интернете пишут.
Помигать диодом, подключить датчик света, подключить сервопривод, это всё для начинающих и просто их много.
500 224167
>>224155

>В российском интернете


А на каких сайтах ты сидишь? Петухабр и двощь?
501 224170
>>224004
Почему во встраиваемых системах не было интелов для встраиваемых систем?
502 224182
>>224170
Родина дала (пока) ему интернет, но нет, хочу домыслы свои высирать на борду. https://ru.wikipedia.org/wiki/Intel_8051
503 224193
>>224182
Да я ему уже сказал, он какой-то тугой. Спор же это святое.
-->
>>223618
504 224194
>>224193

может он непонимает почему богомерзкую архитектуру x86 нелюбят в ембенде
505 224862
>>224193
Лел, я конечно тугой, но в споры пустился уже не я.

Вот ещё вам тугой вопрос: китайские ЦП для телефонов намного дешевле того же STM. Тот же арм по сути. Явно позволяет ещё и гигабайты памяти легко подключать, да в целом мощнее если даже игры тянет. Одна беда: нет доков и туторов, и видимо с портами ещё проблема будет.

Ну вот например MT6572, я могу купить за 500р на али. STM за такие деньги можно купить наверное только серии STM32F1.

Не пробовал никто ещё использовать вместо тяжёлой серии F4 китайский мобильный кремний?
506 224866
>>224862

да ты явно упорот, этоже cortex-a с модемом и еще кучей барахла, к нему обвес нужен нехилый, жрет он побольше и доки хуёвые, тут ситуация как с ардуиной, да ты можешь взять чип значительно дешевле и мощнее но хули ты с ним делать будешь без среды разработки?
507 224867
>>224866
Но в пересчёте цены на производительность и возможности явно получше же, да? Я не думаю что F4 серия жрёт меньше, а модемы, да и хуй с ними, выкинуть пару чипов из обвязки и пусть себе без них работает. И что там с ардуиной кстати? Если не касаться софтопроблем, насколько дешевле выходят сами чипы?
508 224868
>>224862
Эти чипы в большинстве своем в bga корпусах. И доков нихуя нет, хуй подключишь, хотя toolchain-ы/sdk для компиляции часто имеются.
509 224870
>>224868
http://mediatek-club.ru/load/for_repair_phones_mediatek_datasheets/datasheet_mediatek_mt6572/4-1-0-69

Ну вот есть pdf с разводкой. Для внутренностей можно поискать на гитхабе патченые ведроиды, китайцы часто выкладывают.
510 224874
>>224870

> Полный даташит


> 17 страниц картинок


Сынок, ты качни даташит на сраную АВР-ку 328 и охуей от объема.
511 224875
>>224874
Я не говорил что это даташит. Тем более что полный.
513 224877
>>224870

>Для внутренностей можно поискать на гитхабе патченые ведроиды, китайцы часто выкладывают


Например?
14 Кб, 309x416
514 224878
>>224876
Зануда, плиз.
516 224881
>>224862

>Ну вот например MT6572, я могу купить за 500р на али


Если разработаешь схему, разведешь pcb, то будет еще один одноплатник типа raspberry или banana orange.
517 224883
>>224881
А какие сейчас цены на распберри и прочее? Есть смысл? Я слышал краем уха что дороговато выходит, около 3-4к рублей. Но их там наплодили уже хуеву гору, вероятно и убер дешёвые варианты есть. Я не занимаюсь этим, не ориентируюсь совсем, что там как сейчас?
519 224885
>>224884
А чем можно флопсы замерить? У меня вот есть ведроид, и есть дискавери с STM. Есть какие-нибудь бенчмарки на сишечке? Чтобы скомпилять со всеми возможными оптимизациями, запустить и замерить время.
45 Кб, 660x440
520 224890
Кажется понял всё. Смысла нет, так как тот же allwinner h3 идентичный по параметрам, док дохуя, такой же mali400 gpu на борту, только это уже превратили в orange pi и сделали нормальную периферию без лишних модемов и прочего.

По производительности с кремнием такое дело, что удельная производительность (флопсы/цена) сильно падает с понижением класса устройства. То есть чтобы рендерить что-нибудь или видео обжимать лучше раскошелиться на сервер на зионах. Класс ниже это обычный пека. Ещё ниже это платы на атомах. Дальше спектр малинкоподобных плат. Дальше уже микроконтроллеры. То есть собирать кластер микроконтроллеров абсолютно бессмысленно и подбирать их нужно впритык к потребностям, чтобы в один контроллер влезло всё сразу.
521 224928
>>224867

>Но в пересчёте цены на производительность


Да я лучше заплачу на 300 р. больше, чем буду ебаться с говном без доков. Есть же TI или Analog Devices. Разница в цене это и есть оплата за техподдержку и документацию.
522 224932
>>224890

>То есть чтобы рендерить что-нибудь или видео обжимать лучше раскошелиться на сервер на зионах.


Есть такое понятие как оптимизация. Это означает как бы ты не гнался за гигагерцами процессор может просто не осилить твою задачу.
Пример: процессор выполняющий операции умножения в один такт, но с меньшей частотой может выполнять операции умножения быстрее чем всякие гигагерцовые без аппаратного умножения, так как тот будет многократно складывать и терять такты.
523 224933
>>224932
Ну всё не так просто. Мы слишком слабо информированы насчёт устройства конкретных процессоров чтобы утверждать наверняка. Мне кажется что умножение всё-таки в современных процессорах таки быстрое. Насколько помню, там что-то вроде школьного "в столбик". Строки можно параллельно посчитать, а следующими тактами просуммировать. Сомневаюсь что например в видеокартах это как-то иначе работает. В процах внутри умножители частоты могут стоять в любом месте.
524 224934
>>224928
Ну так-то да. Но всё-таки цена тоже многое решает. Например ту же малинку никто бы не покупал если бы она не перевешивала по цене. Никому не интересно навороченные малинки, приближающиеся по возможностям к пека, но вот когда выходят совсем дешёвые платы, сразу ажиотаж.
525 224935
>>224933

>Мы слишком слабо информированы насчёт устройства конкретных процессоров чтобы утверждать наверняка.


Вы - да, мы - нет.

>Насколько помню, там что-то вроде школьного "в столбик".


Похоже, но не совсем. Посмотри как работает современное АЛУ. Есть АЛУ для работы с плавающей точкой.
526 224936
>>224935
Я-то думал мы о целочисленном умножении. Ну да ладно. Для меня в принципе не новость что далеко не все операции однотактные. Ну кроме всяких экстремальных RISC процессоров. Но вот например в случае зиона частота (хотя в последнее время уже латентность, а не частота) оперативки намного ниже частоты проца. И тут какбе хуй знает где у него реально будет ботлнек. Те же видеокарты, в них ядер много, но они простые как пять копеек, да, вероятно они умножают за такт и работают на частоте пониже, но они обрезаны оче сильно, ветвления всё. И насчёт вы да мы нет я готов поспорить, ибо внутри это умножение может произойти за множество внутренних тактов, при том что внешне был всего один.
527 224937
>>224936
Да о целочисленном сложении, а плавающая точка просто как пример что и такое бывает АЛУ.

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


Да так и есть.
Я просто говорю о том что есть инструкции, без которых, какая была бы частота, проц может обрабатывать всё равно не быстро. Вот пример оптимизации Nvidia Quadro - вроде быстрая для работы, а для игор не подходит.
528 225038
Ананас, вот смотри, говнокодил я под армы в кейле и в ус не дул, а теперь мне говорят, мол, хуйня это всё - Кейл свой код добавляет в проект, так что нинужно. И библиотеки не нужны, ебашь всё сам. Инициализация периферии и работа с ней - понятно всё, заголовочные с регистрами тоже понятно, к тому же никто не мешает посмотреть в похожих/таких же точных процессорах. Но вот чего я не пойму пока - как работает стартап-файл, и что в него писать? Вот хочу я сам целиком проект сделать, как написать стартап?
529 225040
>>225038
Открой да посмотри чего в нем. Ассемблерная хуета - таблица векторов прерываний, размеры стека, и еще чота.
530 225068
>>225040
Кейл там начальную инициализацию проводит вроде и (про крайней мере, если использовать rtx) вызов своей какой-то функции __main(), а после уже вызывает мою. Откуда конпелятор будет знать, что программа должна начать выполнение с этого кода?
531 225072
>>225038

>мне говорят, мол, хуйня это всё - Кейл свой код добавляет в проект, так что нинужно


Кто тебе такую хуйню сказал?
532 225074
>>225072
Коллега, который давал задание. Алсо, сейчас глянул - там вроде ничего лишнего нет, инициализация написана на C и просто вызывается перед __main(). Но вопрос мой остается - откуда я должен взять инфу о том, как выглядит стартап-файл? Вот если у меня кроме IAR нет нихуя под рукой, там же в ней самой вроде ничего нет.
533 225077
>>225074

>как выглядит стартап-файл?


Нахуя их вообще писать? Тебе программисты всё написали, а в stm32fxxx.h там почти одни дефайны, нихуя там в код не лезет, а какой-то коллега-юзер который просто берет то, что дают, говорит что инженеры сделали неправильно.
534 225080
Хочу вкатиться в мир ARM, CooCox годная IDE?
535 225084
>>225074
Байтоёб дохуя?
536 225096
>>225077
Ну погоди, а если у меня нет готовых библиотек? В том же IAR нихуяшеньки нет ведь. Я, видимо, чего-то не понимаю с этим стартапом. В iar размер стека и кучи настраивается в конфигурации проекта, тогда, получается, стартап-файл можно вообще выкинуть?
537 225111
>>225080
Только емах, только хардкор.
Все остальное изъебы школьные Попова.
538 225113
>>225096
Вот же ленивое мурло, а! https://community.arm.com/docs/DOC-8769
21 Кб, 685x652
539 225114
>>225111
Ниудобная хуита, фу.
540 225116
>>225096
Если нет готовых библиотек то их должен тебе дать производитель контроллера. Или можно посмотреть Datasheet и там написаны все адреса, дальше делаешь дефайны и вот ты написал. Без CMSIS ты должен будешь работать с голыми регистрами, дефайны - это просто приведение соответствий для программиста. Ни в какой код эти дефайны не компилируются. В IAR не работал, но

> размер стека и кучи настраивается в конфигурации проекта


Всё что настраивается где-то оно в воздухе не висит, оно тоже куда то всё пишется, разве нет?

Если хочется поебаться. Вот асм код майна:

AREA |header code|,CODE,READONLY
ENTRY
EXPORT __main
__main

RCC equ 0x18

main

MOV32 R0, RCC
MOV R1, #1
STR R1, [R0]
END


В любом случаем, нужен SystemInit, core_cm3, stm32f10x.h
Или подключай их или на асме пиши инициализацию.
541 225117
>>225116

>В любом случаем, нужен SystemInit, core_cm3, stm32f10x.h


>Или подключай их или на асме пиши инициализацию.



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

А вообще нахуя это тебе всё?
542 225197
>>225068
Это должен знать линковщик. Читни доки гцц, особенно асм и линкер. Там вкрадции написана вся суть в общем.
Линковщик знает, что нужно начинать с асмофайла стартапа, так как ты руками указываешь его
543 225260
Посоны, а есть подробный, не самый нубовый гайд как (с помощью желательно генты и crossdev) на gcc и официальных заголовках от st таки замигать светодиодами? Я попердолился, почти получилось, но сборка очень увесистая выходит и не мигает, только первое включение/выключение происходит.
544 225424
Qt Creator лучше или хуже кейла?
545 225443
>>225424
Не хуже и не лучше, он просто другой.
546 225445
>>225424

это разные сорта говна
547 225538
>>225424
Под гцц?

Аноны, помогите настроить куте под компилятороотладчики ворованного иара, ибо он мне нра, но вот среда лютое говно говна.
548 225625
Посоны, а clang ещё никто не пробовал?
549 225992
>>225113
Благодарствую.
>>225116
Что такое макросы и как с ними работать я знаю. Вопрос был про стартап.

>Всё что настраивается где-то оно в воздухе не висит, оно тоже куда то всё пишется, разве нет?


Да, у IAR это конфигурационный файл в папке с проектом, в котором написано сверху капсом "НЕ ВЛЕЗАЙ, УБЬЕТ!" В кейле это в стартапе настраивалось. Для сравнения в Atmel Studio по-моему вообще в дикие ебеня надо лезть, чтобы задать руками размер стека/кучи. Но там тоже был какой-то стартап на асме написан.
Глянул у коллеги проект - там ничего такого нет, о чем написано тут >>225113. Получается, стартап - опциональный файл, и на него можно положить болт? Но его можно использовать, если программа лежит во внешней памяти, чтобы загрузить её в sram, например?
>>225445
В чем аноны пишут/отлаживают под мк тогда?
174 Кб, 1920x1080
550 226207
Как зарабатывают нынче ARM-щики, есть ли среди вас фрилансеры или кто-то со своими проектами?
рандомпик
551 226233
>>226207
В чем профит заливки земли подобной решеткой в отличии от сплошной заливки?
552 226249
>>226233
Такую заливку легче сделать ЛУТом. У ЛУТА вообще проблемы с большими сплошными полигонами
553 226289
>>226249

>У ЛУТА вообще проблемы с большими сплошными полигонами


А в чем проблемы? Я наоборот думал для ЛУТ большие полигоны как раз лудше.
554 226304
ЛУТ тут не причем. Такая заливка есть во всех редакторах, значит зачем-то она нужна профессионалам.
555 226305
>>226304
Ёмкость-индуктивность меньше, не?
556 226314
>>226305

>Ёмкость-индуктивность


Ну не знаю, этож земля. Могу предположить, что размер ячеек сетки может быть связан с частотой на ВЧ схемах.
557 226396
>>226314
Для СВЧ мы обычно отступали от полосков 2-3 ширины полоска, дальше была сплошняком земля с частыми отверстиями переходными в шахматном порядке на обратную сторону, которая тоже целиком была залита землёй. Но это во всяких аналоговых схемах. А вот решетку такую я нигде не видел ещё.
Да и вообще за ЛУТ у нас обоссывают, даже если для нч.
558 226405
>>226396

>за ЛУТ у нас обоссывают, даже если для нч


Ну это слишком уже. Не у каждого же дома есть конвейер оборудования вместо утюга.
559 226415
>>226396

>Да и вообще за ЛУТ у нас обоссывают, даже если для нч.


>у нас


У элитных долбоебов?
560 226421
>>226405
Ну тазик с каустикой и УФ-лампа для засветки фоторезиста условно тоже может быть у всех.
>>226305
Но ведь погонная индуктивность и результирующий импеданс такой сетки будет больше.
561 226426
>>226289

>А в чем проблемы?


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

>>226304
Предположу банальную экономию меди там, где полигон по каким-то причинам всё-таки нужен.
11 Кб, 362x292
562 226430
>>226396

>Для СВЧ мы обычно отступали от полосков 2-3 ширины полоска


То есть импеданс на глазок подбираете?
563 226444
>>226421
Фоторезист надо ждать пару месяцев, пока слоупочта довезёт. А рулон факсовки или кальки в ближайших канцтоварах лежит.

Мимо из сибирского райцентра
564 226473
>>226426

>банальную экономию меди там, где полигон по каким-то причинам всё-таки нужен.


Наркоман? По-твоему, медь на полигон наносится, а не стравливается со сплошного слоя?
Экономят как раз травильный раствор, и для этого иногда все промежутки между проводниками заполняют медью, насколько это возможно. Ну и ещё баланс меди на внутренних слоях МПП выполнять надо для лучшей межслойной адгезии, там тоже заполняют свободные от проводников участки полигонами, которые не подключены ни к чему. Причём обычно там применяют "сетку наоборот" для минимизации роста паразитной емкости, то есть массив разделённых медных квадратиков с протравленной между ними сеткой.
565 226636
>>226405
Я тоже не понимаю, чем ЛУТ плох для всякой хуйни в домашних условиях. Почему-то считают все, что даже макетка лучше, чем ЛУТ. А на макетке иногда какая-то хуйня лютая творится - прилепили GPS/ГЛОНАСС модуль туда и поставили рядом батарейку. Я так обрадовался, что с батарейкой не надо полчаса ждать после включения, пока он положение определит своё, а позже оказалось, что батарейка там была не припаяна никуда. Как он при этом работал - хер знает, лол.
>>226415
Нет, в лаборатории СВЧ.
>>226430
Не на глазок, но меня тоже удивляло, что всегда расстояние между полоском и земляным полигоном 2 ширины полоска, а если плата позволяет, то 3, а не какое-то определенное значение из того же AWR, например.
А вообще я к СВЧ мало отношения имею, по большей части пишу под мк, но когда-то было дело.
566 226648
>>226421
Во, кстати, проясните за фоторезисты. Что лучше что хуже, тонкие какие-нибудь, или где читать про них.
567 231916
>>224862
Я слышал, что сим карта это тоже процессор, и из него можно зделать компьютер.
568 231920
>>231916

> из него можно зделать компьютер


> И ебашить в четвёртый фоллач на максималках.


Блядь, школьники уже даже про педивикию не знают?

> слышал


> сосед сказал когда я у него хуй сосал


> слухи ходят


https://geektimes.ru/post/93210/
569 234971
570 235274
Поясните вкрадцыи накатку линукса. Сколько пзу, озу, какой дистрибутив?
571 235314
>>235274
Хватит 8 озу и 2 пзу
572 235424
>>235314
его 8 то?
люниху и 512 озу хватит за глаза
573 235484
>>235424
Если на нём ничего не делать, ему и 128 хватит.
574 235495
>>235424
512 кб?
sage 575 235513
>>235495

640кб хватит всем навсегда
576 235524
>>235484
А если не включать?
577 235526
>>235424
Метров? Этот ваш ссш еще надо поднять.
578 235575
>>235526
telnet
579 235690
Puppy Люних на EEE PC 701 с 512Мб ОЗУ оче бодро крутился в свое время (и вебсерфинг и ссш и много еще чего)
580 235696
>>235274

> Поясните вкрадцыи накатку линукса.


Поясняю: шел бы ты отсюда, петушок.

> Сколько пзу,


Минимум два мегабайта.

> озу,


32 мегабайта. Потом, возможно, получится ужаться до 16 или даже до 8 мегабайт, но до этого счастливого момента надо ещё дожить.

> какой дистрибутив?


http://www.uclinux.org/
581 235732
>>235696
Это же какая-то хуйня, о которой никто не слышал.
582 235735
>>235696
Предположу, что сайт крутится на микроконтроллере?
583 235759
>>235732
Ну извЕни. Юниксы на системах без MMU в принципе живут (наиболее известные примеры: микрософтовский Xenix и RetroBSD — современный порт 2.11BSD на PIC24), но OCHE KHUEVO.
584 235765
проще свою ось простенькую написать под юних как это зделал шведцкий студент в 1991
585 235768
>>235765

>ось написать под юних



што блять? кто юникс?

>шведцкий студент в 1991



это кто?
586 235771
>>235765

>проще


проще чего?
587 235784
>>235771
проще чем ипаться с установкой люниха.
>>235768
Швед Люникс Торвальдс изобрел люних в 1991 для х86. Сильно юних хотел на своем 386-ом, а был только МС-ДОС.
Следуя пути финского студента проще для этого контроллера с АРМ написать ОСь с юних идеалогией.
588 235786
Да кстате в 2010 вроде был наш русский выпускник уральской школы Попов, он тоже свою ось написал с офисом и антивирусом. Но ФСБ быстро почикали гения и превратили все в банальную комедию. Все блядь засекречено со времен совка, потому и развития никакого нет.
589 235797
>>235784

финский швед написал ос под юникс?
ну ты пиздец шизик
590 235799
>>235797

>ну ты пиздец шизик


Физик, а не шизик. Русские физики выбирают Slackware
591 235801
>>235784

>проще чем ипаться с установкой люниха.


Если для тебя установка люлиха ето сложно, то юникс ты не напишешь.
593 235831
>>235808
Чем знаменит?
594 235837
>>235801
да да надо с установки начинать, всегда завидовал тем людям которые сами венды и програмы на комп устанавливали
595 235849
>>235831
Автор самописной ембеддед ос TempleOS, полного спектра приложений и игор к ней. Шизофреник со справкой.
596 235871
>>235849
жаль не для stm32, а так был бы знатный шизик
597 235913
Господа, подскажите ньюфагу, собрался вкатываться в этот ваш арм inb4: выкатывайся нахуй, какой из стульев выбрать STM32F407G-DISC1 или STM32F429I-DISC1? Какие подводные камни?
598 235918
>>235913
Бери с дисплеем, очевидно
599 235920
Не могу понять как начать писать для кортехов на опенцм3, подскажите где можно глянуть инструкцию для совсем дибилов.
600 235974
>>235913

> ньюфагу


> STM32F407G-DISC1


> STM32F429I-DISC1


Выбирай вот этот: http://www.hotmcu.com/stm32f103c8t6-minimum-system-board-p-246.html

Ну или готовься к пердолингу с паяльником: http://www.yuriystoys.com/2012/02/using-stm32f4-discovery-on-breadboard.html
601 235978
>>235920
пишу для кортексов, но что такое твой "опенцм3", вообще не понимаю.
Перефразируйте вопрос, пожалуйста.
602 235979
>>235920

>опенцм3



зачем сразу начинать грыздь говно, когда есть моча

chibios.org

вот под stm32, никакого посикса потомучто автор не шизик, с ним можно даже попиздеть на форуме, нормальный адекват, наса уже приглядывается
603 235980
>>235913
>>235918
А нахуя с дисплеем? Чтобы мигать лампочкой и пялиться в неподключеный черный экранчик?
Очевидно, нужно брать без дисплея.
604 235981
605 235982
>>235979

>никакого посикса


Как будто что-то плохое.
Рикамендую eCos, там есть посикс и оно спортировано на stm32.
606 235987
>>235982

да плохое, поддкржка посикса при прочих равных условиях потребут увеличение потребляемых ресурсов, если нужен посикс то лучше тогда взять ос где это действительно хорошо реализовано в томже линуксе
607 236011
>>235978
А на чем пишешь, хал + спл?
608 236026
>>236011

>на чем пишешь


На хелловорлдах ЛОЛ.
Если серьезно, то все эти CMSIS, HAL или SPL библиотеки - и есть примеры кода работы с железом. Использовать их "как есть" можно лишь в учебных целях.
609 236035
>>236026

>CMSIS, HAL или SPL библиотеки - и есть примеры кода работы с железом


>учебных целях


Еще один асмоголик
610 236036
>>236026
У тебя колесо велосипеда спустило
611 236047
>>236026
Очередной велосипедостроитель, ясно-понятно.
612 236049
>>236036
>>236047
две рюмки. Чем свои махарайки паять и код пердолить, купил бы лучше готовое изделие. Тогда мог бы пивко пить и с тяночками гулять.
613 236058
>>236035
вся эта стм си поебень меняется год от года, а асм и понимание внутреннего железа дает ясность в голове. причем можно понимать тащемта пик16 или 18 и быстро вникать тащемта в стм8. читнуть дашит и все, ну на край програмер мануал
614 236061
Самый оптимальный вариант на данный момент времени это ПЛИС. Все адекваты пересели уже. Сам программируешь себе железо и программируешь на это железо ОС.
615 236068
>>236058
Сразу и говори, что скорость разработки не завезли и ты работаешь в эру 8 Кб.
616 236069
>>236061
Прогорел с этого плисовода, задачи у МК и ПЛИС разные и практически не пересекаются а скорее дополняют друг друга.
617 236072
>>236068
Месяц назад мигал светодиодом, сегодня обновил проект через STM32CubeMX, функции VPC месяц назад назывались иначе и в параметрах передавались не структуры а указатели только.
Буду задрачивать асму
187 Кб, 1000x1000
618 236075
конечно есть стойкое желание обмазаться 16 бит
619 236116
>>236075

> обмазаться 16 бит


WUT? Чому не 32?
620 236134
>>236116
32 сложно для меня (ударился рогом об STM32) мне бы чего-нибудь наподобие PDP-11
622 236177
>>236072
Не имеет смысла. Любой настоящий разработчик под арм знает даташит периферии, но зачем писать на асме, когда придуман си и хал? В хале самый периферийный низ есть по сути запись числа в регистр модуля, и выигрыш по скорости работы, если этот код написать на асме, нулевой.

И си, при этом, ускоряет разборку, и за t времени на Си ты напишешь и отладишь более качественно, чем на асме
623 236182
>>236177
я не промышленный программист
Убежден, что пока ОСь находится уровнем не выше CP/M код обязан быть на асме
624 236192
>>236182

>Убежден, что пока ОСь находится уровнем не выше CP/M код обязан быть на асме


Религиозная догма
625 236193
>>236072

>функции VPC месяц назад назывались иначе


Это откуда? cmsis, spl?
626 236205
>>236182

> Убежден, что пока ОСь находится уровнем не выше CP/M код обязан быть на асме


Кому, блядь, обязан?!

P.S. Это не говоря уже о том, что сама CP/M была написана совсем не на ассемблере: http://www.computerhistory.org/atchm/early-digital-research-cpm-source-code/
P.P.S. И не говоря о том, что такие говномониторы давным-давно никому не нужны.
627 236224
>>236205
Я понимаю священную войну между си и асмом при программировании тащемта дров виндовза.
628 236233
>>236224
А теперь переведи свою фразу на русский язык.
629 236254
>>236233
это не фраза, дебил, это предложение.
Для контролера среднего уровня вполне достаточно ассемблера, для МС-ДОСа достаточно ассемблера, и на асме программы понятнее. Для модулей ядра ОС Виндовс и Линупса оптимально использование Си.
630 236289
ПриФФки все в этом чятике. Хочу собрать свою мигалку светодиодом на МК. Но вот незадача, у меня отсутствует программатор. И из этого вытекает два тупых вопроса.
А) Есть ли какие-то проги эмуляторы програматоров, чтобы просто припаять проволки от USB к ножкам МК
Б) Как отреагируют в магазе, если я попрошу у них подшится и если положительно, то за какую плату.
631 236292
>>187072
Бамп
632 236319
>>236254

>МС-ДОСА


Все понятно, не продолжай
633 236320
>>236292
памяти катастрофически мало и ног мало
634 236347
>>236254
какой самый сложный проект ты выполнял на МК?
635 236361
>>236254
Асма достаточно для любой задачи программирования, но, как говорят, жизнь слишком коротка.
636 236362
>>236361
ну смотря что понимать под задачами программирования. В настоящий момент это выпустить продукт в установленные сроки. В чем асм проигрывает.
637 236433
>>236362

>выпустить продукт в установленные сроки


копроэкономика
http://2k.livejournal.com/520078.html
638 236452
>>236254
Ну вот например мне дали найти ошибку в работе мышки, мозг которой был написан другим человеком на асме. Сидел два дня в поиске проблемы, полностью изучил асмо-код. Что тут можно сказать? Если бы код был на си не было компилятора под архитектуру, сам его написать я не смогу, на поиск проблемы было бы затрачено раза в 4 меньше времени, да и разработчик врядли бы допустил этот баг. Выигрыш от асмы взачастую в размере прошивки, а не в скорости работы, а нахрен нам делать 1кб асмокода вместо 2 кб сишного, когда памяти на 16?
64 Кб, 1235x451
639 236462
>>236254

> Для контролера среднего уровня вполне достаточно ассемблера, для МС-ДОСа достаточно ассемблера, и на асме программы понятнее



Ну как там, в первой половине девяностых? Всё ещё сидите на 8048/8051/Z80 или уже пики появились?
640 236471
>>236462
так-то я на ардуино разрабатывал, повышаю уровень перехожу на арм-процыки, за деньги никогда не програмил, чисто для души
641 236476
>>236471
вот в этом и проблема, то что ты ничего сложного и не разрабатывал. Где нужно что то отлаживать тестировать, когда несколько человек работает над проектом и тут ты понимаешь зачем тебе IDE и зачем нужен Си. Но с видом экспеперта делаешь заявления типа(думаю это ты написал):

>Для контролера среднего уровня вполне достаточно ассемблера, для МС-ДОСа достаточно ассемблера, и на асме программы понятнее. Для модулей ядра ОС Виндовс и Линупса оптимально использование Си.


Так же как и анон выше говорил что HAL ему не удобный, еще как удобный если ты понимаешь Си и в состоянии читать на английском. За 5 минут копания в библиотеке можно въехать чего они там поменяли. Ассемблер это лишнее байтоебство, на котором надо сделать пару упражнений и отложить в сторону. Тем более для АРМок где памяти куча обычно. К слову сказать компиляторы достаточно хорошо все сейчас компилят и код получается не таким уж и раздутым, сомневаюсь что если ты будешь писать на АСМе что то то большое у тебя получиться в лучшем случае на 10-20% меньше.
642 236477
>>236476
я свою мультизадачную ось на меге пилил если что
643 236483
>>236477
нунуну, пруфанешь?
644 236489
>>236483
пpoeбaл диск с сорцами, все на двд сбрасывал винты сериалами забиты
Кстате какое ИДЕ можешь посоветовать, какое самое годное для работы с STM8
В обычной жизни доставляло NetBeans
645 236495
>>236489

>пpoeбaл диск с сорцами, все на двд сбрасывал винты сериалами забиты


понятно.

>Кстате какое ИДЕ можешь посоветовать, какое самое годное для работы с STM8


ну у нас юзают IAR, вполне себе норм
646 236509
>>236489
Юзаю ST Visual Develop с компилятором от Cosmic, ну как юзаю, пару примеров скомпилировал и залил. Лол.
647 236510
>>236509
у них там отдельная оболочка программатора, ты ее не юзал часом? или сразу из редактора заливаешь
648 236515
>>236483
Не думай, что там что-то умное дохуя, там курсач
мимо
649 236517
>>236510
Через неё и лил. Из редактора чот не захотело заливаться в мою stm8l-discovery
650 236656
>>236517
Где брал такую плату?
Хочу две себе таких.
651 236685
>>236656
В Терре, 2 года назад.
163 Кб, 1776x923
652 236688
>>236656
Там свободных GPIO нет, всё на индикатор ушло.
653 236691
Не понимаю споров ASM-vs-C.
Привыкнув к АСМу ты становишься узким специалистом, и хуй перекатишься на другое ядро, 8051->PIC ->AVR->etc.
Да хоть бы и между arm и thumb уже сложно будет переключаться.
Будете долго смотреть в систему команд, а на Си дело делать можно сразу.
654 236695
>>236691
Мне Пистон больше доставляет, жду время когда портируют на ардуино. На интел эдисоне питон стоит и больше смотреть на Си не могу. Да и Си на самом деле от ассемблера не далеко ушел.
655 236696
>>236688
Какую плату STM8 купить и где, посоветуй пожалуйста
656 236703
>>236696
http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm8-mcu-eval-tools.html?querycriteria=productId=SS1673
Выбирай какая подходит и ищи у наших или забугорных продаванов.
117 Кб, 909x464
657 236717
>>236703
Посмотрел это понравилось, но максимум денег у меня 1Крублей
658 236719
>>236717
ЧиД охуел, она на сайте st 199 баксов стоит, нихуя их понесло.
659 236789
>>236719

>199 баксов


>>236717

>22килорубля


Вы вообще охуели там чтоли? Пиздец пиздец!1
Я до сих пор помалкивал, но теперь не могу. Ну нахуя вам эти vendor-locked STM8, AVR или PIC ?
Ведь есть же Арм и Кортекс. С которыми, когда хочешь, перекатываешься между конкурентами: AT91 -> LPC -> KINETIS -> STM32 -> SAM3/4,
а инструменты JTag-адаптеры, компиляторы, IDE остаются.
Вы вот скажите, что в этом STM8 есть, чего нету в младшем Cortex M0 STM32 ?
660 236811
>>236789

>Ведь есть же Арм и Кортекс.


>Арм и Кортекс.


>Арм


>и Кортекс.


Сразу видно спеца
661 236819
>>236789
Ты чего воспламенился? Eval-платы у стм-а дорогущие и нахуй не нужны обычному юзеру. Берешь Дискавери за тыщу и радуешься жизни.
662 236824
>>236819

>Берешь Дискавери за тыщу и радуешься


Да!
Но что заставляет людей обращать внимание на эти AVR/PIC/STM8 или другое восьмибитное говно?
>>236811
Что сказать-то хотел?
663 236825
>>236824
Простота. Ресурсов хватает для применения в довольно серьезных поделках. Непонятна ценовая политика производителей, когда 32-битный MK ARM стоит дешевле 8-битного. Я вот понабрал себе всех мастей, но пока мозгов хватает "разобраться" с AVR, потом перешагну на STM8, а потом дойду (надеюсь) до stm32f429 и собранной на ней дискавери.
664 236865
>>236819

>. Берешь Дискавери за тыщу


Я лучше rpi возьму и еще останется
665 236879
>>236825

>Простота. Ресурсов хватает


Микроконтроллеры это проц плюс периферия. Работа с периферией везде одинаковая: пишешь настройки в регистры - ведешь обмен данными через другие регистры, и возможно получаешь переходы на функции прерываний.
Хочешь сказать, от процессорного ядра зависит сложность освоения или сложность разработки? Мне приходилось применять микроконтроллеры семейства i8051, и на мой взгляд ARM/CortexM нисколько не сложнее. Плюс вижу в том, что освоив однажды программирование процессорного ядра ARM, становится возможным выбирать между изделиями любого производителя.

>Я вот понабрал себе всех мастей


Но ведь для каждого семейства нужно будет покупать/паять программаторы, искать компиляторы и среды разработки, осваивать. Это требует времени и сил.
Смысл в этом могу разглядеть только один - расширение кругозора, туризм, развлечение. Типа "а сейчас сходим посмотрим как там в мире stm8".
666 236891
господа, подскажите нубу-тянке. была плата stm32f407discovery, сделала прошивку, все пашет, збс. Сейчас закупили stm32f407disc-1 блеат, так я их даже прошить не могу! драйвера может нужны другие? или st link v2 не годится? Сорян если туплю
667 236899
>>236891
Где-то тупишь, st link v2 для всех 32-битных идет. Подключись с программатора stm32f407discovery, проверь.
668 236907
>>236899
посмотрела, дело реал не в stlink. разъем раздроченый был просто. Но теперь проблемка похуже. платка заводится от юсб, лампочки мигают вся хуйня, режими переключаются, переношу на макетную плату, где питание 5В напрямую подается, нихера не пашет..http://forum.easyelectronics.ru/viewtopic.php?f=35&t=26853&p=450407 вот как тут все прям, откусила резистор к херам, не помогло
669 236916
>>236907

> посмотрела


Да ни в жизнь не поверю, чтобы тян контроллерами страдал.
670 236921
>>236907
А если юсб не в комп, а в зарядку воткнуть, пашет?
671 236939
>>236916
я тян хочу стать, на операцию коплю, в душе я тянка
10 Кб, 194x200
672 236946
673 237099
>>236789
Kinetis лучше всех чисто из-за криптографии
59 Кб, 200x200
674 237185
>>237099

>Kinetis


Наконец-то переключаешь билд с Debug на Release
@
оптимизатор выкидывает cfm
@
проц в мусор
675 237321
>>236921
нет! мне что то кажется на stm32f103 прошивка косячная забита. прифигачила на nrst и Vdd rc-цепочку, теперь кое как пашет, но конечно надо чтобы импульс прямоугольный был
676 237322
>>236916
тян страдает) видишь же, на каком все уровне(
677 237438
>>187056 (OP)
Ананасы, хочу прикупить себе Beaglebone black на что-то подороже денег не хватает, хотя очень хочу купить какую-то DSP-платку с кучей разной периферии, чтобы в полной мере обмазываться матаном и дрочить, однако увидел, что есть еще модификация Green Wireless, в которой нету нахуй не нужного hdmi, зато есть беспроводные интерфейсы. Единственным минусом есть то, что платы разводит какая-то непонятная фирма seeed studio.
Кто-нибудь покупал у них платы? Какого они качества? Стоит ли покупать этот Green Wireless вместо менее функционального, но гарантированно качественного Black от Texas Instruments?
678 237468
>>237438
Seeed studio нормальная контора, я у неё несколько раз заказывал платы, делают хорошо и дешево.
В Green Wireless еще нет флешки на борту.
679 237872
>>237468

>В Green Wireless еще нет флешки на борту.


Что за флешка? EEPROM?
680 238511
>>237872
4GB emmc.
681 238598
Если я сделаю отдельный тред, где я на stm32f030 буду ваять самодельные часы с блекджеком и шлюхами с постоянным отписыванием своей бесполезной деятельности - как быстро меня забанят и тред потрут? Стоит это говно вываливать сюда тогда сразу?
682 238622
>>238598
Отписывай на каком-нибудь блогспоте или вордпрессе, а сюда заманушные фото скидывай. Ту все равно потонет в куче бесполезных сообщений.
683 238624
>>238622
Похуй вообще, мне лень регистрироваться где, а тут все мои друзья.
684 238665
>>238624
Тогда ебашь в отдельном треде и моли мочу шоб не потерла. Или обзови тред - "Свистелки и перделки молодых и дерзких" и пусть там аноны хвастаются своими йоба-махарайками.
685 238672
>>238624
Дублируй и там и там. Регистрироваться пять минут, на wordpress.com себе стандартный блог заведи. Или вообще на ЖЖ лол. В соцсетях обычно тонет.
686 238677
>>238624
Если у тебя есть гуглоакк для ведроида, то в блогспот тебе только войти нужно. Включишь сокрытие мыла и никто тебя не сдеонанизирует.
687 238755
>>238511
а, еба, но ведь поддержка microsd все-равно есть, так что вообще похуй.
688 239636
Господа ARMщики, есть ли какой то стандарт под то как надо писать драйвера для дисплея,что бы на Линуксе взлетело без подводных камней?
689 239642
>>239636
Берешь и пишешь модуль ядра Линукс, все исходные коды в открытом доступе. Хотя да нвидиа свои дрова в бинарниках распространяла
690 239652
Пацаны, вот есть камера, которая по выходящему с нее клоку в 24 МГц выставляет параллельно байт данных. Как оценить необходимое быстродействие МК для того, чтобы получить с неё кадр? Получается, что на каждый такт с камеры мк должен выполнить операцию считывания и записи этого байта плюс инкрементировать указатель на следующий элемент. Но там же ещё по несколько тактов на прочую хурму уйдёт. Выходит, что понадобится МК с частотой раз в 10 больше, ведь так?
691 239658
>>239652

> понадобится МК с частотой раз в 10 больше


stm32f4 180MHz
692 239717
Анон, вкатываюсь из ньюфаг-треда.
Хочу замутить часики прикольные.
Есть тёплый ламповый дисплей и контроллер PIC18F252. А вот чего нет - так это желания читать тонну мануалов.
Помоги мне разобраться со всем этим: контроллер - как проверить его, живой или нет. Где поискать туториалы для нубов? С какой стороны вообще начать программировать эту штуку?
28 Кб, 784x500
693 239944
Стоить разбираться с Дуал_АЦП, или тупо две отдельных ноги с разными АЦП и так норм?
Как вообще грамотно с двух источников одновременно сигнал оцифровывать?
237 Кб, 1920x1176
694 240485
>>239717
Мамкины программисты разбежались, никто не хочет помогать.
695 240556
>>240485
что за студия у тебя?
696 240748
>>240556
coocox же, не?
697 240757
>>240556
Что такое "студия"? Первый раз пробую написать программу для контроллера, не в курсе местных мемов.
Туториалы здесь хорошие: https://electrosome.com/category/tutorials/pic-microcontroller/mikroc/
698 240765
>>240757
Одну студию только знаю MSVS, кстате
На ютабе один вадим в своих видио Keil и stm32cubemx студией называет, возможно так и есть
По PIC есть книжка Санчоса 2007 года лютая годнота
699 242050
>>239636
В ведро не так давно приняли проект fbtft теперь он в стейджинг
https://github.com/torvalds/linux/tree/master/drivers/staging/fbtft
Там дохуя дров под spi и параллельные мониторы. Сам юзал, все работает.
700 242120
>>187056 (OP)
Хочу купить stm32 discovery и программировать его, сидя дома перед компьютером. У меня, кроме пеки, ничего нет- ни проводов, ни паяльника, ни резисторов. Сейчас нахожусь в дс, но скоро уеду обратно к себе в мухосрань, там это все сложнее достать. Что нужно купить, чтобы без проблем собирать различные девайсы? Каких-то практических целей не преследую, просто хочу научиться работать с микроконтроллером.
701 242139
>>242120
Удваиваю вопрос. Недавно заказал STM.
702 242150
>>242050
Даже писать ничего не надо, благодарствую.
434 Кб, 577x574
703 242171
>>242120
Соединительные провода возьми подходящие, чтоб не паять периферию (dupont female female)
http://ru.aliexpress.com/item/40pcs-dupont-cable-jumper-wire-dupont-line-female-to-female-dupont-line-20cm-1P-40P/32481623557.html?spm=2114.03010208.3.11.9AEKlZ&ws_ab_test=searchweb201556_0,searchweb201602_5_10039_10048_10047_10017_405_404_407_10046_10045_406_10040,searchweb201603_8&btsid=af82167d-58fe-4e60-8a5f-25dbca6679c9

Только смотри не перепутай, если на периферии стандартная гребенка контактов (как на самой дискавери), то провода female-female нужны, иначе не сунешь палку в дырку.
704 242172
>>242171
А к чему второй конец джамперов подключать? Нужен специальный программатор с USB?
30 Кб, 381x306
705 242174
>>242172

>программатор с USB


Зачем? Коннекторы - это если ты периферию какую-нибудь захочешь подключить к дискавери, если хочешь только с самой дискавери работать тебе ничего кроме мини-юсб не надо. Как бичпакет - открыл и готово.
50 Кб, 639x718
706 242176
>>242172
Если будешь использовать дюпоны - тебе придется купить несколько планок PLS/PBS, по крайней мере чтоб не паять саму дискавери, к ним же тогда есть смысл взять несколько макетных досок. В случае с дюпонами лучше бери полный набор MM,FM,FF 120шт суммарно, так получишь универсальность.
Но это всё опционально, самое простое чего тебе будет достаточно - моток мгтф-а 0,2мм , кусачки маникюрные с фикспрайса, банка лти/глицерин, пос61 и эпсн ватт на 25 с набором напильников. можешь взять термоусадки подходящего размера. Кроме того, имеет смысл раздобыть USB-UART переходник.
мимокатился
707 242179
>>242176

> USB-UART переходник.


Зачем? Дискавери шьется через swd. Выводить инфу проще сразу на ее экран, без всяких путти и уартов.
202 Кб, 260x518
708 242180
>>242174
О какой периферии идет речь? Порты ввода/вывода, АЦП, счетчики и так на плате есть. Вообще я бы хотел побольше возможностей опробовать. Провода, паяльник или еще что-то не проблема купить.
709 242181
>>242120
Купи всяких датчиков и серв с шаговиками. Начинать проще с пердуины, я со старта прихуел от замороченности stm32f429i-discovery
710 242182
>>242179
Там того экрана, только текущие показания отрисовать.
711 242184
>>242180

> хотел побольше возможностей опробовать.


Бери помощней версию, чтоб сразу с акселерометром, дисплеем и т.д.
221 Кб, 650x446
712 242188
Оттакую например.
Всего 79 дораров
713 242189
>>242180
Ну, любая хуйня для АЦП/ЦАП (фотодиод, светодиод, лазер, датчик температуры etc), сегментные дисплеи, дополнительные кнопочки или даже клавиатуры, подключение FTDI как сказал >>242176-анон, ибо прошивать это хорошо, но знать интерфейс еще лучше и наверняка ты захочешь связь контроллера со своим приложением на компьютере, через юарт это проще всего
Миллион всего можно подключить к контроллеру.
1,1 Мб, 612x816
714 242192
>>242181
Пердуина - для детей, не порти анону представление о реальном программировании контроллеров
715 242193
>>242192
Алсо, я начинал именно с 429, до этого вообще не программировал контроллеры. Да, местами надо мозг включить, зато потом охуеешь от того, что смог.
716 242194
>>242181
Пакеты основных элементов продаются где-нибудь? Или пойти в радиомагазин и набрать что приглянется?
>>242189
Получается можно или контроллер сразу дорогой взять, либо взять попроще, но датчики и кнопочки отдельно докупить?
197 Кб, 2000x1339
717 242195
718 242196
>>242193
Я как раз и хочу посидеть поковыряться, про ардуино почитал- там его чуть не 11-летним советуют вместо конструктора.
719 242197
>>242194
Можешь взять плату с кучей периферии, там будут кнопочки с диодами и всякой лабудой, но все равно захочется подключить то, чего не будет на плате (те же шаговики), просто придется меньше паяльником орудовать.
720 242200
Итого:
1) STM32F429 - 30 баксов и с дисплейчиком
2) Провода dupont разные
3) USB-UART переходник
3) Паяльник и сопутствующие товары
4) Двигателей и датчиков на свой вкус
Магазины в дс посоветуете? Я пока гуглил несколько раз на Чип и Дип натыкался, там норм?
Если для начала без паяльника брать, то тогда имеет смысл что-то кроме контроллера покупать?
721 242202
>>242200

> Чип и Дип натыкался, там норм?


нит
Поверь мне, один хрен все дороги ведут на Али, оттуда и начинай, сейчас быстро доставляют.
722 242205
>>242202
ты хуй
723 242206
>>242205
Но я же не ОП, я не могу быть хуем!
725 242213
>>242212
Ебать конструктор. Студентоте для изучения - да, но на себя я так тратиться не стал бы, лучше научиться самому махарайчить периферию.
726 242378
Господа, я понимаю, что тут все отладкой сразу на железе занимаются, но всё же: что лучше для симуляции ПО - QEMU или Proteus?
727 242500
>>242378
Протеус удобнее, если камень поддерживается.
Однако если схема сложная - будь готов к глюкам из-за нереалтайм симуляции. Сам сталкивался
728 242588
>>242378
proteus научился в арм?
729 242680
Мне идет такая STM32: http://ru.aliexpress.com/item/1-pcs-x-STM32VLDISCOVERY-Development-Boards-Kits-ARM-Discovery-STM32F100-Embedded-ST-Link-BRD-STM32-VLD/32348010864.html?spm=2114.13010608.0.86.JVKRXc

Там на ней дырки или штырьки? Для подключения периферии хватит джамперов, или нужна гребенка? Если гребенка, то какой там шаг?
731 242710
>>242680

STM32F1 за тыщу, хуясебе ты богатый
732 242723
>>242710
Эта хрень в Терре 1400, так шо нормально. Ебать цены нонче на эти сраные макетки. Помню 429-дискавери за 1200 брал.
733 242766
>>242680
штырьки
734 242816
>>242723

ага помню эти времена, непонимаю какого хуя они щас раза в три подорожали
735 242901
Знаком с аналоговой электроникой и жёсткой логикой, знаю си. Нормально ли вкатываться в армы в частности и микроконтроллеры вообще, купив платку вроде http://m.ebay.com/itm/201414966215?_mwBanner=1 и запилив на них, скажем, электронные часы? in4b: бери ардуину Или без опыта с avr вкатиться нереально?
736 242903
>>242901

>арм


>электронные часы


Как же я люблю /ra/дач.
Давай, анон, давно жду часики на ПЛИС, пилите поскорее.
737 242904
>>242903
Ну я серьёзно же. Хочется вкатиться в микроконтроллеры. Логично начать с эдакого хеллоуворлда, интересного ещё и практическим результатом никсиклок на 176й логике хоть и справляется с отсчетом времени, отображением секунд, энергонезависимостью и наличием будильника, но второй раз пилить антуражный девайс начала 80-х о 18-ти микросхемах уже не хочется. вопрос в том, что если плата с мелким армом стоит копейки, стоит начинать осваивать микроконтроллеры прямо с арма, иди шансов нет, и нужно сперва идти через атмеги/пики/ардуино?
738 242905
>>242904
Есть все шансы, начинание сразу с Cortex-M3 будет лучше, чем с АВР про PIC'и вообще забудь Качаешь Keil + CubeMX, читаешь статьи новее 2013 года. Про SPL забудь, CMSIS оче долго и нудно, пригодится но не сразу. Потом, когда ограничения 64кб тебе будет уже не хватать можно прекатиться на STM32SW или другое эклипс поделие, ну или найти кейген на кейл.
739 243030
>>242905
Я тут мимо проходил, как раз вопросы есть.
Задача - вкатиться в ARM. Для начала помигать светодиодом. Далее - написать прогу, принимающую по уарту и отсылающую модифицированную инфу по другому уарту.
Дано - я, немного могущий в C. Плата NUCLEO-F103RB. KEIL, который мне не понравился. CooCoX+GCC, который мне более-менее понравился.
Вопросы: CooCoX или пытаться осилить KEIL? Какие библиотеки использовать? CubeMX годен?
740 243034
>>243030
CubeMX годен, настройка тактирования и HAL проект для кейла из коробки. Кококс хоть и бесплатен, но мне не понравился. Кейл прильстил реальной простотой и неперегружнным интерфейсом. Ну и возможности отладки с литературой в соседней вкладке просто шикарны.
Самое сложное в кейл это понять, что его не надо осиливать. Сгенил в CubeMX проект, открыл в кейл и работаешь уже в нем, как в любой другой ИДЕ. Ну мб пару вопросов встанет с отладчиком, который ищутся на ютубе/интернете на каждом шагу.
741 243040
>>243034
Ты про какую версию Кейла?
А проект кубамх в кокосе не открыть?
562 Кб, 1920x1080
742 243045
>>243040

> в кокосе не открыть?

743 243094
>>243045
Я предположу, что скрином ты показываешь отсутствие нужного тулчейна в кубе. Я прав? Мог бы прямым текстом написать.
744 243106
>>243094

> Мог бы прямым текстом написать


Лень было печатать.
498 Кб, 1920x1080
745 243208
>>243045
Это старый куб, в новом вроде как-то можно. Но я не разбирался.
746 243211
>>243208
Ну я нашел пару инструкций как из куба в кокос запихать проект. Ща осилю конфигурацию и попробую.
747 243212
Я тут один пердолюсь с cmake + qtcreator + gcc?
Терпеть не могу графические менюшки, потом хуй пойми что откуда взялось и какие там умолчания. Научился одной хуйне - перекатился в другую - все совсем иначе.
748 243246
>>243211
Запихал кубопроект в кокос, конпилится. Пойду CMSIS изучать, хочется пердолинга регистров и познания основ.
749 243257
STD32DISCOVERY мне отправили больше месяца назад, уже заказ закрывается через 16 дней, а платы все нет. Кому-то шла STM32 так же долго?
750 243363
>>243257
Я два раза заказывал, первый раз долго шла и потерялась, вернули деньги. Заказал у другого китайца, шла тоже больше месяца, написал продавцу, говорит, потерялась, возвращает деньги. Нашел на olx, продавец тормоз, наложенный платеж не подходит, на карточку деньги принять боится, только личная встреча, послал нахуй. Тут же всплыла на аукро, заказал, завтра будет наконец. Длинный путь переката с пиков в стм, сцуко.
751 243371
>>243363

> 1 китаец


> 2 китаец


> olx


> аукро


У вас нет магазинов типа чипдипа? Нихуясе, как героин добываешь.
752 243374
>>243371
есть, только на том же космодроме на платы охуенная накрутка
753 243376
>>243374
Нет, ну если ждать 2+ месяца не запаривает, наверное можно и поебаться с косоглазыми соседями...
754 243393
>>243257
Тебе от китайского продавца сообщение «Sorry, friend, но я такой хитрожопый, что отправил тебе посылку без трека, хотя обещал ChinaPost Registered» приходило? Ну или просто в описании метода доставки была какая-то поебень вроде ChinaPost Small Packets? Если да, то не удивляйся — безтрековая доставка из Китая это лотерея: может идти пару недель, а может полгода (или вообще пропадёт где-то по пути).
755 243396
>>243363

> продавец тормоз, наложенный платеж не подходит, на карточку деньги принять боится, только личная встреча


Проиграл с этого Джеймса Бонда.
756 243405
>>243393

>Тебе от китайского продавца сообщение «Sorry, friend, но я такой хитрожопый, что отправил тебе посылку без трека, хотя обещал ChinaPost Registered» приходило?


Нет, такого не приходило. Вообще сообщений не было.
21 Кб, 920x407
757 243406
>>243393
Последние по дате сообщения не совсем понятны. Посылка что ли недавно таможню прошла?
758 243412
>>243406
Она где-то между таможней и сортировочным центром. Может, на складе отгрузки таможни. А может и на складе приема сортировки неотсканенная валяется. А может еще где.
759 243443
Друзья, хочу научиться прогать мк. Начну именно с ARM(есть необходимость). Но плату лень паять, а программатор лень покупать. Вот нашел Iskra Neo ATmega32u4. Прогается череp usb кабель. Можно на нем поучиться? Светодиодиком моргнуть для начала, потом посложнее. Только там не совсем C++, а какой то упрощенный. Я ведь в правильный тред попал. Меги это ARM а не AVR? Я новичок и в голове у меня каша. Но не хочу начинать с чего попроще типа пиков. C++ я немного знаю и чуть знаком с ассемблером, но специфику программирования мк пока не очень понимаю.
Если та плата говно и моча посоветуйте с чего начать.
760 243460
>>243443
Меги - это АВР.
Для совсем ньюфага сойдёт. Научишься мигать светодиодами и читать даташит. Разберешься с регистрами и зачем они. Если пишешь на С, то разницы именно в проце ты не заметишь при перекате, а вот переферия будет совсем другая, так что не задрачивай её особо. Она не только между семействами разная, но и сами наборы для каждого чипа разные, именно по этому их такой зоопарк. Из знакомства с аврками ты должен осилить идею, а потом перекатишься как сможешь себе позволить.
761 243472
Это снова анон, которому идет STM32. Что мне нужно знать для начала, чтобы не быть ардуинщиком? Например, надо ли подключать диоды через резистор?
762 243474
>>243472
И если да, то какие резисторы нужны?
763 243481
>>243474

ты же ардуищег ебаный, нахуя арм заказал дебил?
764 243484
>>243481
Неа, я функциональщик и пишу на scheme. А ARM заказал, потому что раньше доставляло писать на асме, вскрывать крэкми и дергать функции ядра. Хочу подергать прерывания микропроцессоров теперь.
765 243486
>>243212
Я тоже пердолился. Вкрадцыи, есть проблемы с отладчиком
766 243489
>>243484
Помогите обезьяне ничего не спалить. По формуле при силе тока 5 В и рассчитанном на 20 мА диоде сопротивление должно быть 240 ом, так? А если выходное напряжение 3.5 В, то должно хватить 175 Ом. Таких резисторов мне хватит?
1,4 Мб, 3072x1728
767 243501
>>243489
Там уже есть пара светодиодов, на плате, хватит, чтобы помигать.
Я сегодня, как пришла плата, поморгал сразу 167 светодиодами. Мне понадобится.
Перекат с пиков состоялся. Но покопавшись в даташитах, я, признаться, охуел мощно.
768 243506
>>243489

>при силе тока 5 В


Гм.
769 243508
>>243486
Сейчас в qtcreator завезли плугин bare metal который решает все проблемы
770 243509
>>243489
По опыту 20 ма и современный светодиод превращается в ебаный прожектор выжигающий глазки прямо до задней стенки черепа. Ставлю 3 килоома и все норм. Можно смотреть.
771 243515
>>243509

> светодиод превращается


Это какой превращается? Ты там не закупил по случаю у китайцы одноваттных светодиодов?
772 243516
>>243515
Просто нынешние светодиоды чудовищно эффективны по сравнению с АЛ307 всякими, для заметного глазу свечения типа индикации вкл/выкл им иногда достаточно микроампер.
NumLock ебучий лаком закрашиваю.
773 243531
>>243509

>По опыту 20 ма и современный светодиод превращается в ебаный прожектор выжигающий глазки прямо до задней стенки черепа


Охуенно же. Лишь бы не сгорал.
774 243534
>>243472

> Что мне нужно знать для начала, чтобы не быть ардуинщиком?


Электронику. Хотя бы в объёмах пикрелетедов.
775 243566
Такс такс такс анончики, сделали плату на работе arm926. Оче собираюсь накатить линукс, в основном из-за драйверов, сети и ссш. Правильно ли я понимаю, что мне стоит собрать ядро линукса под свои нужды?
776 243568
>>243566
Да. Ещё тебе понадобится сорт оф загрузчик, у-бут по дефолту. Его тоже нужно сконфигурировать и собрать.
777 244096
>>243501
Нот со изи. Как вкатился, так и выкатился. Много, много, много читать теперь.
219 Кб, 900x506
779 244608
Подскажите пожалуйста что годного можно собрать на ST10F273M?
780 244661
>>244608
Светодиодом помигать.
781 244946
>>244661
Светодиод не годно. Что полезное из приборв например?
782 244956
>>244946
Пойди, пожалуйста, нахуй. Вопросы из разряда "у меня есть ёба, что на ней сделать годного?" являются крайней формой идиотизма. Надо выбирать контроллер под задачу, а не наоборот. Но ответ на твой вопрос есть: используй его для того, для чего его уже использовали. Вангую, что в твоём случае это а-ля сигнальный процессор. Но я тебя сразу предупреждаю -- ты заебёшься учить всё то, что нужно для его использования, ибо тема весьма специфичная и ты должен заранее понимать, к чему ты идёшь и как ты этого будешь достигать.
А в науку тебе и тебе подобным могу сказать: бери задачу, ищи под неё исполняющий механизм, актуальный на сегодняшний день и доступный тебе "здесь и сейчас", а потом эту задачу решай. У меня, к примеру, лежит PicKit2 и несколько их контроллеров. Я на них кодил под ассемблером и под C. Дак вот, на данный момент я уже несколько лет как работаю с STM32 по долгу службы, и это PIC-говно я готов выкинуть нахуй, ибо дорого, уёбищьно и нахуй не нужно, если только придётся кодить под существующий проект, и то задумаюсь, надо ли это мне, может проще сделать плату-переходник STM32-PIC.
783 244965
>>244956
серьезный дяденька
784 245356
>>244956
Мне интересно конкретное устройство которое на этом контроллере. Например измерительный прибор.
785 245661
Поцаны, помогите, я тупой:(
Купил STM32F4, спиратил софт отсюда: https://rutracker.org/forum/viewtopic.php?t=2305709 думал по гайдам потихоньку разобраться что к чему по этим http://microtechnics.ru/stm32-uchebnyj-kurs-keil-sozdanie-proekta/.
А там и версия у keil-а другая и библиотеки качать надо и все равно в этих библиотеках нет тех файлов, что на скринах. Как кароче эту штуку запустить? Может на ютубе есть что-то годное? для даунов Алсо, я в английском слабо шарю.
786 245662
>>245661
Зайди на сайт st.com и скачай последний stm32 periph lib или как там, если в поставке кейла что-то и есть там старое.
787 245663
>>245661
Чем ГЦЦ не угодил?
Сразу на проприентарщину уселся.
Вот годная либа же >>244493
788 245665
>>245662
Скачал
>>245663
Еще сложнее стало(
789 245672
>>245665

>Скачал


И?
Лог выкладый показывай в чем проблема.
790 245673
>>245672
Я пока не понял как её подключать. Видосики смотрю вот.
791 245748
>>187056 (OP)
позвольте тупой вопрос:
начинаю прогать таймер systick и не могу понять как его на 1мс сконфигурить?
792 245782
Пришла STM32VL DISCOVERY и периферия. Хочу начать программировать.

1. Какую срезу разработки выбрать?
2.Устанавливал CooCox, но не разобрался, как подключать библиотеки, необходимые для разработки под мою STM. На маленьком чипе маркировка STM32 F103C8T6, но в CooCox такого чипа нет, а есть чип похожей модели. Нужных библиотек в настройках проекта не оказалось. Что выбрать для программирования именно этой STM?
793 245788
>>245782
Алсо, посоветуйте недорогой программатор по SWD.
794 245792
>>245782
Там же уже есть программатор на борту?
795 245793
>>245792

>Там же уже есть программатор на борту?


Я нагуглил, что через mini usb прошить нельзя.
796 245901
>>245788
st link 2 на ани 150р.
798 245970
>>245908
Да, о нем.
только с ценой ошибся.

>150,11 руб. / шт.

13 Кб, 464x462
799 245993
>>245782
Попробуй EmBitz, минусы конечно есть, но всяко лучше кокоса.
800 246131
>>245793
По UART шей.
801 246170
>>245993
Поясните за эту IDE. Почему не появляется менюайтем выбора прошивки? Или он появится после подключения программатора?
802 246211
>>246170
Насколько знаю, там только активный проект прошить можно после компиляции. Для готовых прошивок можно STM32 ST-LINK Utility применить.
803 246302
>>246211

>Насколько знаю, там только активный проект прошить можно после компиляции. Для готовых прошивок можно STM32 ST-LINK Utility применить.


Подробнее можно? Вот я скомпилировал проект в релизе, но кнопка прошивки в Tools, также якобы доступная по F6, не появилась. Способов сделать проект активным, похожих на "сделать проект главным" в сишных IDE, не вижу, в контекстном меню нихуя нет.
15 Кб, 725x178
804 246358
>>246302

>кнопка прошивки в Tools, также якобы доступная по F6


Где ты про F6 прочитал, у меня кнопки прошивки тоже нету. Проект заливаю через отладку.
805 246390
>>246358
Что за ебанутая IDE? Нахуя заливать в память дебаг-сборку?
806 246428
>>246358
Алсо, что означает Debug Server is closed/terminated, debug session will stop? Это из-за того, что плата не подсоединена, или надо запускать какой-то демон для дебага?
807 246430
>>246390
Так аффтор захотел, впрочем доп кода для отладки не заливается, так что забей.

>>246428
Так стмка конечно должна быть подсоединена, дополнительно ничего не нужно. У меня заработало искаропки.
808 246743
Господа, есть гуру программирования на HAL для STM32? Не могу понять логики работы функций через прерывания, интересует именно I2C - в каком порядке и при каких условиях идет, например, передача?
809 247130
>>246743
Говоришь железки послать данные, оно шлет и генерит прерывание
и наоборот - оно приняло данные и генерит прерывание
810 247603
Сап аноны. Как обычно шьют пзу? Через uboot, например, когда накатывают линукс? Накидайте тегов плез
811 248934
>>247603
какой арм?
812 248994
>>248934
Я не он, но тоже интересен этот ответ. Камень - STM8S
813 249004
>>247603
>>248994
На таких контроллерах прошивка заливается стандартным житагом и остается там после выключения. Тут как бе вопроса как такового и нет.

Uboot умеет в NOR/NAND флеш. В нем прописаны тайминги для флешки. Есть стандартные команды nand write/read/erase.

Образ кернела предварительно заливается через tftp в ddr, а потом записывается в nand: есть команда tftp в uboot.

В самом uboot есть параметр bootcmd где прописывается что-то вроде:
nand read 0x90000000 0x100000 0x300000 и bootm 90000000 - считать начиная с 100 блока нанд (нанд видится блоками по 128кб - 0x20000 * 100 = 0xC80000) 0x300000 байт и поместить в DDR по адресу 0x90000000. С
bootm 90000000 - начать загрузку kernel с адреса 90000000

В моем случае и uboot и линукс загружаются по tftp без мозгоебли с флеш. Сам контроллер умеет загружаться по ethernet.

Гугли arm u-boot user guide и arm uboot flashing tools.
лсд 814 249098
Есть у кого годная инициализация для hx8347G? Поднял на stm32f745 FMC читаю регистры, пишу всякое, но на экране пустота.
247 Кб, 1600x1600
815 249195
Работаю с STM32F407ZG DISCOVERY.
При переключении пинов фронт занимает ~500мкСек. При запуске идентичной программы уже на Olimex E407 время установления фронтов занимает 50нС.
В чем может быть проблема?
816 249201
>>249195
У кота какое-то хитрое выражение морды. Он явно в этом замешан.
817 249346
Подскажите недорогой программатор.
В этом деле я нуб. ПРограмматор нужен под разные типы микрух свой или они универсальные под одну архитектуру?
818 249347
>>249346
Универсальный программатор стоит как боинг. Определись, что ты хочешь программировать. Судя по запросу нихуя ты ещё не хочешь, даже не понимаешь специфики.
Контроллеры, как правило ARM архитектуры, они программируются через Jtag и SWD. Если говорить про "микрухи", которые микрухи памяти, то тут много вариантов, и программатор стоит дорого.
Ты - хуй.
819 249349
>>249347
допустим STM32
820 249353
>>249349

>STM32


Тогда без разговоров бери STM32DISCOVERY демо плату, там тебе будет и SWD и контроллер на поиграться. Стоят они адекватных денег. Сразу F4 не бери -- заебёшься, начиная хотя бы с трёхсотой, чтобы уж совсем низко не падать. Пересесть с F3 на F0 всегда сможешь. Я по работе начинал с STM32F373, но для себя начал работать с STM32F030, ибо они стоит 50 Р за корпус, проблем при пересадке нет. Однако, F4 уже шагнула вперёд, там немного другие принципы программирования и работы с ними. Учиться лучше на F3 и ниже, а после этого тебе и F4 будут по плечу...
821 249355
>>249353
спасибо, а где лучше заказывать?
822 249357
>>249353
эту плату можно будет потом в качестве программатора юзать?
823 249366
Как можно слезть с keil/iar/прочего под шиндоус? В чем писать, чем и как компилить, как заливать? Это вообще возможно? Желательно опенсорс. Несколько лет писал всякое мелкое дерьмо под армы и атмелы, и всегда пользовался этими средами, теперь хочу менять работу, а на меня там как на ебанутого на собеседовании поглядели - ты что, и скрипты линкеру ни разу не писал? и далее по списку.

>>249357
Да. У самого такая валяется, но в качестве программатора не использовал пока ни разу. У них на сайте документ UM0919:

>2.2 Embedded ST-Link


>The ST-Link programming and debugging tool is integrated on the STM32 value line


>Discovery. The embedded ST-Link can be used in 2 different ways:


> to program/debug the MCU on board


> to program/debug an MCU in another application board using a cable connected to SWD connector CN2.


>For information about debugging and programming features refer to ST-Link UM0627.


Открывай UM0627 с их сайта и раскуривай. Если плату usb-разъемом от себя повернешь, то слева коннектор 4х1 как раз SWD.
824 249391
>>249366

>Как можно слезть с keil/iar/прочего под шиндоус?


Собственно с открытыми средами разработки проблем нет, просто их все надо настраивать на работу с той или иной конфигурацией. С компиляторами/линкерами тоже проблем нет, GCC умеет в арм. Открытая версия драйвером под Liunx для ST-LINK есть, но с ней, видимо, придётся потрахаться. Из того, что я читал о их реализации, ясно что внутренная структура ST-LINK весьма, эмм, специфична.
Atollic True Studio кстати бесплатная, но не помню, открытая ли.
825 249397
>>249391
А под шиндоус открытые драйвера есть? Я только помню, что давно когда-то на работе накатывал на комп паленый segger, чтобы использовать паленый китайский ноунейм программатор.
Получается, подойдет любая среда, к которой можно прикрутить gcc для арма? А процесс отладки непосредственно в мк как при этом выглядеть будет?
826 249398
>>249366

>Как можно слезть с keil/iar/прочего под шиндоус? В чем писать, чем и как компилить, как заливать? Это вообще возможно? Желательно опенсорс. Несколько лет писал всякое мелкое дерьмо под армы и атмелы, и всегда пользовался этими средами, теперь хочу менять работу, а на меня там как на ебанутого на собеседовании поглядели - ты что, и скрипты линкеру ни разу не писал? и далее по списку.


Eclipse.
827 249399
>>249346
Китайский J-Link, лучше HW ревизии 9.
828 249400
>>249195

>В чем может быть проблема?


Скорее всего в железе:
- Посмотри, что там у тебя на пине сидит;
- Попробуй выводить на пин другого порта;
- Прочисти контакты со спиртом;
- Смотри питание микросхемы во время переключения пинов.
829 249401
>>249397

>А под шиндоус открытые драйвера есть?


Не слышал, но если есть по Linux, то можно адаптировать и под винду. Вот только зачем, если ST и так предоставляет драйвера?
>>249397

>Получается, подойдет любая среда, к которой можно прикрутить gcc для арма?


GCC то можно к любой среде прикрутить, а вот как будет отладка работать -- для меня большой вопрос. На уровне breakpoint-ов и простых watch-ей, думаю, проблем нет, а таких плюшек как, например, регистры, память, live-watch и прочее из IAR, сомневаюсь.
830 249407
>>249401

>регистры, память, live-watch


Всё это есть в gdb.
831 249408
Суп господа, обоссыте нюфаню по делу за архитектуру приложения. Хочу сделать прибор для замера ИК излучения с удаленной передачей.
Датчик: таймер инициирует считывание с I2C. Прерывание I2C складывает данные в буфер. Колбэк I2C вызывает передачу данных по SPI. Параллельно идёт лог в UART всех действий.
Приемник: SPI складывает полученные данные в буфер и вызывает передачу в UART.
Делать все планирую на F030F4 + NRF24L01, питание от 18650.
832 249412
>>249407

>Всё это есть в gdb.


А с ST-LINK нормально дружит? (Я, честно говоря, не до конца понимаю механизм работы.)
833 249414
>>249408

>прибор для замера ИК излучения с удаленной передачей


Нахуя такой зоопарк протоколов?
Поясни задачу нормально, что такое замер ИК я не понимаю. И "удалённую передачу" ты по какому протоколу гонять собрался?
834 249418
>>249412
Да, без проблем. Погугли "gdb st-link", тебе выдаст кучу инфы.
835 249432
>>249414
замер ик-спектра будет с помощью датчика tsl2561(I2C), удаленная передача с помощью NRF24L01(SPI), уарт для диагностики. Протокол скорее свой, велосипедный или упрощенное подобие modbus.
836 249439
>>249432
Ну, то что ты описал про программу похоже на правду. Но дьявол, как всегда, кроется в деталях. Как я понимаю, у тебя будет основной цикл бегать в int main(), и из него будет вызываться всё остальное, а интервалы между замерами будут выверены таймером, т.к. остальное уже в цикле основной программы не имеет временной привязки.
837 249491
>>249418
У меня тот тексановский st-util бинарь, что гуглится, нормально работать не хочет, пришлось собирать из исходников
Еще рабочую, но с другим выводом версию можно выковырять из visualgdb
838 249497
>>249355
удваиваю реквест?
у китайцев рискованно, гугл выдаает только чип и дип
839 249500
>>249353
где брать то?
840 249508
>>249439
По сути я планирую программу на чистых прерываниях без какого-либо кода в главной петле программы.
841 249512
>>249497
В чем риск заключается?

Вот кстати превосходный магазин https://ru.aliexpress.com/store/908915
842 249588
>>249508

>на чистых прерываниях без какого-либо кода в главной петле программы


Это плохая идея. Прерывание должно обрабатываться быстро. Всю остальную обработку нужно передавать из прерывания в основной код, ты это делать собираешься, или как?
843 249589
>>249512

>В чем риск заключается?


Можно заказывать и у китайцев. Мне вот пофиг, на 100-200 р дешевле у дяди Ляо, или здесь и сейчас в Промэлектронике, например, купить. Но здесь и сейчас у локального (я именно про Промэлетронику говорю) мне нравится больше, т.к. если что я воспользуюсь гарантией. Впрочем, если не насиловать выводы, всё будет хорошо.
844 249645
>>249588
В прерываниях идёт лишь укладка данных идёт, порядок вызова определяется через колбэки
845 249659
>>249645

>колбэки


Да как, блядь, вылезти из контекста выполнения прерывания??? Нихуя не понял.
846 249765
>>249645

>порядок вызова определяется через колбэки


Ты чё там, обосрался??? Начальник!!! Начальник!!! Этот пидор обосрался!!! Я с ним тут сидеть не буду!!!
847 249875
>>249366
Я пристастился к QtCreator + Cmake
QtCreator - быстр и всё есть
Cmake - Не могу в голый Makefile, тоесть могу что-то поправить, но не с нуля зебенить. В симэйке есть свои заёбы, и много, но я однажды запердолился, чтобы и в прыщах и в сперме собиралось и теперь ненарадуюсь ФУНКЦИОНАЛУ
Как выше писали, ГЦЦ отлично собирает под армы, гдб отлаживает у меня J-link с али.
Линкер-шкрепты то еще веселье, но по большей части всегда есть примеры или прям готовые для твоего камня помню, как в перый раз с ними пердолился пик стронгли релейтед, но это не под арм.

>>249397

>А процесс отладки непосредственно в мк как при этом выглядеть будет?


Для моего J-link'а скачал какой-то китайский бинарь, который прикидывается GDB-сервером и слушает порт, далее из ИДЕ настраиваешь подключаться к этому порту и всё взлетает. Говорят можно так же через openOCD, но там вроде не работает SWD

>>249397

>А процесс отладки непосредственно в мк как при этом выглядеть будет?


Ну в камне же есть спец модуль, с которым ты общаешься через JTAG/SWD, он имеет власть над процом и системной шиной, по команде отладчика он стопорит прцессор, может читать любой байт из памяти, даже IO правда это не всегда имеет смысл, и содержимое любого регистра.
134 Кб, 756x931
848 249877
>>249875
Пик отвалился
849 249916
>>249875

>QtCreator


С Qt, надеюсь, только название общее?
Алсо, я походу вообще неправильно понимаю, что такое make, и зачем им пользуются.

>ГЦЦ отлично собирает под армы, гдб отлаживает


А что насчет просмотра состояния регистров проца? Можно, конечно, по адресу в окне memory смотреть - когда кейл тупил для какого-то nxp-шного мк, я так делал, но это пиздец просто как неудобно.

>Для моего J-link'а скачал какой-то китайский бинарь


Пердолинг и недели поиска или всё гораздо лучше?

>Ну в камне же есть спец модуль, с которым ты общаешься через JTAG/SWD


Да это я знаю, меня интересовало, как с этим всем будет работать среда и сможет ли вообще. Я пока не настолько хорошо пишу, чтобы не отлаживаться внутри процессора вообще.
850 249923
>>249398

>Eclipse


От говнокодеров говнокодерам
Засрем своим говном и микроконтроллеры тоже
258 Кб, 1440x900
851 249981
>>249916

>С Qt, надеюсь, только название общее?


Нет, это ИДЕ специально для Qt написанная на Qt

>А что насчет просмотра состояния регистров проца? Можно, конечно, по адресу в окне memory смотреть - когда кейл тупил для какого-то nxp-шного мк, я так делал, но это пиздец просто как неудобно.


Пик релейтед, правда это не арм, но в арме так же

>>249923

>Eclipse


Сидел на нём, но марс оказался слишком забагован и тормознут и я дропнул.
852 250079
>>249004
Спасибо, но вопрос уже проработан.
Микроконтроллер - atmel at91sam9x5. Этот выблядок не имеет пользовательской пзу и имеет 16кб озу, и поэтому приходится изъебываться с помощью т.н. SAM-BA, утилита атмела для работы с их платами.
Также людьми и атмелом был разработан бутстрап это ультралегкая программа, выполняемая из озу мк, которая подготавливает плату и загружает юбут.

И ядро, и юбут, и бутстрап, и дтб, и даже образ фс (я взял тупо buildroot), я загружал в nand через эту самбу.
4,2 Мб, 318x287
853 250084
>>249916
make - стандартная программа линуха, которая выполняет файл makefile. В нем, в свою очередь, описано как, где, зачем, кем будет собираться твоя программа. Там описаны файлы, библиотеки для сборки, флаги компилятору, линковщику и т.д.

Язык, на котором все это описано, сложен и не интуитивен, поэтому люди используют различные генераторы типа cmake, которым ты почти человеческим языком указываешь сборку, а он уже лепит makefile.
Очевидно, что мейкфайл, грубо говоря, схож для арма и х86, для винды, линукса, для питона и cpp.

QtCreator - среда, которую пилили для фреймворка Qt. Но он оказался настолько легок и функционален, что на нём стали писать программы, в которых совсем нет Qt и qmake. Нормальная навигация по коду, всяческий рефакторинг напрочь отобьет уебищный богомерзкий иар.
Есть гайды по настройке QtCreator для арм. По схожей настройке ты хоть для пиков сможешь писать.
854 250115
>>250084
Плохо объясняешь. Make это программа-менеджер компиляции, позволяющая автоматически разрешать порядок зависимостей при сборке и не пересобирать то что уже собрано.

>на котором все это описано, сложен и не интуитивен


Неправда. Задаются цели (это обычно имена файлов, но могут быть и нефайловые phony-цели), для достижения цели пишется последовательность действий, например вызов компилятора. Стоит учитывать что это не башскрипт, здесь каждая строка работает изолированно, как отдельный башскрипт, и переменные работают чуть иначе. Зато например можно делать wildcard цели, вместо прописывания действий каждому файлу.

Make позволяет там где можно компилировать в параллели, если вызывать его через make -jN, где N максимальное количество потоков.

Я бы так примерно разложил: для совсем простых хелловорлдов компилятор можно вызвать руками, для проектов сложнее писать мейкфайл, для совсем сложных проектов генерировать из cmake. Отдельная пляска начинается при портировании приложения на разные платформы, там уже требуются configure скрипты, которые кстати тоже можно генерировать, cmake вроде с этим может совладать тоже.
855 250125
>>250115

>там уже требуются configure скрипты, которые кстати тоже можно генерировать, cmake вроде с этим может совладать тоже.


Cmake - это замета автотулзам так-то, он умеет всё, что умеют они и понятнее по синтаксису.
Алсо есть еще плюхи, вроде скачивания либ прямо из гита в процессе сборки и их подключение к проекту.
Например, в прыщах у меня есть либа libpthreads, а вот в сперме надо скачать и собрать libpthreads-win32 и статически прилинковать к проекту.
856 250129
>>250125
синтаксис там оче простой, не большая жопа случается с макросами, ну и объемами тащемта для компиля ядра
857 250139
>>250084

>В нем, в свою очередь, описано как, где, зачем, кем будет собираться твоя программа.


То есть, по сути, это как настройки сборки проекта в IDE, только без IDE, так?
Про QtCreator понял, спасибо. Обязательно попробую, только я из постов выше так и не усвоил, есть ли необходимые драйвера и прочие инструменты для шиндоус? GDB тот же по-моему только для linux имеется.
858 250146
>>250139

> То есть, по сути, это как настройки сборки проекта в IDE, только без IDE, так?


Безусловно, но сверх того еще всяки плюхи.
Но главное не это! В makefile ты можешь написать совершенно любую логику, тогда как в настройках иде она весьма ограничена разрабом иде.
Алсо, как ты собрался переносить сборку с одной пеки на другую?
В ридми напишешь: настройки проекта->парамеры кококомпилятора->поставит галку тут тут и тут? Ну ты понял.
117 Кб, 1024x768
859 250147

>поставит галку тут тут и тут


pdf с картинками к исходникам было бы вооще шикарно
860 250185
А я бы отсосал за мэйкфайл для HAL проектов от CubeMX.
861 250256
очередной содом
862 250345
>>250185
Сегодня немного постиг doxygen. Вышел на него после долгого гугла визуализации классов, в любом виде, не только uml. Есть какие-либо альтернативы? Doxygen справился отлично, но это не его прямая задача
863 250349
>>250345
Я как-то пытался заставить себя пилить документацию на нем, роаботает конечно охуенно, но надо моч в его разметку, и самое главное не лениться это делать. Ни кто не оценил и времени делать так везде нету.
30 Кб, 809x439
864 250407
Хочу прошить STM32VL Discovery. Использую Keil и ST-Link. Прошивку ST-Link обновил, подключаю его к STM32 четырьмя кабелями SWDIO, GND, SWCLK и 3.3V питание. Почему-то прошить никак не получается.

Проект скомпилировался и получился файл Main.axf, который весит дохуя, и маленький hex-файл.

Сначала я пытался прошить при помощи ST-Link Utility. Открыл в ней hex-файл, подключил в один USB стм, в другой - ST-Link, но при попытке приконнектиться возникает ошибка пикрелейтед.

Когда пытался прошить через Keil и нажал Download (F8), получил ошибку Error flash download failed - couldnot load file Main.axf.

Что я делаю не так? И как прошить только код, а не все говно, которое лежит в axf-файле?
865 250408
>>250407
Еще keil выдает ошибку No target connected при обоих подключенных девайсах.
866 250420
>>250408
Так у тебя не с прошиванием а коннектом похоже проблема. Если все правильно соединено, должен добиться коннекта через stlink. А потом лучше все делать в хайле. Создаешь проект, настраиваешь тип программатора, например stlink, там прописываещь тип соединения sw. Пишешь код, компилишь, запускаешь. Он сам знает что какой бинарник прошивать, не надо это вручную делать
867 250421
>>249366
Я на виндах пользуюсь и хайлем и эклипсом. Хайль шустрый и хороший отладчик, но во всем остальном хуета. Эклипс наоборот, медленый монстр, но охуенен как редактор и отладчик там годный. Да, в отличие от кeil, gcc требует скриптов к линкеру, но в 99% случаев тебе их писать не придется, просто берешь готовые. Это пидоры типа двачеров просто опустить тебя заходели. Большинство ембедщиков хуй тебе с нуля линкер скрипт напишут, ибо нахуй не нужно. Максимум подправить размеры памяти, стека и тп. Если конечно бутлоадер будешь писать, или зачем-то нужно чтобы код во флеш не с нулевого сектора загружался (чтобы например настройки сохранять в начальных секторах небольшого размера), то тогда да. Что касается отладчиков под эклипсом, я пользуюсь и seggerом (в эклипсе напрямую) и stlink - через Open OCD и чуток настройки подправить.
868 250423
>>250084
Ну нахуй в 2016 писать руками мейкфайлы. Не нравится keil или eclipse, есть еще Atollic studio, или emblocks, или этот... миниатюрная копия эклипса, маленький но придурковатый, вылетел из башки. Короч все они умеют сами makefile генерить, зачем этот мазохизм.
869 250424
>>249397

>подойдет любая среда, к которой можно


Нет, заебешься ты "любую среду" под себя затачивать. Бери готовую интегрированную среду с поддержкой arm - eclipse+arm плагин, или atollic studio и тп. Там все будет и компиляция и прошивка и отладка.
870 250430
>>250423
Ради QtCreator, он турбоняша
871 250448
>>250430
Сложилось стойкое убеждение, что ПО с префиксом Qt - рукожопное творение школоты
872 250457
>>250448
На самом деле нет, Qt охуенный. Ваяю на нём по мелочи.
873 250492
Господа, есть Parallel Output ADC, то есть когда по внемешнему клоку на ногах D0..Dn выставляются биты семпла. Дак вот, а сможет ли STM32 легко и непринужденно тактировать АЦП и читать семплы, с буферизацией, типа по прерыванию получать указатель на заполненный массив сэмплов. Или придется вручную дергать ногой, считывать состояние ног данных, складывать в массив?
874 250493
>>250492

>Или придется вручную дергать ногой, считывать состояние ног данных, складывать в массив?


This.
Тебе быстро надо?
875 250497
>>250493
Ну вообще да, быстро, АЦП 10 МГц может держать. Как-то грустно прям, думал можно это все переложить на периферию а ресурсы проца только на обработку тратить.
876 250498
>>250492
Можешь это как-то по другому объяснить, что тебе нужно делать? Тебе нужно несколь ADC пинов одновременно опрашивать или что?
877 250500
oxyeный тред
878 250501
>>250498
А, все понял, познакомился что такое Parallel Output ADC. А зачем его юзать, если у STM32 есть свой ADC?
879 250506
>>250498
Ну вообщем да, АЦП - AD9220, по фронту input clock на ногах BIT1-BIT12 собственно выставляет биты сэмла, плюс еще есть нога переполнения OTR. Вот как раз хотелось-бы таймером тактовать clock и опрашивать ноги BIT АЦП, на основании которых формировать значение сэмла.
>>250501
у STM32 есть свой ADC?
Частота дискретизации низкая. AD9220 думаю получше встроенного будет и по другим параметрам.
880 250507
>>250420

>Так у тебя не с прошиванием а коннектом похоже проблема. Если все правильно соединено, должен добиться коннекта через stlink


Что могло пойти не так? Я соединил соответствующие выводы на программаторе и плате, снял перемычки, жал даже резет, но не работает.
881 250514
>>250507
Трудно сказать. Давай какие нибудь пикчи - как надо, как соединял. У меня где-то валяетс discovery если найду посмотрю, но вроде там все просто - соединил и работает.
882 250522
>>250506
А вижу, у тебя 10msps а в STM32 2.4msps.
Но если ты будешь 12 пинов в ручную читать и в массив складывать, то насколько это замедлит?
Посмотри на DCMI или FSMC.
169 Кб, 1024x768
883 250527
>>250514

>Давай какие нибудь пикчи - как надо, как соединял


И мануал http://rgho.st/6Z4wNZTvB
884 250531
Что такое хейл? Не могу нагуглить.
885 250537
>>250531
не хейл а keil. читается хайль почти
886 250538
>>250527
А разве на дискваре не стоит встроенный stlink?
887 250539
>>250538
Оказалось, что перемычки не надо снимать, если программирую внешним ст линком.
888 250540
>>250539
Алсо, прошиваю hex-файл при помощи ST link utility. Keil выдает ошибку No st link found with the expected serial number.
889 250541
>>250540
Поменял JTAG на SW?
890 250542
>>250541
Да, поменял. SW там стоит по умолчанию.
891 250543
>>250539
А зачем тебе мудохаться со внешним. Попробуй встроенный
45 Кб, 633x443
892 250544
>>250541
Вот так настроено.
893 250545
>>250544
Может то что он in use пишет, у тебя stlink utility его держит? Так то все верно выглядит
894 250547
>>250545
Да, stlink utility его держал. Теперь in use исчезло, но прошить через keil все равно нельзя: No target connected.
40 Кб, 640x474
895 250548
Еще вот это покажу. Может, hw reset выставить как в stlink utility?
19 Кб, 633x444
896 250549
>>250547
Мне кажется ты по какому то сложному пути пошел. Сейчас выудил свою дисквари из кучи мусора, воткнул mini usb и все заработало, см пик. Никаких перемычек никогда не трогал.
897 250551
>>250549
Вряд ли по сложному пути. Соединил stlink четырьмя кабелями с SWD-разъемом на борде, mini usb от борды воткнул в юсб, stlink в другой usb.
898 250552
>>250551
Зачем тебе внешний stlink вообще. Тебе только кабель от USB воткнуть в дискавери и все.
899 250553
>>250551
Теперь я отключил mini usb дискавери, и он получает питание и данные только от ст линка. В настройках хайля ст линк определился. Когда жму F8 Download, один раз возникла ошибка internal error, а сейчас no target connected.
900 250554
Создай проект, скомпили хело ворлд и попробуй запустить его. Я никогда hex не грузил отдельно, зачем.
901 250556
>>250552

>Зачем тебе внешний stlink вообще


Раз уж взялся, то интересно довести до конца.
902 250557
>>250556
Ты все делаешь чтобы максимально заебаться. Подключаешь внешний stlink, и грузишь отдельно hex файл, вместо того чтобы просто воткнуть провод в дискавери, написать пару строк хело ворлд и запусть свой проект и все. Пять минут.
19 Кб, 300x462
903 250561
>>250506
Открою секрет. Идешь на форум st и там всегда в углу сидит старый азиатский дед из "Матрицы". Забыл как его там звали, но на st он кажется cleve1. Он охуенен и все знает. Я всегда к нему пристаю. И этот вопрос там тоже обсуждался. У меня в голове куча бредовых проектов, но как только я разбираюсь КАК нужно делать, у меня тут же пропадает интерес, так что ни один не сделал. Например цифровой осциллограф на ёбагерцы. Окозывается они пилятся на суперскоростных ADC, которые не один контроллер не в состоянии читать. Между ними нужно сажать FPGA. И вообще, даже для более низких скоростей, как у тебя, STM32 архитектура не предназначена для параллельного синхронного ВВОДА (вывод есть, через FCMS или как эта хуета называется).
904 250609
>>250561

>Между ними нужно сажать FPGA.


Да, изначально делал на FPGA, но сейчас опять присматриваюсь к STM32, из-за наличия dsp, ну и допилить что-то свое гораздо проще. Единственное, что пока останавливает - если допустим разогнать до 100МГц, и читать данные на 10МГц, то на обработку одного сэмла остается всего 10 тактов... Но чую, что я где-то обосрался в рассуждениях.

>И этот вопрос там тоже обсуждался.


Может тогда ссылочку скинешь?

>STM32 архитектура не предназначена для параллельного синхронного ВВОДА


А как же AN4666.
905 250619
>>250609

>AN4666


ебаать, сложна! не знаю, может в том обсуждении на форуме имелось ввиду что штатных методов нет, а через такое изъебство возможно, хз. сцылку не дам, это был рандом поиск по форуму на st, уже не помню как нашел. пили как написано, чо.
906 250637
>>250561

>Окозывается они пилятся на суперскоростных ADC


Чому делители частот не канают?
907 250660
>>250556
RST к мк подключил? Без него не заработает.
908 250667
>>250619

>пили как написано, чо.


Таки да, только там тактирует передающий, а мне нужно чтобы тактировал принимающий, но ладно, буду разбираться. Единственное, что еще волнует - производительность. Мне например нужно понять потянет ли arm_fir_decimate_fast_q15 с заданным количеством коэфиициентов поток данных в 10MSPS. Есть какой-нибудь инструмент для оценки перфоманса или вручную замеры делать придется?
909 250683
>>250660
Нога RST не нужна, никогда не подключаю, и так все должно работать (программный ресет)
910 250697
>>250667

>почти что надо, только там все наоборот


Ну удачи тебе, может и взлетит

Вот ксати ссыль на мастера ключей, но вряд ли тебе поможет, просто так сказать для отчетности:
https://my.st.com/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Flat.aspx?RootFolder=/public/STe2ecommunities/mcu/Lists/cortex_mx_stm32/Fast gpio read with sync&FolderCTID=0x01200200770978C69A1141439FE559EB459D7580009C4E14902C3CDE46A77F0FFD06506F5B&currentviews=469

Он кажется во втором посте и намекает на что-то такое, что в твоем application notes.
225 Кб, 900x900
911 250945
>>250697
Спасибо, бро. Почитал, погуглил еще. Короче будет единичная транзакция DMA в режиме память в память, где источник регистр GPIO. Транзакция будет выполнятся по таймеру. Частота таймера и будет частотой семплирования. Вроде не сложно должно быть. Короче прикупил вот такую махарайку https://ru.aliexpress.com/item/Free-shipping-STM32F407VET6-development-board-Cortex-M4-STM32-minimum-system-learning-board-ARM-core-board/32618222721.html
К ней нужен еще программатор или все уже на борту есть?
912 250946
>>250945
Судя по пикче нужен программатор.
913 250950
>>250946
по УАРТ нельзя прогу закинуть?
914 250953
>>250950
Гугл говорит что можно, но поверь моему опыту, лучше 1 раз купить программатор с СВД и отлаживать как белый человек, чем ебаться с УАРТом и принтфами
915 250963
Посоветуйте недорогую, но годную макетную плату для периферии STM32 и дешевые джамперы на али
916 250964
Карач я ньюфаг в ARM'ах. Накидайте литературы, чтобы после изучения я мог охуенно прогать под эти процессоры. Я быдлокодер, и несколько лет дрочить транзисторные усилители и фильтры мне лень, зато нравится реверсить хеллоуворлды под ARM в ида про и таким образом медленно осваивать ассемблер.
918 250968
>>250967
У меня J-link, пусть кто-то с ст-линком пояснит.
919 250971
>>250967
Да, подойдет.
920 250973
>>250971
А это же ведь еще и дебаггер? Он позволит отлаживать выполнение кода прям на плате?
921 250974
>>250973
Так в этом и суть, тащемта.
922 250976
>>250945
тайни урл/j7ovd49

ебаный абу, где тут слово из спам листа?
923 250977
>>250976
пиздос, хотел линк из форума запостить, ни хуя не дает, сделал тайни урл все равно не дает - тайни урл латинницей это слово из спам листа оказывается. теперь линки внешние нельзя постить вообще?
924 250981
Спасибо анон заказал и плату и программатор по твоим ссылкам с али. Платы 2 шт. программатор 1 т.
925 250982
>>250976
О еще раз спасибо. Где-то видел, что GPIO через DMA можно только в режиме "память память" без вкусностей типо цикличного чтения. А тут действительно GPIOC->IDR как адрес периферии используется. Тогда уж и дабл буфферинг можно и прикрутить или прерывание на халф трансфер.
926 250983
>>250981
Ага, мне тож понравилось, сама платка вышла применрно рублей на 150 дороже чем просто чип STM32F407VET6 в терре.
927 250984
>>250982
И не забудь что тебе DMA2 надо.
И если у тебя семпл рейт мегагерцы, то про прерывания на таких скоростях забыть нужно наверное. Прерывания даже порядка единиц микросекунд это уже скучно.
928 250990
Где можно почитать про соответствие номеров и названий пинов на плате stm32vl discovery и их программным номерам, которые я использую в коде, типа GPIO_Pin_9?
929 251068
>>250984

>И не забудь что тебе DMA2 надо.


Ну да, уже понял. DMA1 что-то там не хватает.
У меня еще такой вопросик. В примере один таймер сконфигурирован Input Capture, а второй Output Compare и типо надо их ноги соединить. То есть Output Compare генерит меандр, а Input Capture по фронту инициирует DMA транзакцию. А мжет ли Output Compare таймер инициировать DMA транзакцию, то есть одним таймером и АЦП тактовать и одновременно инициировать чтение значений ног, которые АЦП выставляет по фронту?
930 251070
>>251068
С дивана, могу ошибаться
У таймера там есть некие ивенты, их можно отправлять ДМА-контроллеру, так было в моём проекте на стм32ф103. Почитай датаЩИТ
931 251083
>>251068

>мжет ли Output Compare таймер инициировать DMA транзакцию,


Да, может

• Interrupt/DMA generation on the following events:
– Update: counter overflow/underflow, counter initialization (by software or
internal/external trigger)
– Trigger event (counter start, stop, initialization or count by internal/external trigger)
– Input capture
– Output compare

Output compare mode:

Sends a DMA request if the corresponding enable bit is set (CCxDE bit in the
TIMx_DIER register, CCDS bit in the TIMx_CR2 register for the DMA request
selection).
932 251087
>>251068

>одним таймером и АЦП тактовать и одновременно инициировать чтение


ХЗ как он там задумали в этой рацухе, но ведь неспроста у них два таймера, один тактует другой читает, в этом у них вся соль.
933 251124
>>251083
Ок, спасибо бро.
>>251087
Ну возможно DMA-запрос выполняется раньше чем выставляется уровень на ноге (не знаю, можно ли такую инфу нарыть в даташите), плюс задержка самого тактируемого устройства = нестабильность при работе на высоких частотах. В принципе тоже можно тоже развести ногу тактирующего таймера на клок АПЦ и на ногу Input Capture таймера. Может действительно так даже лучше будет.
934 251133
>>251124
Я просто подумал, что раз нет внешней хардверной синхронизации, то могут быть глюки связанные с асинхронностями. А в принципе может не все так страшно. Тебе ж не нужно гарантировать, что каждое чтение соответствует именно предшествующему такту. В худшем случае один семпл может считаться повторно. Главное же чтобы все ебошило непрерывно без затыков с приемлемой скоростью. (Если я правильно понимаю все архитектуру).
935 251192
>>251133
Ну вообщем платы приедут - буду экспериментировать, направление куда рыть понятно. У меня еще пара вопросов. Вот я допустим читаю в память GPIOA->IDR, но пины PA0, PA1 заняты какой нибудь периферией, что будет в соответствующих позициях бит, нули? Или может вобще не взлетит и надо обязательно 8\16 пинов как GPIO_Input помечать? И относительн среды разработки - я смотрю trueSTUDIO не балуют тут, но ведь годнота-же, бесплатная без ограничения на размер кода, CubeMX экспортирует, ST-LINK поддерживает, текстовый редактор весьма неплохой. Есть какие-то объективные причины Keil использовать?
936 251198
>>251192
Не понял вопроса, какой переферией. Что угодно может быть, 0 или 1. Зависит как пины сконфигурированы. Если код твой, тебе решать чем пины будут заняты и как они сконфигурены и что ты на них повесил. Если это только не особые пины какие-нибудь типа SWIO. Среда вопрос субъективный. Не слушай никого. Попробуй что тебе понравится.
937 251205
>>251192
Тебе ли не похуй что там будет на тех пинах, чтение всегда будет успешно а результат всё равно порежешь маской чтобы левак не мешался.
938 251208
>>251192
Покажи скриншотами как ты открываешь CubeMX проекты в truestuido и проводишь отладку с брекпоинтами, ничего не понял как в этом разбираться. В том же кейл все интуитивно понятно.
939 251231
>>251198
>>251205
Ну отлично, главное что работать будет. Маской\сдвигом значение сэмпла сегда получить можно.
>>251208
File->Import->General->Existing Project into Workspace и выбираешь директорию с исходниками, которые Cube сгенерил. Процесс отладки примерно такой-же как и в дргугих средах, ничего вроде необычного.
940 251256
Как связать stm32vl discovery с виндой? Хочу запилить криптопроцессор, т.е. на вход стм с винды передаются данные, а возвращается результат хешфункции или блочного шифра. С чего начать написание драйвера?
941 251275
>>251256
USB драйвера на сайте ST должны быть.
942 251318
>>251275
Ты имеешь ввиду USB драйвер для программатора что ли? Ему то нужно будет свой драйвер пилить, если он будет через USB с контроллером общаться. Это гимор. Проще через UART + FT232
943 251367
>>251318
VCP есть, никакого гимора все пара кликов мыши в stm32cubemx
944 251371
>>251367
Но USB на контроллере самом это же все равно геморрой.
945 251372
>>251371
Не понял тебя. Это UART
946 251373
>>251372
А я не понимаю тебя. Если на контроллере UART, то в него включается железка FT232 которая включается в PC шные USB. На PC драйвер FT232 (не VCP). Вот это я называю простым вариантом. А ты про что?
24 Кб, 500x84
947 251610
Учусь программировать stm32vl discovery по этим статьям: http://stm32.chrns.com/post/149088613644/gpio

Они написаны для другого чипа, поэтому я скачал документацию для своего: www.st.com/resource/en/datasheet/stm32f100v8.pdf

Но в этом даташите нет таблички как на пикрелейтед, которая приводится в статье. Где мне взять нужную документацию, чтобы можно было заставить работать следующий кусок кода?

void init_led(void)
{
RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
GPIOC->CRL &= ~(GPIO_CRL_MODE0_0);
GPIOC->CRL |= GPIO_CRL_MODE0_1;
GPIOC->CRL &= ~GPIO_CRL_CNF2;
}

Диод подсоединен к ножке PC0.
948 251652
>>251610
тебе не даташит нужно а reference
949 251654
у тебя ж там даже ссылка на него в этой статье прямо над твоим пиком
950 251658
>>251654

>у тебя ж там даже ссылка на него в этой статье прямо над твоим пиком


Тогда я не понимаю, что я сделал не так. Диод подсоединил к ножке PC0, которая управляется портом C. Конфигурирую этот порт как здесь: https://ideone.com/3YmRVz

Но программа работает неправильно.
951 251659
>>251658
Что на скрине внизу? Какая то куча ошибок компиляции. Это твое?
952 251660
>>251659
На каком скрине? Я показал функции инициализации из своего проекта. Они не компилируются на идеоне, потому что там не поддерживается компиляция под микрухи.
953 251662
>>251660
Понятно, я не знаю что такое идеон и зачем он компилирует, когда тебе просто нужно было код показать. init_led выглядит странно. где определено GPIO_CRL_MODE0_1?
954 251666
>>251662

>где определено GPIO_CRL_MODE0_1


В stm32f10x_rcc.h

>я не знаю что такое идеон и зачем он компилирует


Это просто онлайн-компилятор. Можно использовать вместо пастебина.
955 251669
>>251666
А, cmsis. Не понял зачем там CNF2 сбрасывается. Тебе же CNF0 нужно. Но по дефолту там нули так что должно все и так работать.
956 251676
>>249353
бля мне как раз f407 привезли.А ты меня обнадежил
957 251677
>>251676
не бзди, разница не принципиальная, некоторые вещи типа таймеров вообще без изменений, gpio немного подругому например, clock намного изъебистее, но тебе то какая разница, не сложнее, просто чуток по другому. а так все тоже самое, либы, принципы, среда, и четверг.
958 251693
>>251669
Ладно, дома проверю. Не мог бы ты объяснить, почему нужен именно CNF0 и что это за регистр?
959 251699
>>251677
а тогда шикарно.Мнеб еще в аналог вкатится и будет ништяк просто, потому что бесит:здесь не знаю, тут схему рассчитать не могу и поэтому кидаю на эту задачу МК(хотя там реально туфта наподобие генератора треуголного сигнала или хитрой схемы на одном-трех транзисторах), поэтому на stm перешел и вот как выкрою время-буду заниматься, но рассчеты в аналоге все так же неосилятор(в ньюфаг тредах читал книги до первых упражнений-не осилил и утонул).
960 251789
>>251693
Это значения битов в регистре CR. На пике из референс что ты запостил. На каждый пин четыре бита. Два бита CNF два бита MODE. Так как у тебя нулевой пин тебе надо MODE0 и CNF0.
961 251791
>>251699
Ну я тоже если выбирать между аналогом и контроллерами, мне проще запрограмить. И то и другое интересно, но аналог безусловно намного сложнее. Это как олдфаги, которые учились ездить на разъебаном стике с убитым сцеплением, а тут тебе дают коробку автомат и оно само едет.
962 251989
Вот сегодня пришла STM32F3-DISCOVERY
Все как этот анон насоветовал>>249353
и это по сути мой первый шаг в освоении программирования микронтроллеров
допустим, кабель тоже нашелся
А что делать дальше? Какие гайды, мануалы, что нужно на компьютер скачать
нужна какая то прошивка или что? Как прошивать?
963 252056
>>251989
Ставь keil или что тебе больше нравится. Там весь софт\драйвера для прошивки\отладки уже должен быть.
Аноны, а кто-нибудь с SIMD инструкциями заморачивался? Читал на каком-то форуме типо в лоб переписал что-то там, в итоге скорость просела из-за перегона данных между памятью-регистрами, или типо того.
964 252076
>>252056
а что дальше?
как сделать так чтобы комп плату видел?
966 252102
>>252080
бразильчую
967 252121
У меня есть stm32vl discovery. Имеется ли возможность с нуля на чистом winapi напердолить к этой плате драйвер для управления через usb, или кроме как запитать и прошить через usb больше ничего нельзя делать?
968 252125
>>252121
что значит "управление через usb"? обмен данными с твоим софтом работающим внутри stm32? или прошивать тебе надо через usb?
969 252146
>>252121
Шикарно драйвер на winapi
970 252174
>>252125

>что значит "управление через usb"? обмен данными с твоим софтом работающим внутри stm32?


Да. Например, хочу, чтобы моим софтом внутри стмки можно было управлять, подавая сигналы при помощи драйвера.
971 252202
>>252174
По подробнее что за софт в нутри стмки
Задачи
972 252277
>>252202

>Задачи


Написать драйвер и охуеть от того, как я умею. Смысл не в цели, а в процессе ее достижения.
973 252278
>>252277

>Смысл не в цели, а в процессе


Троцкист дохуя?
974 252293
>>252277
Для венды тебе DDK надо. Ну и в кубике какой класс USB выбираешь?
975 252300
>>252277
Посмотри в сторону HID пока данных немного тебе хватит с головой.
Плюсы:
Не нужны дрова - они стандартные в любой оси есть
Простая реализация со стороны пеки - юзал libusb, работает, доебаться не к чему
Со стороны СТМки юзаешь готовый драйвер, останется только правильно заполнить дискрипторы, с чем я и пердолился большую часть времени.
976 252317
>>252300
Мне драйвер самому нужно написать, готовын решения не нужны. Хочу все с нуля зделать на WinAPI. Хочу прокачать скилс в написании дров и железе.
977 252320
Бомба
978 252355
>>252317
Ты выбрал хороший способ заебаться!
Читай application notes от ST. Возможно это все завернуто в примеры для USB в CMSIS. Там есть пример кода внутри STM32 и примеры драйвера для виндов кажется.
979 252360
>>252317
Ебаная идея, блядь. Сначала напиши под линуксы, там и документов, и гайдов уйма
980 252445
>>252360
линукс не вдупляю, только виндовс
981 252458
>>252445
Тогда жахни клинского и успокойся, программирование не для тебя.
982 252466
>>252458 - это не я >>252360 писал, но идею поддерживаю. Ты обучишься линуксовской базе и драйверам быстрее, чем будешь переть по виндотеме. Оно же все онально огорожено и нативно
983 252467
984 252468
>>252458
Пердолинк с пинуксом принципиально не приемлю
>>252466
WinAPI прекрасно документирован

В общем нет никакого желания ковыряться в этом школьном дерьме
985 252530
Линупсы посасывают, у нас в Мытищах линуксоидам с вертушки в щщи прописывают

Дух старой школы живет только в венде, где пацаны угорают по SoftIce'у, живут молодостью, васмом и статьями Зомбы. WinAPI 359!
986 252549
Что нужно прочитать что бы понимать как работать с оперативной памятью DDR3 и с постоянной памятью? NandFlash
987 252561
Может есть профи которые подскажут как завести такую память ?

ну давай приступим
отбросим документированные и недокментированные нахуи
и просто вазамним себя богами
что нам надо писать? додик?
всеже есть 7 уровневая модель бытия
кузубова такоа знаеш философа?
он ее пытался реализовывать на канальном уровне
кстати модель знаний нехуевая очень и проста для понимания
на первом уровне биты - тое ты должен каждый бит отлавить етими ебаными транзисторами ну или оптронными ключами не суть важно ...
второй уровень канальный устойчивые сигналы сформированные в пакеты ты должен перенаправлять...
3 уровень программный здесь наши синеглазые и никто кроме их.
4 уровень интерфейсов - функций здесь синеглазые спорят с механиками логики - каму ты нахуй нужен шизик со сваей пид функцией?
5 уровень тут манагеры на своем пхп и прочей хуете
на шестом уровне наши девачки уже обученные фотошопу и 3дмаксу и мае вопщем ляпают контент...
на 6 уровне
на 7 уровне
и это все называеца законценная функциональная модель
конечного девайса - продукта для хомячков
988 252562
>>252549
Даташиты. Что то хуйня, что эта. Мк, обычно имеет определённые ножки (адрес, данные, управление) и очевидную аппаратную поддержку. Работает тупо, мк выставляет адрес, стробирует, считывает, что с нанда, что с ддр. Если ее почему-то нет, пытаться поднимать дрочкой жпио ддр не стоит, это глупо.
989 252569
>>252562
То есть тот же Allwinner A13 должен сходу поднять подключенные к ней модули памяти?
990 252582
>>252569
Ну где-то надо еще указать тип памяти и тайминги, мб частоту завести с кристалла, возможно (как на оп-пике) сделать инициализацию, да и при программировании знать и учитывать диапазоны адресов, а так да, все тупо. Ну и, естественно, необходимо правильно развести оперативку, там своя история там одинаковая длина дорожек и подтяжка, я ее не знаю
991 252583
>>252569
Короче пишу как есть: если нанд или рам подключены не правильно, или их нет вовсе, а ты пытаешься с них считать, то операция пройдет без ошибок, просто ты считаешь мусор
992 252936
>>252562
Подключал НАНД к PICу через ЖПИО, было дело. Однако это медленно.
С ДДР - хз скорее всего и вовсе невозможно. Нужен спец-блок - контроллер памяти.
993 253037
У кого-нибудь получалось управлять https://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-strip-Black-White-PCB-30-60-144-leds/32337440906.html?spm=2114.13010608.0.0.Ad1vIc при помощи этой библиотеки https://github.com/g4lvanix/0xWS2812 ? Взял STM32VLDISCOVERY и нифига не управляется, только при подаче питания бывает рандомно загораются диоды и горят.
nRF51/52 994 253073
Посоны, кто работал с Nordic nRF52?
995 253214
>>253037
купил два таких кольца, думал поуправляю AVRкой, не пинайте меня - хуй!Там длительность сигналов около 150 нано секунд. НАНО. Я разогнал мегу до 20 мегагерц и писал на асме без вызовов подрограмм, только sbr и cbr, ели включал нужный свет, об регулировании и речи не могло быть.
996 253382
Как на плате stm32vl discovery найти boot0 и boot1 пины?
997 253416
Есть 2 платы:
EK-TM4C1294XL http://www.ti.com/tool/ek-tm4c1294xl#2 и STM32F4DISCOVERY http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-discovery-kits/stm32f4discovery.html .
На какую сам сядешь, на какую мать посадишь? Разница 200 рублей пользу СТ, но у ТИ есть ethernet, больше рам и вроде как писали, что у ТИ лучше документация.
998 253418
Анон, скажи пожалуйста, нужен любой мощный (принципиально важно) процессор, на котором можно запустить линуху. Из всех вроде arm самые топовые.

Охлаждение сделаю, цена не так принципиально (желательно до 3k). Требуется на оочень нагруженный проект по вычислениям. Микрокомпьютеры не пойдут (хотя арм от малины можно, только документации нормальной по типу stm так и не нашел.)

Память должна быть выносной, порты usb (еслии3.0, то шикарно), gpio
999 253439
>>253418

>только документации нормальной по типу stm так и не нашел.


В смысле не нашел? Идешь на http://infocenter.arm.com/help/index.jsp
Открываешь Cortex-A7 MPCore processors и хуяришь, хуяришь, хуяришь...
1000 253475
>>253418
Может лучше x86? Всё равно линух будешь запускать. Там такие же платы как малина, со всеми usb.
1001 253531
>>253418

>Требуется на оочень нагруженный проект по вычислениям


Вычисления или реакция? какие вычисления? объем? купи mini-itx и i5 на него, если нету ограничений по питанию и объему - переварит что угодно при должной оптимизации алгоритмов.
1002 253552
Решил посмотреть такты FPU инструкций.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/CHDJAAJF.html

>Addition VADD.F32 1 Cycles


>Multiply VMUL.F32 1 Cycles


>Multiply Then accumulate VFMA.F32 3 Cycles


Как так? И нахуя тогда нужна VFMA.F32 если она на один такт больше жрет чем две инструкции?
1003 253554
>>253552

помощь компилятору в -O3 ситуации
1004 253562
>>253554
В чем помощь? Типо использование одной инструкции дает более комактный но менее производительный код? А в случае -O3 развернет в две инстркуции, которые на 1 цикл быстрее отработают?
1005 254128
>>253418
Понятие мощности оче растяжимое. В чем заключается, в математике? Ищи системы ARM+dsp, вроде blackfin.

Алсо, почти досвязал Qt + ASF + JLink
1006 254153
>>253562

да это помогает компилятору и процессору заниматься спекуляциями, ведь выбирать инструкции из памяти тоже тяжолая работа
1800[1].jpg96 Кб, 800x387
1007 258260
ADC+DMA скидывает семплы в буфер, по заполнению буфера\половины буфера, выкидывается прерывание. Цикл в Main молотит данные из этого буфера. А вот собственно как в обработчике прерываний сигнализировать, типо "бери в работу первую\вторую половину буфера"? Через глобальную переменную с тремя состояниями, "данных нет", "есть данные в первой половине буфера", "есть данные во второй половине буфера". Типовая задача же, кто как реализует?
1008 258357
>>258260
два прерывания. одно возникает когда половина, втрое - когда полностью
ADC 1009 258904
Помогите разобраться начинающему с ADC.
Почему-то значение, полученное с канала ADC, выходит за рамки 12-ти битного числа. Конечно, если выполнить >> 4, результат получается правильный, но как-то странно это.
Анициализация:
ADC_InitTypeDef adc_setup;
adc_setup.ADC_ContinuousConvMode = DISABLE;
adc_setup.ADC_Resolution = ADC_Resolution_12b;
adc_setup.ADC_ScanConvMode = DISABLE;
adc_setup.ADC_ExternalTrigConv = ADC_ExternalTrigConvEdge_None;
adc_setup.ADC_DataAlign = ADC_DataAlign_Right;
Чтение результата:
ADC_RegularChannelConfig(ADC1, ADC_Channel_13, 1, ADC_SampleTime_56Cycles);
ADC_SoftwareStartConv(ADC1);
while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET);
val = ADC_GetConversionValue(ADC1);
1010 258965
>>258904
может значение adc записывается в старшие 12 бит в твоём случае, а не в младшие? посмотри настройки adc
1011 258970
>>258904
но почему это происходит не смотря на это:
adc_setup.ADC_DataAlign = ADC_DataAlign_Right;
1012 258983
>>258970
Попробуй Left, и сравни результат, что ты как маленький.
1013 259041
>>258983
>>258965
Вы таки будете смеяться: ничего не менял в коде, сегодня глюк самоустранился.
1014 259097
Ананасы, помогите!
1. Пропала вся периферия в меню View->System Viewer
2. На неподключенных входах АЦПа прыгают байты, но при подключении AUX кабеля от телефона там просто нули.
1015 259598
>>187056 (OP)
люто-бешено проебался и понял что не хавтает портов уже в середине проекта. прошу помощи: необходимо использовать spi программны, т.к. порты на которых spi1 контроллера уже занят . помогите советом как реализовать clk на обычно порте программно на stm32f030.
хотел же блядь брать stm32f103 сука. оебят выручите плиз
1016 259634
>>259598
Только вчера пилил програмный I2C, работает.
SPI проще же там сигналы однонаправленые. Поищи либу не обязательно даже для стмки и перепиши кусочки где запись/чтение пинов.
Однако есть одно существенное НО. Скорости от такой схемы не жди.
1017 259653
>>259634

>Скорости не жди


чому ?
PA_CR2 = 1 или нет
1018 259656
>>259634
можно поподробнее. всмысле чтение пинов? библиотеку spi? stdperiph подойдет? я с ними работаю.
К1986ВЕ92QI 1019 259664
Так, щенки.
Кто из вас имел дело с пикрелейтедом? Цена сравнима с аналогами, есть даже макетные платы по 5К за штуку.
1020 259683
>>259664
Имею дело с 1986ВЕ1Т. Обычный ARM-микроконтроллер, не лучше и не хуже множества других.
Розничная цена К1986ВЕ92QI около 800р, аналогичные STM32 у нас в розницу продаются за 250р. Поэтому целесообразность использования их в самоделках сомнительна.
Хотя, стоимость деталей в любой самоделке часто намного больше стоимости микроконтроллера, поэтому может и есть смысл их использовать.
1021 259708
>>259683

щенок
1022 259710
>>259683
Какие ощущения от сего поделия? С какой периферией использовал его?
1023 259744
Анон, я знаю, у тебя есть. Скинь реализацию модбас рту для твоего СТМ32, надо и мастер и слейв
1024 259757
>>259656
http://www.avrfreaks.net/forum/spi-bitbang-implementation
Вот прям почти все готово, но это АВР-ка. Замени содержимое четырех первых функций из названий понятно что они должны делать.

>>259744
Юзал freemodbus на всех своих подельях и не арм тоже. Там есть порты на разные контроллеры и на армы тоже.
Возможно придется написать колбэки для
1. Инициализация/сброс таймера
2. Чтение/запись UART
3. Обработчики перываний UART и таймера
Они все очень простые, смотри примеры.

Конкретно скинуть не могу рабочий проект, да и реализация сильно завязана на остальные части проекта, понять примеры будет много проще.
1025 259763
>>259757
А разве в мастер она умеет? Есть где-то пример?
1026 259767
>>259710
Использовал все кроме CAN, USB и ethernet.

>Какие ощущения от сего поделия?


По набору периферии мало отличается от других микроконтроллеров, разве что I2C иногда не хватает. Errata по объему не отличается от каких-нибудь STM32.
1027 259769
>>259763
Тут вот какая хрень.
Я юзал только Slave, однако в одном проекте у меня был Nuttx на STM32F103 и там несколько проапгреженая версия freemodbus с поддержкой Master, в ридми написано, что мастер взят из
https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32
14657393529590.jpg132 Кб, 960x640
1028 259799
Сап, арманы.
Где можно найти примеры готовых устройств и кода, разработанных на STM32? Чтобы лежала схемота, описание функционала и исходники.

Например, как вот такая дикая годнота: http://rusefi.com/wiki/index.php?title=Main_Page

Интересно читать примеры кода для досок разработчика, но там в основном изи примеры из разряда мигалок светодиодом.
1029 260085
Отпал JTAG на Атмеле at91, армчик, утилиты не хотят коннектить устройство, получают кривой ответ от мк. Программатор - сеггеровский жлинк, рабочий, да и тыкал двумя разными. Контроллер работает, по дебаг-порту пишет лог... Рентгеном проверяли, не было непропаянных шаров, там все спаяно норм. Дорожка тоже не битая, не было кз по жтагу, он тупо отказал в момент отладки (правда, я отлаживал и зашивал бутлоадер).

Может ли быть проблема внезапно быть в прошивке? Ну типа волею случая в первой инструкции лочит жтаг. Прошивка в spi-флешке.

Как можно полупрограммно проверить жтаг?
1030 260243
Ананасы, существуют ли вообще в природе нормальные, мощные (например, где-то на уровне Exynos5422, который в ODROID XU4) арм-одноплатники без ебучего нахуй мне не нужного GPU и с относительно большим количеством периферии? Бюджет - желательно не больше 100$.
1031 261293
А есть ddr3 чипы в soic/tsop?
Ну или можно развести bga на одном слою?
1032 261389
>>261293
Нет. Нельзя зависит от DRC производителя платы.
1033 261443
поцаны котята, bootloader на мобиле ардуины где записан? и внтрунняя память, она внутри проца или отдельной микрухой?
1404435313koi-kaze-anime-manga-816870-2089x1528n[1].jpg152 Кб, 600x898
1034 261464
>>261443
ну бампчик же анонасики
1035 261498
>>261443
Че за грибы бля. Бутлоадер в атмеге записан. Внутренняя память внутри. Есть способы её расширения внешним чипом, но не все атмеги это умеют. Или ты про другое?
1036 261623
>>261498
бляяя я обосрался анонас, прости что ввел в заблуждение не ардуины сука я тупой АНДРОИДА хотел сказать
>>261443-кун
Androidboot2[1].png37 Кб, 794x559
1037 261624
>>261498
>>261443
просто хочу разобраться как там бутлоадер устроен ковыряясь в старых андроидофонах что у меня лежат. И по возможности накатить туда что то типа арчлинупса.

Я гуглил про те вопросы что сейчас ниже спрошу. Инфа очень размытая в инете может у кого есть годная инфа про архитектуру андроидофонов буду рад почитать.

1) Как происходит разблокировка бутлоадера. Да я знаю что некоторые производители предоставляют возможность по адб разлочить, мне интересно какой принцип. Типа мы по адб связываемся с процом ведроида, и выставляем там какой нибудь бит посредством команды fastboot oem unlock?

2) Куда зашит сам бутлоадер, в отдельной ром микрухе? Или внутри самого проца? Получаеться чтобы перезаписать ром мне надо что то процу сказать?

3) Где лежит раздел /boot/ как я понял там находится ядро линупса андроидного? И к нему можно получить доступ если разлочить бутлоадер. Они лежат в одной ром памяти? Или это две разные физические микросхемы?

3) Что представляет собой внутренняя память андроида? встроенная память по типу sd карты?

4) Раздел / корень андроида, если его рутануть, это раздел /data/ или раздел /system?
1038 261633
>>261624
Благородным делом занимаешься Антон, жаль не могу помочь ни чем. Сколько ебли с той же оранжевой пи, а уж про рандомный планшет и говорить не чего. Не подьемное дело
1039 261638
>>261633
может я нивтом треде? типа увидел арм типа написано но тут типа слишком низкоуровнево и на уровне железа токо помогают? может где есть операционных систем и архитектуры тред?
1040 261639
>>261633
может я нивтом треде? типа увидел арм типа написано но тут типа слишком низкоуровнево и на уровне железа токо помогают? может где есть операционных систем и архитектуры тред?
1041 261640
>>261639
чот я капчей обдвачевался аж задаблпостил
1042 261642
>>261639
Все нормально, тред именно тот.
Собрать ядро и прошить линаксом планш с нуля архи сложная на сегодняшний день задача.
1043 261646
хотя был один пиздюк на ютабе - на Qualcomm QSD8250 слакварь установил
1044 261657
>>261642
ну ок, если кто знает или чо пускай советует я не тороплюсь. Если чо сам смогу отпишусь
1045 261664
>>261657
Пиши что нароешь оче интересуюсь темой.
1046 261912
>>261664
Присоединяюсь к этому антону.
Могу порекомендовать найти и поковырять аппараты Sony 2012 года, тк на них утекли доки и полный набор исходников (там еще был срач, что какой-то тип не хотел накатывать защищенный правом драйвер на BT и пытался родить решение сам).
1047 261918
>>261912
сейчас у меня старый хтс андроед 2.2 дохуя доков на xda 4pda пока ковыряю.
1048 261981
>>261918

>дохуя доков


>4pda


Какие нахуй доки в этой обителе умолишенных пидорашек
1049 262026
>>261981
про adb прошивки и тд.
1050 262086
>>261624
У тебя же на картинке верная схема. Я сейчас расскажу про оп-пик. Бутлоадер пацаны дома используют u-boot лежит в 0 адресе памяти, например, nand. Проц имеет т.н. bootstrap программу - набор команд по простейшей инициализации всей памяти на борту. Потом этот бутстрап делает опрос памяти (сначала с spi, потом nand, i2c, mmc), он ищет особый заголовок (20 байт каких-то там чисел и размер прошивки в байтах). Находит заголовок, и загружает в свою маленькую внутреннюю оперативку код, как раз уже загрузчик u-boot.

U-boot загружает ядро с той же нанд флешки. Кернел уже инициализирует фс с тем учетом, что на флешке уже есть инфа и нужно начало выбрать смещенное.

Нормой хранить загрузчик и ядро на разной памяти. Ю-бут мощный, от тебе и с интернета ядро загрузит.

Я хз как точно сделан загрузчик в телефоне, вероятно, что есть загрузчик загрузчика , который лежит в пзу чипа, чтобы в случае проблем с нанд флешкой можно было бы полностью записать туда систему. И этот первичный лоадер как раз может контролировать разблокировку лоадера.
1051 262090
>>262086
это второй щаг на загрузке
1052 262101
>>262090

>щаг

blob847 Кб, 1920x1080
1053 262119
Привет анон. заказал пикрелейтед.
это STM32F103C8T6
Как заливать в неё код?
знаю можно через usb uart, но какой?
знаю, что можно прошить загрузчик, чтобы потом по распаянному usb можно было, если есть такой, кинь соус на него, в гугле не нашел.
Я ньюфаг, перехожу с arduino на st
1054 262131
>>262119
Посмотри по схеме.
Вроде в STM32F103C8T6 нет USB, а на плате не видно USB<>UART.
1055 262135
>>262131
все там есть
1056 262136
>>262119

>знаю можно через usb uart, но какой?


Через любой с уровнями 3,3В Что-нибудь на PL2303, CP2102, FT232 и подобных. Подойдет даже из ардуино, если там уровни 3,3В.
Для загрузки используется программа: http://www.st.com/en/development-tools/flasher-stm32.html

>>262131

>Вроде в STM32F103C8T6 нет USB


Есть.

>>262119

>чтобы потом по распаянному usb можно было


Нет смысла. Купи лучше J-link, сможешь пошагово выполнять программу на микроконтроллере.
1057 262137
>>262136
Два мк тебе анон.
но смысл загрузчика есть - будет загрузчик, покупать не че ненадо будет.
пошагово - в чем профит?
1058 262138
>>262137
Отладка программы же. Залил что-то своё, а оно не работает, как узнать, в чем проблема?
1059 262193
Ночи.
Есть спаянная плата радара, есть прошивка. Вопрос, как её туда впихнуть и что для этого использовать?
Анон, твоя помощь весьма кстати
З.Ы. Допиливаю ссыль до кучи на весь проектик https://github.com/Ttl/fmcw2
1060 262243
>>262136

> Нет смысла. Купи лучше J-link, сможешь пошагово выполнять программу на микроконтроллере.


Джва килобайта sram этому.
Без отладчика тяжело крупные проекты пилить, иногда оно тупо не запускается, будто сжег все, а с отладчиком всегда моно найти траблу. Да и не дорогое удовольствие совсем.

>>262193
Сириусли, ты, значит, собрал это поделье, а как прошиться подумал в последнюю очередь?

>jtag не подключен


Ты что, расчитываешь, что она без пердолинга возмет и заработает?

>uart0 я не нашел


Стандартный загрузчик не заюзаешь

>есть юсб


Может у этого проца есть загрузчик с него?

>есть spi флешка U3


Вангую, что проц может грузиться из неё, но опять же как должен быть сформирован образ - хз
1061 262257
>>262193
http://www.nxp.com/documents/user_manual/UM10503.pdf
Страница 53. Да, может грузится через USB и с флешки.
Так как эта схема на основе hackrf, то стоит смотреть руководства по hackrf.
Еще одна минута поиска: https://github.com/mossmann/hackrf/wiki/LPC43xx-USB-DFU-Notes
Остается только сравнить эту схему с hackrf в части USB и ножек BOOT[0:3]
1062 262445
Господа, не сочтите за труд.
Вы тут разный скарб покупаете регулярно, где берете? Я вот себе хочу МАЛИНКУ прикупить, дома серверок поставить для личных нужд. Сначала хотел пойти на АМПЕРКУ и купить за семь тысяч коробку с МАЛИНКОЙ и другой поебенью, но мне кажется, что руснявые наебывают с ценой. У них коробочек аж восемь сотен стоит, сука. А на Али сходил прицениться - там цены будто случайно выставляют, абсолютно одинаковые коробки с малиной могут быть и за две с половиной, и за четыре. Что посоветуете? Если кто-то брал МАЛИНКУ на Али и может посоветовать, я буду только рад.
1063 262446
>>262445
https://ru.aliexpress.com/store/908915?spm=2114.12010608.0.0.Q5HAV4
У этого заказывал всё. Всё натуральное
1064 262447
>>262446
Прости, у меня глаза разбегаются. Что заказывал? У него есть набор, чтобы собрать и сразу поставить? Ну, сама МАЛИНКА, БП, карта памяти, кажется.
1065 262457
>>262446
А куда они вообще доставляют? До почтового отделения или до квартиры?
1066 262470
>>262445 Если тебе нужен лишь хеадлесс сервер, то посмотри OrangePi или NanoPi они дешевле и вполне себе юзабельны с Armbian. Однако если хочешь использовать gpio/камеру/прочие низкоуровневые функции или же мультимедиа приложения (plex, retropie, итд) бери малинку без вариантов.
>>262446 Малинки настоящие, бп и карты памяти китайские.
>>262447 Бери голую малинку, с качестве БП сгодится фирменный телефонный зарядник на 2А, карту samsung evo+ лучше купить в рознице.
>>262457 Посылки дороже 5$ как правило китайцы шлют с треком/отслеживанием их доставляют до отделения, а домой тебе приносят извещение. Посылки без трека кидают прямо в ящик.
1067 262499
>>262470
Какаю плату лутше взять для обучения асемблеру? Чтобы прошивать и IDE была.
1068 262508
>>262499
Никакую. Хватит симулятора в IDE. В симуляторе только периферия обычно не соответствует реальности.
А изучение ассемблера и изучение работы с периферией это не одно и то же.
1069 262509
>>262508
Мне ядро изучать надо Linux. Надо конпелировать ядро, чтобы ставить свое оптимальное ядро на платы. С какой платы лутше начинать? Распбери пай на китае заказал уже, зря наверное
1070 262515
Господа, кто пишет под кортексы STM на линукс? Какими средствами пользуетесь, а то у меня SW4 работает просто через жопу и хочу понять, один ли я такой невезучий.
1071 262521
>>262515
кубик под линукс есть?
1072 262553
>>262521
Cubemx есть, как его компилить через make?
1073 262645
Где купить нанопай на али слишком дорого может знает кто.
1074 262720
>>262470
>>262446
Здоровья вам, незнакомцы. Заказал на Али МАЛИНКУ в наборе только с нужными мне компонентами, а не как у руснявых с кучей рассыпухи без задач, блять. Еще заказал Ардуино, но ее пока не выслали.
>>262645
Просто в хуй дунь, мразь.
1075 262731
>>262645 На офсайте, там доставка 7$. Если заказывать парочку то не так уж и дорого.
1076 262743
>>262731
отсюда www.nanopi.org ?
или отсюда nanopi.io ?
Как у них с доставкой в Пахомию?
На гербесте NanoPi-NEO-Air только с 256М и стоит 1000р
1077 262750
Есть у кого-нибудь опыт сборки юбута? У меня SPL не загружает сам юбут, точнее, не срабатывает функция выполнения с загруженного. Плата кастомная, отлаживаюсь через gdb.
1078 262768
>>262750
Если у тебя JTAG, то не должно быть проблем найти почему не грузится, а так тоже интересно как оно там всё собирается у людей, может скоро пригодится.
Алсо, в u-boot'e же дохрена всего, можно-ли как-то поднять своё приложение поверх него? Типо использовать его либы и интерфейсы?
Screen Shot 2016-12-15 at 14.00.25.png95 Кб, 1189x716
1079 262787
>>262743 friendlyarm.com
Доставка china mail до дс уже 6$.
>>262743 Там обычный NanoPi NEO, не AIR. AIR идет только с 512мб и заметно дороже.
1080 262813
>>262787

>friendlyarm.com


благо дарю
1081 264511
>>262750
Есть опыт.
Кристалл - SoC? FPGA+ARM? Что за плата? Какой проц? SPL в ддр лежит? Уточняй параметры.
Навскидку советую проверить в s_init: включается ли ддрка. Смотри config.h. для твоей платы environment - че там в параметрах накрутил.
Я обычно собираю убут в config_minimal и вручную инициализирую интерфейсы.

> Алсо, в u-boot'e же дохрена всего, можно-ли как-то поднять своё приложение поверх него? Типо использовать его либы и интерфейсы?


Можно. Команда source <addr>. Но зачем? 99% Задач убута - врубить периферию и выполнить bootm для загрузки линукса или что у тебя там. Городить там что-то свое никому нахер не нужно.

> Если у тебя JTAG, то не должно быть проблем найти почему не грузится


Действительно, никаких проблем, если бы не -Os

TI эмбед-инженегр в треде. С AlteraIntel фпга тоже немножно работал.
1082 264513
>>262509
Расбери вполне хватит. Распбиан же.
>>262720
Не вижу смысла брать даунинку, если взял расбери.

TI-ембед-инженегр
1083 264541
>>264511

> Действительно, никаких проблем, если бы не -Os


Я уже и с -Оs придрочился отлаживать. Да, половины переменных не видно, да шагает хуй пойми как, выбора не было, только боль и страдания.

> Можно. Команда source <addr>. Но зачем? 99% Задач убута - врубить периферию и выполнить bootm для загрузки линукса или что у тебя там. Городить там что-то свое никому нахер не нужно.


За тем, когда линукс избыточен, а в у-буте уже достаточно всего. И не через команду, а на этапе кококомпиляции прилепить к нему своё приложение.
1084 264543
>>264511
Раскидай за камни олвинер, распери или вообще хуй86. Хочу потеребить кортексы, но смущает очень малая информация о том, как писать модули ядра на линукс и вообще поддержка от производителей.
1085 264702
>>264541

> За тем, когда линукс избыточен, а в у-буте уже достаточно всего. И не через команду, а на этапе кококомпиляции прилепить к нему своё приложение.


Насчет прилепить хз, но никто не мешает разместить отдельно скомпиленный код в nand/загрузить по тфтп и дать команду go <addr>. Насчет source напутал - эта скрипт выполняет. А go - выполняет код. Если от убута нужно только включить периферию, то в конце s_init() функции пихай свой код и не еби голову. Но имхо, это пиздец, какое извращение. Лучше из убута надергать код, где выставляются регистры девайсов в свое приложение.
http://www.denx.de/wiki/view/DULG/UBootStandalone - тут про загрузку отдельных приложений.

Что за камень хоть? И что плата делает?

>>264543

> смущает очень малая информация о том, как писать модули ядра на линукс и вообще поддержка от производителей.


Написание модулей аналогично написанию на десктоп: пишешь, добавляешь printk, компилишь, делаешь insmod и крашишь систему смотришь, что в dmesg свалилось. Если производитель уже написал тебе API для работы с нужными девайсами (они в arch/arm/mach-<имя твоей платформы>), то заебца. Если нет, то берешь даташит на проц и в модуле сам инициализируешь значения регистров.

По камням: Пох на камень, важна архитектура и обвес SoC. Смотри arm a8/a10: cubieboard с олвином, raspberry с бцм - твой выбор. Жирный обвес = один раз купишь и на 10 лет наиграться хватит: и диодами поморгаешь, и линукс накатишь, и со звуком поиграешься, и вообще в космос слетаешь.
1086 264759
>>264702

> Что за камень хоть? И что плата делает?


Я ТЕОРИТИЧЕСКИ спрашивал. Может быть когда нибудь
1087 264793
>>264511
Я накатил юбут, спасибо за ответ. Сейчас возникла другая проблема - юбктовская функция get_ram_size() получает только 32мб вместо 256. Кристалл - atmel at91sam9x25 (серия МК at91 на ядре arm926ejs). Оперативка - micron mt48lc16m16 (sdr, это как ddr, только single, 0:12 row, 0:9 column).

Проблема вот в чем: при записи в 0 адрес ram (не считая смещения 0x20000000 микроконтроллера), инфа записывается и в 0 ячейку и одновременно в 0x08000000 адрес , аккурат в 32х мегабайтное смещение. Да, инфа валидная, записывал через жтаг, проблема повторяется со всеми адресами подряд... Видно, будто ножки спаялись вместе, но на рентгене все было нормально, а прозвонить не получится, tp нет и корпуса с выводами вниз.
Тайминги настраивал и всячески крутил, в т.ч. понижая и повышая, в целом уменьшал скорость работы sdr, переписывал и четко следовал даташиту по инициализации контроллера оперативки, но все равно определяет неверно. В чем может быть проблема, я непонимат
1088 264801
>>264793

> четко следовал даташиту по инициализации контроллера оперативки


Скорее всего что-то упустил, потому что похоже, что в контроллере неправильно указаны размер шины адреса/конфигурация и количество банков именно для твоей микрухи памяти. У меня давно была такая фигня, правда на другом процессоре. Тоже сначала думал, что ноги спаялись, оказалось, что один бит в конфигурационном регистре недоглядел
1089 264817
>>264801
Боюсь, что все верно, потому что сам на это грешил. Перепроверил раз 10, на всякий случай выставлял неверные значения. Более того, атмел статью выпускал с конфигурацией той же памяти (столько же банков, та же модель, только тайминги чуть ниже) с мк моего семейства at91. Не помогло.

Я грешил на гонку на линии (автор схемы мог выровнять их), но вроде как сильно увеличенные тайминги должны были решить длину.. Да и до этого адреса оперативка работает.
1090 264818
>>264817

> Я грешил на гонку на линии (автор схемы мог выровнять их), но вроде как сильно увеличенные тайминги должны были решить длину.. Да и до этого адреса оперативка работает.


Та не, если бы это были гонки, то память бы просто работала хреново, а так у тебя она же нормально работает, это явно что-то в адресе. Проверь по схеме, правильно ли шина адреса подключена и шина выбора банка
1091 264820
>>264818
Посмотрю тогда 9го. А вообще, вот неплохая статья http://processors.wiki.ti.com/index.php/Common_DDR_Issues

Алсо, сколько ты получаешь денег? :3
1092 264821
>>264820

> Алсо, сколько ты получаешь денег? :3


Когда разбирался с адресацией sdram, а это было примерно в 2009, получал примерно 8к, лол. Сейчас, после налогов, 90
1093 264822
>>264793

> micron mt48lc16m16


> получает только 32мб вместо 256


Чувак, я вспомнил, память у них считается в битах, а не в байтах. То есть там 256 мегабит, что как раз равно 32 мбайт. Посмотри датащит на память, там написано в начале

> The 256Mb SDRAM is a high-speed CMOS, dynamic random-access memory containing 268,435,456 bits.


И конфигурация 16m16 как раз означает 16 миллионов 16-битных слов. Так что всё нормально
1094 264825
>>264793

>Проблема вот в чем: при записи в 0 адрес ram (не считая смещения 0x20000000 микроконтроллера), инфа записывается и в 0 ячейку и одновременно в 0x08000000 адрес



Повторение значений очень похоже на то, что в конфиге убута ты неверно указал размер памяти, подключенной к chip select-у. Насчет 32 МБ, а не 256 уже сказали. Попробуй в качестве эксперимента указать 16 МБ в DDRSDRC. Проверяй NR ака row bits.

> Я грешил на гонку на линии (автор схемы мог выровнять их), но вроде как сильно увеличенные тайминги должны были решить длину.. Да и до этого адреса оперативка работает.



Гонки на линиях вроде только в ддр3 начинаются ибо частоты на порядок выше, не? Их легко избежать, снизив частоту до минимально поддерживаемой чипом. Снижай клок с контроллера до минимального.
1095 264826
>>264825
>>264822
Ууух блят аноны давно такого баттхерта не было. Действительно, 256 мегабит, а не мегабайт. Аштрисет от своей невнимательности и тупости. Дааа блин. Спасибо, ребята, оно все работало правильно, теперь перепишу конфиг юбута
1096 265025
Раданы, как узнать сколько тактов занимает выполнение опредленного куска кода? Есть такая функция в пятом кейле?
1097 265534
Сап, радач.

Собираюсь обмазаться RTOS, так получилось, что первый кандидат у меня RTX-Kernel от Keil (задача допилить старый проект), поэтому хочу прояснить для себя: RTX-Kernel был под MDK-ARM v4, а под MDK-ARM v5 сейчас что-то новое? Есть ли смысл разбираться со старым или лучше сразу начать новый?
1098 265542
>>265025
Насколько я знаю, нет такого. Есть только Performance Analyzer и Execution Profiler. Вркатце - меряют время выполнения инструкций и количество вызовов.
http://www.keil.com/support/man/docs/uv4/uv4_db_dbg_perfanalyzer.htm
http://www.keil.com/support/man/docs/uv4/uv4_db_dbg_execprofiler.htm
1099 265732
Сап.
Не могу врубиться, можно ли сделать на attiny85 (digispark), с помощью V-USB, USB to Serial преобразователь? Нужен софтварный Serial, туда просто ретранслировать данные с USB, только вот с реализацией не могу разобраться...
1100 266227
Радач, подскажи пожалуйста камень с двумя Ethernet MAC и борду под него.
1101 266228
>>266227
У бля, на оппике же. Сорян.
1102 266236
>>266227
Или тут >>249679 - NUC972.
Всего 3 напряжения - 1.2 + 1.8 + 3.3
Встроенные 64MB DDR2, 300 MHz ARM926.
Так же 2 Ethernet 10/100Mbit (RMII only).
1103 266277
>>266227
Вот еще сам себе отвечу SAMA5D3 Xplained
https://www.terraelectronica.ru/catalog_info.php?CODE=1333939
И цена не сверхъестественная. И поддержка CMSIS есть.
1104 267216
>>187056 (OP)
Антон, моргающий диодами на еду. Подскажи, реально ли мимохую вкатится в сферу?

Давно занимаюсь на уровне мелкого любительства, очень люблю это. Хочу полностью уйти в это, но я не гений и боюсь без профильного буду послан на хуй. С чего мне правильно будет начать? Какие знания и на каком уровне НЕОБХОДИМЫ, а какие желательны?
1105 267272
>>267216

>очень люблю это


Значит всё получится

>но я не гений и боюсь без профильного буду послан на хуй


Это тебе не теоретическая физика. Задачи в принципе на уровне ПТУ, никаких многоэтажных дифуров и прочей хуйни, нормально в-общем, это лишь ремесло

>С чего мне правильно будет начать? Какие знания и на каком уровне НЕОБХОДИМЫ, а какие желательны?


Да везде по-разному кончено. Но С конечно же знать необходимо. Ну и архитектуру, примерно как работает вся эта хуета, даже не знаю, чего добавить. Бери короче и пиши что-нибудь, по ходу наберешься опыта и знаний. Лучше всего танцевать от задачи, а не от теории
1106 267278
>>267272
Ты может не правильно меня понял, анон, в перечисленное тобой я уже умею, в той или иной степени. Меня интересует как вкатится в профессиональную область. Что потребуется там? Какие знания требуются, что бы устроится мартышкой на подсосе? Где искать такие фирмы?
1107 267283
>>267278

>Какие знания требуются, что бы устроится мартышкой на подсосе?


Ну я нашёл НИИ рядом со своим универом, пришёл студентом и сказал, возьмите меня, правда я низуя не умею. Там уже набирался опыта за еду, ребят спрашивал, что да как, потом перекатился в нормальную контору
1108 267285
>>267283
По подробней перекат не опишешь? Что хотели? Что спрашивали? Всем ли устраивал? Были ли трудности?

Тебе самому макака бесплатная не нужна? доплачу еще, лол
1109 267286
>>267285

>Что хотели?


Да ничего не хотели. Вообще были немного удивлены, что я сам пришёл (я на 5 курсе был). Я просто прошарил, что рядом есть контора, которая занимается тем, что мне интересно и пришёл.

>Что спрашивали?


Была у них стандартная методичка с вопросами. В основном по интерфейсам, сетям, FPGA, процессорам. Я наверное ответил на пару вопросов из 20. Но сказал, что сильно хочу вкатиться, и мне поверили

> Всем ли устраивал?


Ну формально ничем не устраивал, лол

> Были ли трудности?


Было пиздец сколько много новой информации. Было трудно читать всё на английском, лазия в словарь за каждым словом из документации, а там сотни страниц. Просто голова пухла от этого всего. Пару месяцев ходил как зомби блять. Но с другой стороны, я вообще не тогда знал ничего

Вообще, в таких государственных совковоподобных НИИ за работу почти нихуя не спрашивают. Там в основном функция у работника - майнить человеко-часы, чтобы побольше бабла можно было распилить под определённый проект. Бывали случаи, когда крупные конторы толпами набирали студентов под распильный проект. Зарплата соответствующая. У меня было что-то вроде 4к на полставки, но это было давно, и вместе с повышенной стипендией хватало на пожрат. Но есть плюс в том, что у них дохуя аппаратуры, даже довольно современной, и людей, которые что-то шарят (процентов 30% от всего персонала, остальные - пиздец никакие), у которых можно что-то спросить.

Но сейчас я вижу самый лучший вариант старта - устроится интерном в какую-нибудь западную, ну или нашу понтовую и коммерчески успешную контору. Но это трудно. Зато очень хороший старт

>Тебе самому макака бесплатная не нужна?


Нет, нам нужны теперь хорошие специалисты на высокую зарплату
1110 267288
>>267286
Я про перекат в нормальную контору =). Про НИИ так и думал.

>Нет, нам нужны теперь хорошие специалисты на высокую зарплату


В контексте выше смотрится особенно весело.

ПС Изучение ПЛИС это "не плохой бонус", "желательно" или "обязательно"?

В любом случае спасибо, за разъяснения.
1111 267290
>>267288

>Я про перекат в нормальную контору =). Про НИИ так и думал.


Я там пару лет позадрачивал, набрался опыта немного, разобрался что к чему, а потом - в нормальную. Увидел объявление в интернете, там были требования, в которых я уже после НИИ хоть что-то понимал. Написал, договорились на собеседование. Пообщались, позадавали мне всякие вопросы про архитектуру процессора, про ядро, кэши, ДМА, память, оптимизацию. По языку Си вроде даже не задрачивали, по крайней мере ебанутых вопросов в стиле "разбери, что делает этот говнокод" не было. Что-то ответил, что-то не ответил. Но даже про то, что не знал, пытался логически рассуждать и на ходу догадаться до правильного ответа. Это, кстати, было высоко оценено и понравилось будущим коллегам. Ну немного про системы контроля версий, которыми в НИИ естественно никто не пользовался, лол. Еще, могу ли я хоть что-то понять на английском, а я уже тогда довольно бегло читал техническую документацию, но это даже не проверяли. Ну потом перезвонили, озвучили сумму и условия, и я согласился (еще бы)

>В контексте выше смотрится особенно весело.


В сегодняшнюю нормальную, не в НИИ, как ты уже понял

>ПС Изучение ПЛИС это "не плохой бонус", "желательно" или "обязательно"?


Ну если будешь писать прошивки для ПЛИС, то обязательно, лол. Вообще, плисоводов традиционно мало требуется
1112 267295
>>267290

>Ну если будешь писать прошивки для ПЛИС, то обязательно, лол



Ну, я думал, что все хотят что бы и жнец и швец и на херу сидец.

>Пообщались, позадавали мне всякие вопросы


Бумаги о образовании? Вообще насколько с этим строго и насколько обращают внимание? Если не по себе, то м.б. коллеги есть без бумаг о профильном, а то и вообще вышки.
1113 267301
>>267295

>Ну, я думал, что все хотят что бы и жнец и швец и на херу сидец.


Не, успешные конторы потому и успешные, что в них есть разделение труда. Мне, например, никогда не приходилось лезть в ПЛИС или в верилог. В свою очередь, плисоводы никогда не лазят в мой код, и это прекрасно

>Бумаги о образовании? Вообще насколько с этим строго и насколько обращают внимание?


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

> Если не по себе, то м.б. коллеги есть без бумаг о профильном


Не знаю, что ты подразумеваешь под "профильным образованием". Есть у нас всякие. Ну вроде инженеров-строителей по образованию или там инженеров-нефтяников нет. Кончено, диплом магистра в computer science даёт преимущество, но скорее только в знаниях, и не является обязательным

> а то и вообще вышки


Да вроде все с вышкой, я особо не интересовался
1114 267304
>>267301
Спасибо за твои вопросы.
1115 267390
>>267301
После таких постов чувствую себя на днище.
Сам себе и плисовод и быдлокодер и схемотехник и на пеку обслуживающий код ебашу. И всё это за 18к в мухосрани.
Одно отрадно: ни кто не подгоняет. Если лень одолела - могу и нулевую поскролить и хуи попинать.
1116 267424
>>267390
Ну ты надеюсь этим не долго планируешь заниматься?
1117 268121
>>187056 (OP)
Есть одна йоба, с которой нужно оцифровать до десятков миллионов
отсчетов без потерь с частотой выборки около 1мгц, после чего их неспешно слить по любому удобному протоколу на пекарню для дальнейшей обработки.
Возможно ли реализовать подобное малой кровью (с точки зрения железа, не влезая в разводку и производство кастомых плат с bga, трассировку дифпар и тому подобного), например, на paspberry pi или подобной девборде? Или только хардкор с топовыми армами или на плисах?
1118 268129
>>268121

>десятков миллионов отсчетов 1МГц


это ~мбайт данный в секунду
в твоем случае только АЦП+ПЛИС+FRAM+ARM для управления и выкачивания данных из памяти.
1119 268131
>>268129
FRAM таких объемов если и существует, то слишком дорогая.

Хватит микроконтроллера с SDRAM.
Возьми STM32F429 Discovery или перерисуй оттуда проверенную схему. Вот только не понятно, будет ли нормально DMA складывать отсчеты во внешнюю память.
Возможно окажется проще передавать напрямую, смотри как сделано в airspy mini.
1120 268132
>>268131

>SDRAM


тоже подумал что поспешил с плис и кортехаМ4 с сдрам тут должно хватить.
1121 268141
>>268121

> Есть одна йоба, с которой нужно оцифровать до десятков миллионов


> отсчетов без потерь с частотой выборки около 1мгц,


Пфф, я такое на stm32f4discovery с сетевой платой делал. У меня еще и стек tcp/ip одновременно работал, и передавал я всё это по сети на комп. Делал двойную буфферизацию через ДМА и передавал примерно по 500 16-битных отсчетов за раз. Ничего, естественно, не терялось
>>268129

> в твоем случае только АЦП+ПЛИС+FRAM+ARM


Сразу видно попильщика из совкоподобного НИИ. И 5 человеко-лет на это всё, да? Чтобы если пилить так миллионами
1122 268143
>>268141

>Ничего, естественно, не терялось


Что ж, спасибо, буду смотреть сюда, если не пошлю всех нахуй.

>Сразу видно попильщика из совкоподобного НИИ.


Лол, ты угадал. Предлагают пилить на девборде на fpga c pci-e, и писать данные без буферов непосредственно в память пекарни. Подумалось, что если не пиздят что такое вообще возможно, то может и распберри пи потянет. я ноль в цифре, но предложение запилить 32-битную параллельную шину с гальванической развязкой кажется маразмом, проще же взять какой-нибудь уже развязанный эзернет или сделать на уарте.
1123 268144
шину - в смысле пятиметровую IDC-кишку для связи установки с пекой
1124 268149
>>268143
Все же проще взять discovery с SDRAM и передавать по UART. С tcp/ip без опыта можно долго ковыряться, а UART заработает сразу.
Когда заработает вариант с UART, можно будет что-то посложнее сделать.
1125 268153
>>268149

> С tcp/ip без опыта можно долго ковыряться


Кстати да. Я использовал связку lwip + freertos, которую предлагали ST в своём CubeMX. Так вот, там нашлось несколько багов в драйвере ethernet, в связке lwip и freertos выделялась память не размера структуры, а размера указателя на структуру, то есть всегда 4 байта, лол, а еще не было полноценного драйвера для ацп с двойной буфферизацией, пришлось немного самому писать. Не знаю, как сейчас, но тогда пришлось подебажить и покодить
1126 273609
Тред еще жив?
У меня вопросы. Нужно ли что-то делать для конфигурирования пина в качестве альт.функции TIM2_CH1? В даташите написано "floating input", который по идее стоит с ресета и так. Значит его можно использовать одновременно и как обычный импут и как capture? Пишется ли что-нибудь в GPIOx_IDR если использую альтернативную функцию и флоатинг инпут?
1127 273699
>>273609
Нет, я вроде переключал именно на функцию входа таймера. Сам подумой, у него внутри же мультиплексор подключен, который к нужной переферии его подключает
ык.png23 Кб, 659x252
1128 273709
>>273699
а ето что тогда значит?
1129 273875
Арманы, есть среди вас адепты test-driven-development? Как автоматизируете тестирование? Вот есть у меня проект, есть юнит-тесты, есть бенчмарки. Лучшее, что я делаю пока это ручной запуск с чтением результатов тестов в отладчике из глобальных переменных или в виде текстового отчёта по уарту, ещё хз что из этого большее уродство; хотя второй вариант в принципе можно адаптировать под окончательную победу в виде включения в пайп jenkins, например, или хук в гите, выделить экспериментальный образец устройства и подключить к девелоп-серверу; но всё равно какой-то пиздец.
Может есть эмуляция какая программная, типа как для ПЛИС?
1130 273876
>>268121
>>268129

>это ~мбайт данный в секунду


Т.е. ADC 1msp и данные 8мбит?
Бле, так это грамотно запрограммированные stm32f103 -SPI- enc28j60 справятся.
Без всяких lwip/freertos.
1131 274129
я не понимаю, помогите.
Как нормально подключить CMSIS в iar? Гайды из гугла какие-то ебанутые, мол накидайте миллиард файлов всяких разных в папку с проектом, ну я накидал их и ничего не работает. Что делать?
1133 274131
>>274130
Я делал по этому гайду и вроде бы заработало как надо, но когда я захотел свой проект создать у меня нихуя не получается, хотя я пытаюсь так же все эти 100500 файлов в проект запихнуть
1134 274547
аноны, пытаюсь сделать элементарный шим, но нихуя не работает. где ошибка? вот код:
void main() {
RCC->APB2ENR |= (1<<11 | 1<<3 | 1<<2 | 1<<0);
RCC->APB1ENR |= (1<<2 | 1<<1 | 1<<0);
GPIOA->CRL |= (1<<3 | 1<<1 | 1<<0);
GPIOA->CRL &= ~(1<<2);
TIM2->CR1 |= (1<<7);
TIM2->CCMR1 |=(1<<6 | 1<<5);
TIM2->CCR1 = 2;
TIM2->PSC = 1;
TIM2->ARR = 3;
TIM2->EGR |= (1<<0);
TIM2->CR1 |= (1<<0);
while(1) {
}
}
все регистры 100 раз перепроверил, должно работать, но нихуя нет
1135 274548
>>274547
вначале #include "stm32f10x.h" есть
1136 274549
>>274547
блять нашел ошибку.
нужно еще TIM2->CCER |= 1;
сука, почему все так сложно, у меня понос начался от такого количества регисторв
1137 274576
>>273709
Ну попробуй и так и так, чего там, пару бит переключить, можно даже не выходя из дебаггера
1138 274577
>>273875

> Может есть эмуляция какая программная, типа как для ПЛИС?


У тебя же есть уже юнит тесты, не совсем понял, что ты собираешься эмулировать? Не знаю, поможет ли, но посмотри googletest - универсальный фреймворк для тестирования

А так, ну натрави ты дженкинс на свой репозиторий, пусть кажлый час проверяет новые коммиты, и если они есть, то пусть билдит и запускает, а потом отчет присылает тебе по емаил или даже складывает в базу данных. Очень удобно, можно баги писать не думая, все равно потом быстро узнаешь, что не так. Тем более, дженкинс - очень гибкая вещь, можно как угодно настроить. Сделать отдельные задачи на билд, бенчмарки, юнит-тесты, строить зависимости между задачами, использовать результаты одной задачи как вход для другой

> выделить экспериментальный образец устройства и подключить к девелоп-серверу; но всё равно какой-то пиздец.


Ну да, всё так, никакого пиздеца, а наоборот, очень удобно, особенно когда много народу работает над проектом

> в виде текстового отчёта по уарту


Чем тебе уарт не угодил? Вполне неплохой вариант. Главное руками ничего не запукать - только автоматизация
1139 274584
>>274131
На сайтике для мк нет примеров и либ?
1140 274585
>>274549
TIM2->CCER |= TIM_CCER_CC1E;
И остальное так же, чтобы лишний раз не искать в документации.
1141 274744
поясните, правильно ли я понимаю, что данные из preload регистров загружаются, когда таймер выключен, независимо от того включен preload или нет?
1142 274769
Я чет охуеваю. Сделал програмку, запилил условие для проверки:

if (TIM1->ARR == 9999) {
GPIOB->BSRR |= (1<<1);
}
if (TIM1->CNT > 11000) {
GPIOB->BSRR |= (1<<0);
}

И зажглись ОБА выхода. Как такое может быть? Насколько я понимаю счетчик тупо не может выйти за пределы ARR, но он каким-то образом вышел. Что за хуйня?
1143 274771
>>274769
И прескалер почему-то не вбивается. Точнее вбивается, но не работает. 1000 импульсов дают 13-микросекундный импульс и при TIM1->PSC=71; и при 710 и вообще любом.
1144 274805
>>274771
>>274769
всё, выяснил. оказывается нужно было вызвать update event самостоятельно через egr, иначе регистры не хотят загружаться
1145 274824
Купил себе такую хуйню:

http://www.kosmodrom.com.ua/el.php?name=STM32F103-DB
s-l1600.jpg85 Кб, 800x800
1146 274831
>>274824
Честно говоря, выглядит как ёбаный стыд. Например, SD-слот есть, а SDIO-периферии нет.
Вообще странный подход. Единственный плюс древнего говна STM32F103 -- низкая стоимость. Зачем его обвешивать такой еболой? Чисто "для обучения"? Ну так имхо взял бы лучше пикрелейтед за полторыевры копейки.
1147 274832
>>274831
Я не очень умный.
Все хвастаются отладочными платами, один я всегда бегаю с макеткой, из которой торчат все мои провода.

Плюс взял его бу
1148 274841
>>274577

>что ты собираешься эмулировать


Cortex-Mх ядро же. Одно дело юнит-тесты проходят скомпиленные моим gcc для моего core-i7 и в принципе несколько другое дело - arm-none-eabi-gcc и stm32fхх, например. Например, если где-то по недосмотру использовался int вместо более строгого int32_t.

>пусть кажлый час ... билдит и запускает


Ну так-то можно, но ведь же количество перепрограммирований флеш-памяти ограничено :3

>Чем тебе уарт не угодил?


Ну хотя бы тем, что в очередном проекте свободного уарта в устройстве может и не найтись. Я вот и подумал, что раз уж всё равно SW-интерфейс всегда задействован хотя бы для прошивки, может по нему же и тест-репорты выкачивать, это наверняка делается, надо копаться в gdb или openocd, но на то и тред, чтоб спросить, может найдётся кто сразу в нужном направлении пнёт, может уже готовые есть примеры, статьи или даже утилиты.

>всё так, никакого пиздеца


Ладно, спасибо за доброе слово, пока пусть остаётся уарт с автосборкой на коммит в develop и/или master.
1149 274846
>>274831
Но у тебя на пике F103.
1150 274849
>>274846
Да, он. В ~20-30 раз дешевле, чем тут >>274824.
1151 274904
>>274849
А, лол, да.
1152 274968
>>274841

> Cortex-Mх ядро же


Вроде qemu умеет, но я не запускал

> Ну хотя бы тем, что в очередном проекте свободного уарта в устройстве может и не найтись


Так, подожжи. Если у тебя может не найтись свободного порта, то это предполагает, что твоё устройство активно связывается с внешним миром. Поэтому, если работу ядра процессора еще можно эмулировать, то эмуляция ядра + периферия + внешние события - это даже чисто теоретический ад. Там только проект эмулятора сложнее самого устройства будет

> Ну так-то можно, но ведь же количество перепрограммирований флеш-памяти ограничено :3


У тебя код всегда напрямую с флеша исполняется? Может там есть instruction ram, откуда исполняется код? Тогда отладчиком можно прогрузить только его

> всё равно SW-интерфейс всегда задействован хотя бы для прошивки, может по нему же и тест-репорты выкачивать, это наверняка делается


Я делал такое в keil, там что-то просто сильно было
Глянь вот это
https://mcuoneclipse.com/2016/10/17/tutorial-using-single-wire-output-swo-with-arm-cortex-m-and-eclipse/amp/
Правда тут только про jlink, но смысл описан понятно
1153 275017
Новыйпидор в треде.
Поясните, возможно ли вообще переслать аудио-файл с ПК на СД-карту контроллера? В гугле все только запись текста тестируют. Ещё один раз про картинку попалось, но там она тоже не готовая была, а на ходу создавалась.
И ещё, мне в примерах часто попадается запись в регистры в шестнадцатеричном формате и я практически никогда не могу разгадать, что там за херня происходит. Сам пишу через структуры либо биты двигаю.
Вот, например:
PORTD->ANALOG &= 0xFF93;
У меня есть генератор кода под мой контроллер, и я знаю, каким именно портам какая функция отводится, но когда я выбираю то же самое в генераторе, мне выдает совсем другие цифры. В общем, я вообще не представляю как эту шестнадцатеричную лабуду расхлёбывать.
1154 275059
>>273875

>Арманы, есть среди вас адепты test-driven-development? Как автомати


Как ты вкатывался в ТДД? Как вообще в ымбыдеде юнит-тесты организовать? Есть ли примеры опенсурсных проектов, покрытых тестами?
1155 275525
Котаны, есть один STM32F103C8 в виде Pinboard II c STM32 модулем и я хочу вкатиться в его программирование.
С чего начать? AVR 8-бит и MSP430 знаю, а вот к ARM никак не могу подступиться.
1156 275567
>>275525

>AVR 8-бит и MSP430 знаю, а вот к ARM никак не могу подступиться.


Берёшь и ПРОСТО пишешь код. Какая нахуй разница, какая архитектура. Ты же на ассемблере пишешь.
1157 275583
>>275567

>Берёшь и ПРОСТО пишешь код


Это подходит, когда знаешь ЧТО ты хочешь сделать. А как придумывать свои устройства?
1158 275617
>>275567

> Какая нахуй разница, какая архитектура. Ты же на ассемблере пишешь.


Бессмыслица какая-то.
1159 275623
>>275567
У STM32 охуеешь инициализировать периферию
1160 275625
>>275623
Тут просто нужна сноровка и привычка, которые придут быстро и безболезненно, но только при способности внимательно читать (доки, примеры) и аккуратно писать.
А то знаю одного весьма опытного на 8-битных атмегах и способного иликтронщика, который неделю ебался с I2C, обмазавшись осциллографом и стандартом интерфейса, но в итоге оказалось, конечно, что просто невнимательно прочитал пару страниц из референц мануала.
1161 275626
>>275625
А давайте поморгаем светиком с разжёвыванием каждой строчки инициализации и рассказом о возможных вариантах, а?
1162 275629
>>275626
А давайте.
Но есть давно и альтернативный Путь под названием Stm32 Cube
1163 275630
>>275629

>альтернативный Путь


предпочитаю сначала пройти традиционным путем
1164 275711
>>275626
там нихуя сложного
1165 275758
>>275617

>Бессмыслица какая-то.


Я там опечатался. Забыл вставить "не"

>Ты же не на ассемблере пишешь

1166 275779
Писал на асме для стм8 долгое время. Настройка периферии однахуйственна в стм32. Да и Си это чуть более лучше ассемблера.
1167 275946
Какую IDE выбрать для STM32?
1168 275952
>>275946

VIM/EMAX(если мозолеед)+CMAKE+GCC+STLINK
1169 275953
>>275952

Готовые прыщеконфиги симейка здесь:

https://github.com/ObKo/stm32-cmake
1170 275956
>>275953
>>275952

Х0рр0р драк0н, залогинься.
1171 275965
>>275952
так-то сейчас 21й век.
для AVR есть отличная Atmel Studio
для MSP430 зачётный Code Composer Studio
а для arm какие-то глючные костыли, а не нормальные IDE
1172 275967
>>275946
Я выбрал настройку eclipse по гайдам из интернета.
1173 275969
>>275965

> >>275952


>так-то сейчас 21й век.


>для AVR есть отличная Atmel Studio


>для MSP430 зачётный Code Composer Studio


>а для arm какие-то глючные костыли, а не нормальные IDE



> IDE


> норма



Шел бы ты подальше вендушок.
1174 275970
>>275965

IDE для быдура. Выше анончик правильно сказал, обмазываешься консольными прыщами и конфигами и кококо под себя.
1175 275974
>>275969
>>275970
красноглазики закукарекали
1176 275988
О себе. Гуманитарий. О токе знаю только то, что нельзя спицы в разетку вставлять. Благодаря ардуине удалось стать немного программистом и инженером, принес на пары в универ, подмигиваю диодом одногруппницам, говорю что взорвется. Хихикают.
1177 275999
Вкатывальщик в треде. Аноны, подскажите с какой платы лучше начать еблю с микроконтроллерами, то на али слишком большой выбор(f0-f4, l серия, или там разница только в размере памяти и частоте?). Кстати, что делать, после того как научился моргать светодиодом? Есть какие-нибудь полезные учебные проекты(как на ардуино умный дом, или метеостанция)? Решил заняться, тк интересна архитектура процессоров, до этого долго ебался с асмом и писал разные эмуляторы. Или для изучения архитектуры процессоров лучше выбрать другой путь, а не ебаться с железками? Алсо, подскажите годных книг по архитектуре(таненбаума уже пролистал)
1178 276001
>>275999

> Вкатывальщик в треде. Аноны, подскажите с какой платы лучше начать еблю с микроконтроллерами, то на али слишком большой выбор(f0-f4, l серия, или там разница только в размере памяти и частоте?). Кстати, что делать, после того как научился моргать светодиодом? Есть какие-нибудь полезные учебные проекты(как на ардуино умный дом, или метеостанция)? Решил заняться, тк интересна архитектура процессоров, до этого долго ебался с асмом и писал разные эмуляторы. Или для изучения архитектуры процессоров лучше выбрать другой путь, а не ебаться с железками? Алсо, подскажите годных книг по архитектуре(таненбаума уже пролистал)



нуклео бери.
1179 276003
>>276001

писать - прямо в браузере, mbed
1180 276005
>>276001
http://amperka.ru/product/stm32-nucleo-f401re

Такую, например? Что сразу к ней можно докупить, чтобы можно было не только светодиодами моргать
1181 276008
>>276005

Протошилд ардуиновский для начала. А лучше полноценную макетку с дырками под пайку и пару катушек монтажного провода. Для конца и далее - тестолит, лазерный принтер, глянцевая фотобумага, ламинатор (желателен), дремель или самопальный сверлильник с цанговым патроном под микросверла.
1182 276015
>>276005
>>276001
Стоит почти как stm32f4discovery, но в отличие от discovery это совсем уж пустая плата.

>>275999

>Или для изучения архитектуры процессоров лучше выбрать другой путь, а не ебаться с железками? Алсо, подскажите годных книг по архитектуре(таненбаума уже пролистал)


Не знаю что ты понимаешь под архитектурой. Если хочешь понять что там внутри процессора, то учиться программировать микроконтроллеры бесполезно.
Лучший способ понять как работают процессоры - это сделать процессор в симуляторе самостоятельно. Для погромистов есть даже игрушка nand2tetris с убогим HDL-языком.
1183 276016
>>275999
изучай ЭЛЬБРУС, очень перспективно, с руками оторвут и у нас и в силиконовой долине!
1184 276048
>>275999

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


this
Про архитектуру с этими метеостанциями хуй чего узнаешь, сишечка она везде сишечка.
Я бы порекомендовал копать в сторону FPGA+softcore, типа бомжоальтера с ебэя и Nios II (есть даже бесплатно же оффициально). Захуярь туда своих инструкций, добавь каких-нибудь шин, поэкспериментируй. Потом запили свою архитектуру уровня /ra/. Прикрути для неё бэк-енд к gcc. Вот ты и вкатился, велкам.
1185 276078
>>276048
Спасибо за совет.

>Вот ты и вкатился, велкам.


Этого будет достаточно, чтобы устроиться в условный интел/амуде на джун/мидл позицию?
1186 276083
>>276078
Выше >>276015 я написал почти то же самое что и >>276048

Без знаний основ цифровой электроники за FPGA браться не стоит. Нужно хотя бы знать что такое триггеры, комбинационные и последовательностные устройства, иметь представления как там суммируются задержки. А этих знаний у тебя, судя по этому вопросу, нет.

>типа бомжоальтера с ебэя и Nios II


Nios я бы не советовал, поскольку его внутренности практически не видны. Да и разбираться придется больше с тем на какие кнопки в IDE нажимать, чтобы оно заработало.

>Потом запили свою архитектуру уровня /ra/.


С этого стоит начать, разумеется после изучения основ цифровой электроники и верилога. Написать на верилоге простенький процессор можно за день. Плату с ПЛИС покупать не обязательно, все это симулируется.

>Прикрути для неё бэк-енд к gcc.


По моему это совсем сложно, для меня так вовсе наверное не реально. Максимум можно какой-нибудь лисп или форт для самодельного процессора сделать.

>>276078

>Этого будет достаточно, чтобы устроиться в условный интел/амуде на джун/мидл позицию?


Смотри требования по вакансиям. Как минимум еще необходимо владеть методами верификации.
1187 276087
>>276083

> Nios я бы не советовал, поскольку его внутренности практически не видны. Да и разбираться придется больше с тем на какие кнопки в IDE нажимать, чтобы оно заработало.


Что тумаешь по поводу openrisc и симулировать его на verilator? Вообще можно тогда ничего не покупать
1188 276089
>>276083

>Без знаний основ цифровой электроники за FPGA браться не стоит


Ну я читал книги по компьютерной архитектуре, там эти вещи описывались, плюс немного схемотехники и булевской алгебры знаю. Думаю, за некоторое время смогу осилить. Энивей, идея написать свою архитектуру под проц звучит очень уж заманчиво.

>Nios я бы не советовал, поскольку его внутренности практически не видны


Почему это плохо? Я же не собираюсь туда паяльником лезть

>С этого стоит начать, разумеется после изучения основ цифровой электроники и верилога


Есть какая-нибудь классика по этой теме?

>Плату с ПЛИС покупать не обязательно, все это симулируется.


Симуляция офк круто, но когда перед тобой реальная железка, то на душе как-то поприятнее

>По моему это совсем сложно


Ну для llvm это точно возможно сделать за разумное время

>методами верификации


Можно поподробнее плз

Алсо, спасибо за ответ
1189 276091
>>276087

>openrisc


Это не то с чего следует начинать, если хочешь разобраться с основами. На гитхабе хватает намного более простых процессоров.
Простой синтезируемый процессор на верилоге - это не более 150-300 строк.

>verilator


Не пользовался, но для него даже нормального GUI нет, наверное и с остальным не лучше. Стоит взять modelsim, можно даже бесплатно из quartus webpack.
Но ПЛИС - это не набор совсем уж простейших вентилей, это скорее набор небольших 3-5 входовых ОЗУ и триггеров, с добавлением блоков двухпортовых ОЗУ побольше. Ты можешь на верилоге описать трехпортовые ОЗУ, но поскольку таких блоков в ПЛИС нет, то они будут синтезироваться из триггеров и займут много ресурсов.

В любом случае, пока не изучишь основы цифровой электроники, браться за FPGA нет смысла.
1190 276093
>>276091

> Не пользовался, но для него даже нормального GUI нет, наверное и с остальным не лучше


Зря ты так, им пользуется очень много компаний с известными именами, потому что он позволяет получать довольно быстую cycle-accurate модель. Всё потому что он переводит модель с верилога на кресты, а потом это можно откомпилировать и получить экзешник с твоей моделью. А gui ему не за чем, он генерирует времянку, которую потом открываешь gtkwave. Ну и дебажить можно как обычное приложение любым удобным способом
1191 276116
>>276083

>Смотри требования по вакансиям. Как минимум еще необходимо владеть методами верификации



И еще вот книжка

http://ic.sjtu.edu.cn/ic/dic/wp-content/uploads/sites/10/2013/04/CMOS-VLSI-design.pdf
1192 276122
>>276116

И вот софтина с мозолями на богомерзкой жабе для того что бы свой "працессар в жилези зопелить":

https://github.com/imr/Electric-VLSI/tree/master/electric
1193 276123
>>276122

>И вот софтина с мозолями на богомерзкой жабе для того что бы свой "працессар в жилези зопелить":



Кочать здесь:
http://ftp.gnu.org/pub/gnu/electric/
1195 276610
Всё-таки с первоначальным вхождением в ARM что-то не то.
Я 4 дня проебался, что бы прикрутить к Keil 5 отладчик Colink
1196 276682
Как понять, что orange pi lite включился? Монитора с hdmi у меня нет. Включая питание — ничего не происходит. Нажимаю на кнопочку включения — ничего не происходит. Поискал ревью на ютьюбе, нашёл одно, там при подключении горели светодиоды, а у меня нет. Пиздец?

Алсо, если вставить в плату флешку, то флешка при подключении питания горит, но всё равно сомневаюсь на счёт исправности.
1197 276694
>>276682
Записываешь образ на флешку, втыкаешь через ethernet в роутер и включаешь. DHCP в роутере должно выдать устройству IP, который можно посмотреть в веб-интерфейсе роутера. Если роутера нет, то скорее всего придется ставить DHCP сервер на компьютер или подключаться через UART.
Все, IP есть и можно подключаться через ssh.

У меня orange pi нет и не было, но могу предположить что светодиод может контролироваться операционной системой и в зависимости от дистрибутива может быть отключен.

>>276610

>Colink


Проблема в этом. Ты бы еще попробовал JTAG из FT2232H сделать.
1198 276695
>>276694
В lite версии нет езернета.

> но могу предположить что светодиод может контролироваться операционной системой


Ну не знаю, это как-то дико. Тащемта сейчас у меня на флешке дебиан, это первое что под руку попалось, сейчас попробую их дистрибутив взять.
urodi.png26 Кб, 243x153
1199 276698
>>276695
Хотя нет, не попробую, лучше подожду переходник hdmi to vga.
1200 276725
Котаны, где взять IAR новее 7.50 с крякалкой? На рутрекере нет. На работе дали задачу под stm32f7, а у меня в iar даже нет такого проца, кек.
1201 276729
Посоны, подскажете, где можно подсмотреть людскиенастройки подсветки синтаксиса в keil5?
1202 276763
>>276682
Цепляешься к UART любым адаптером USB-TTL и смотришь на serial console:
http://micro-pi.ru/orange-pi-pinout-pin-definition-gpio/#_Orange_Pi_One_Lite
https://linux-sunxi.org/UART
1203 276765
1204 276767
>>276682
Алёна Водонаева считает, что все работает нормально.
1205 277283
Посоны, поделитесь _delay_us без использования таймеров.
1206 277460
>>277283

> без использования таймеров


Почему такое условие? Работать будет как говно при таком подходе в любой реализации, а "калибровать" заебёшься, а для отладки и для релиза будут разные реализации (либо будешь хуярить `__asm("")`), а при смене, скажем, умножения PLL нужно будет всё делать заново.

Всего-то надо один раз аккуратно написать модуль, рабтающий на таймере (можно 16-битном, переполнения отслеживать и "складывать" в старшие 16 бит, это на самом деле самая геморройная часть), который при инициализации вычисляет задержку на вызов `delay()` (скажем, в цикле вызывает 1000 раз `delay(1)`, потом по таймеру определяет фактически прошедшее время, среднюю задержку запоминает и впоследствии для всех вызовов её учитывает). И таким модулем можно будет пользоваться хоть с -O0, хоть с -O2, хоть с HSI, хоть с HSE+PLL, точность выходит обычно в 1-2 такта.
1207 277739
>>277460
Достаточно просто знать сколько тиков в одной микросекунде.
Использование HAL накладывает какие-то ограничения на изменение и использование Systick?
1208 277745
>>277739

>Достаточно просто знать сколько тиков в одной микросекунде.


Только если устраивает систематическая ошибка в "плюс" (задержка на вызов функции, возврат из неё, вот это всё).

>Использование HAL накладывает какие-то ограничения на изменение и использование Systick?


Какого HAL? Если ты про STMовский, то да, он сам использует этот SysTick для отслеживания таймаутов операций, более того - с помощью прерываний, т.е. про прецизионность и детерминированность собственного `delay()` можно забыть.
1209 277746
>>277745

>Какого HAL? Если ты про STMовский, то да, он сам использует этот SysTick для отслеживания таймаутов операций, более того - с помощью прерываний, т.е. про прецизионность и детерминированность собственного `delay()` можно забыть.


Мерсибо. Бредить в этом направлении прекращаю.
1210 277750
>>277745
Ещё немножко понаркоманю
Вот это будет работать?

void delay_us(uint32_t value)
{
int32_tfv; // future value Systick
uint32_t tmpSysTickVal;
tmpSysTickVal =SysTick->VAL;
fv = tmpSysTickVal - value*TICKS_IN_US;
if(fv < 0)
{
fv = SysTick->LOAD - fv;
}
while (SysTick->VAL >= fv);
}
dus.png48 Кб, 365x229
1211 277751
>>277750
TICKS_IN_US - количество тиков в микросекунде
1212 277756
>>277751
строку 186 читать как
fv = SysTick->LOAD + fv;
1213 277782
Перекатываю с ньюфаг-треда:
Посоны, почему периоды моей мигалки разные? В keil5 - 10.5us, а логический анализаторsaleae logic analyzer 24mhz 8ch показывает 15.79us, кто из них пиздит? Алсо, смотрел уарт логическим анализатором - скорость показывает правильно.
1214 277792
>>277782
Тебе нужно задуматься о том что показывает Keil и что показывает LA.
И значение какого именно параметра твоего микроконтроллера Keil-у неизвестно.

Задумываться о том что именно ты измеряешь, чем, и что именно означает результат этого конкретного измерения этого конкретного параметра этим конкретным прибором - вообще полезно
1215 277811
>>277792
Вот, тупая задержка:
void Delay(uint32_t d_count){

for (; d_count > 0; d_count--){

__nop();

}

}
Процессор выполняет определенное количество определенных команд, которые в свою очередь выполняются за определенное количество тактов. Даже не знаю что тут должно отличаться ирл от симулятора, частоты-то одинаковые.
1216 277822
>>277811

>Процессор выполняет определенное количество определенных команд, которые в свою очередь выполняются за определенное количество тактов.


Если у тебя Cortex M0 без пайплайна, то это, хотя и очень грубо, но более-менее верно.
Но дело даже не в этом.
Что по твоему мнению означает слово выполняются?
После того как ты подумаешь и ответишь на этот вопрос, задай себе следующий - в чем разница между значениями слова "команда выполнена для Keil и LA?
В качестве подспорья приведу аналогию - выражение
взрыв сверхновой* отличается для самой этой звезды и для наблюдателя, скажем, с Земли?
1217 277825
>>277822
Нагрузил ты меня. Камень у меня stm32f103c8t6, если что. Объясни на пальцах почему так происходит.
1218 277830
>>277825

Потому что суперскалярный конвеер который в зависимости от кода либо может одновременно несколько инструкций выполнить или нет.
1219 277837
>>277830
Спасибо, что-то где-то про такое читал, только ничего не понял, вроде предвангователь следующей инструкции. То есть для точной задержки можно использовать только таймер, как писал анон выше?
1221 277996
>>277750
Во-первых, случай "переполнения" отработан некорректно: если `fv < 0`, то условие `while(...)` выполнится, скорее всего, сразу же, никакого ожидания не будет, т.к. новое значение `fv` будет вообще больше, чем `LOAD`. Чтобы починить, нужно сделать код совсем нечитаемым говном, из-за 24-битности этого сиськотика.

Во-вторых, есть хренова тьма "накладных" задержек, причём размер большинства из них сильно зависит от конкретного компилятора, концертных его опций, а также контекста вызова функции и, наверное, состояния конвейера:
1) время на вызов функции, если она не заинлайнится (а может местами инлайниться, а местами нет);
2) время на загркузку констант в регистры, типа адреса `SysTick` и `TICKS_IN_US` (может требоваться, а может и нет, если вызовы идут подряд);
3) время на загрузку значения `VAL` (может быть 2 такта, а может быть и 1, если функция заинлайнена и предыдущий вызов тоже `ldr`);
4) реализация блока `if(...)` может быть через бранчи (и тогда будет плавающее количество тактов в зависимости от (не)выполнения условия) или через условное выполнение (как решит конпелятор);
5) значения переменных могут храниться в памяти или в регистрах (как решит конпелятор);
6) ещё, наверное, куча всего, чего я не знаю.

Не говоря уже о том, что вся эта пурга наложится на механизм загрузки инструкций из флеш-памяти, размер соответствующего буфера, конкретная частота (твой стм тянет до 72 МГц, но его флеш-память только 24 МГц).

Короче, для совершенно конкретных условий (компилятор, опции, частота, конкретная программа) ты можешь подобрать пару констант таким образом, чтобы задержка приводила с точностью до нескольких тактов к ожидаемой паузе, в конкретном месте программы. Но стоит изменить что угодно или вызвать функцию из другого места, и результат поплывёт.

>>277811
Согласно документации `nop` не обязан приводить к задержке, якобы ядро может выбрасывать его из конвейера (хотя лично я с таким поведением не сталкивался); эта инструкция нужна для выравнивания кода в памяти.
1221 277996
>>277750
Во-первых, случай "переполнения" отработан некорректно: если `fv < 0`, то условие `while(...)` выполнится, скорее всего, сразу же, никакого ожидания не будет, т.к. новое значение `fv` будет вообще больше, чем `LOAD`. Чтобы починить, нужно сделать код совсем нечитаемым говном, из-за 24-битности этого сиськотика.

Во-вторых, есть хренова тьма "накладных" задержек, причём размер большинства из них сильно зависит от конкретного компилятора, концертных его опций, а также контекста вызова функции и, наверное, состояния конвейера:
1) время на вызов функции, если она не заинлайнится (а может местами инлайниться, а местами нет);
2) время на загркузку констант в регистры, типа адреса `SysTick` и `TICKS_IN_US` (может требоваться, а может и нет, если вызовы идут подряд);
3) время на загрузку значения `VAL` (может быть 2 такта, а может быть и 1, если функция заинлайнена и предыдущий вызов тоже `ldr`);
4) реализация блока `if(...)` может быть через бранчи (и тогда будет плавающее количество тактов в зависимости от (не)выполнения условия) или через условное выполнение (как решит конпелятор);
5) значения переменных могут храниться в памяти или в регистрах (как решит конпелятор);
6) ещё, наверное, куча всего, чего я не знаю.

Не говоря уже о том, что вся эта пурга наложится на механизм загрузки инструкций из флеш-памяти, размер соответствующего буфера, конкретная частота (твой стм тянет до 72 МГц, но его флеш-память только 24 МГц).

Короче, для совершенно конкретных условий (компилятор, опции, частота, конкретная программа) ты можешь подобрать пару констант таким образом, чтобы задержка приводила с точностью до нескольких тактов к ожидаемой паузе, в конкретном месте программы. Но стоит изменить что угодно или вызвать функцию из другого места, и результат поплывёт.

>>277811
Согласно документации `nop` не обязан приводить к задержке, якобы ядро может выбрасывать его из конвейера (хотя лично я с таким поведением не сталкивался); эта инструкция нужна для выравнивания кода в памяти.
1222 278042
>>277996

>с точностью до нескольких тактов к ожидаемой паузе


И ты забываешь что изменение логического уровня на одном из выводов МК происходит совсем не мгновенно.
1223 278050
>>278042
нет ты
Под "подобрать" я имею ввиду добиться , скажем, от кода `set_pin(1); delay(1); set_pin(0);` длительности импульса 1 микросекунда, скажем, по осциллографу, то можешь быть уверен, что вызов функции длится ровно микросекунду, и совершенно не важно, какую задержку дают порты, хоть час, важно лишь что она не зависит от выставляемого уровня.
1224 278051
>>278042
алсо, реально у stm32f103 задержка крошечная, сопоставимая с минимальной длительностью такта (~14нс).
1225 278109
>>278050
Тааак, падажжи ёбана, чего-то я хуйню сморозил.
Конечно, от задачи зависит; и если задача - дрыгать ногами с заданными интервалами, то всё так, хотя "истинная" задержка будет хз какой, тут вообще слишком много факторов: режим работы порта, ёмкость нагрузки етц.
Но я вообще изначально не про порты думал, а про что-то типа

t1 = YOBA_TIMER->CNT;
delay_us(1);
t2 = YOBA_TIMER->CNT;
ASSERT(t2 - t1 == SystemCoreClock / 1000000);

Тут, конечно, тоже по-правильному надо учесть задержку на чтение волатильного регистра CNT, но это уже совсем просто.

И вообще, при правильной организации такой задачи не должно возникать, по-моему :3
1226 278147
>>278109

>"истинная" задержка будет хз какой, тут вообще слишком много факторов: режим работы порта, ёмкость нагрузки


Начинаешь догадываться, похвально.
1227 278155
>>278147
ждем, когда ты догадаешься, что детали работы портов с программными задержками связаны примерно никак
1228 278165
>>278155
Ну если ты на Си nop-ами их делаешь, то обычно да, никак.
Но это, мягко говоря, не единственный способ.
1229 278169
>>278165
nop'ы не предназначены для задержек и могут их производить или нет в зависимости от реализации и/или ситуации, см. instruction cost в доках от ARM.
Вообще, заебал.
Если заморочиться с минимизацией задержек и сделать напрямую, т.е.
GPIOA->BSRR = PIN;
delay(...);
GPIOA->BRR = PIN;
то ситуация будет эквивалентна работе со счётчиком таймера в программном плане на 100% (запись в волатильный регистр - то же, что чтение из него), т.е. калиброванная по таймеру задержка будет корректной и для работы с выводом; а в аппаратном плане - с точностью до таймингов, приведённых в даташите, что для stm32f1xx составляет 5 нс. Ты из-за 5 нс мне тут мозги ебёшь?
1230 278301
Судя по всему, embedded-тред, бывший здесь пару лет назад - всё, так что спрошу здесь. Хочу заказать оценочную плату из пиндосии https://store.ti.com/Tiva-C-LaunchPad.aspx , и как-то так получается, что она с доставкой - 20 баксов, т.е. примерно 1200 рублей, а на али такая же - от 1400 рублейс бесплатной доставкой. Тут где-то наебалово?
1231 278304
>>278301
У TI если хорошо попросить, отладки бесплатные.
Но насчет Tiva лучше сразу почитать errata и заплакать. Как оно у них не летало, так и не летает. Баг на баге.
1232 278308
>>278304
Вообще, я её для этого курса заказывать собрался, бо там на её всё завязано.
https://courses.edx.org/courses/course-v1:UTAustinX+UT.6.10x+1T2017/info
Но раз так, то, пожалуй, просто проделаю то же на имеющейся у меня STM32F3 Discovery
Понятно, что код будет другой, ну да и йух с ним.
А хорошо попросить - это наобещать закупку крупной партии для продукта/учебного заведения?
1233 278839
Аноны, помогите. Пытаюсь прошить stm8s103f3, но нихуя не получается.
Программка примитивнейшая чтобы тупо зажечь светодиод.

#include "stm8s.h"

int main() {
GPIOB->DDR |= (1<<5);
GPIOB->CR1 |= (1<<5);
GPIOB->CR2 |= (1<<5);
GPIOB->ODR |= (1<<5);
while (1) {
asm("nop");
}
}
Прошиваю ST visual programmer, пишет

< File successfully loaded. File Checksum 0x731B

> Programming PROGRAM MEMORY area...


Cut Version and Revision of device: 1.2
< PROGRAM MEMORY programming completed.

> Verifying PROGRAM MEMORY area...


Cut Version and Revision of device: 1.2
< PROGRAM MEMORY successfully verified.

Но нихуя в итоге не работает, светодиод не зажигается. В чем проблема?
1234 278840
>>278839
Может тактирование порта включить нужно? Не знаю как в стм8, но в стм32 по умолчанию все модули отключены.
д.png40 Кб, 802x546
1235 278844
>>278840
1. В стм8 нельзя вообще нет настройки тактирования порта.
2. Даже если бы было, они все равно по умолчанию все включены с ресета.
1236 278971
>>278839
Пиздос. А где инит gpio на вывад? Что, тоже с ресета как output сконфигурирован, да?
1237 278985
Посоны, зачем нужен stm8 при наличии stm32?
1238 278988
>>278839
Светодиод там низким уровнем зажигается вроде бы.
Также для инициализации имеет смысл использовать библиотечные функции.
#define GPIO_LED GPIOB
#define PIN_LED GPIO_PIN_5
GPIO_Init(GPIO_LED, PIN_LED, GPIO_MODE_OUT_PP_LOW_SLOW);

>>278985
Для мигания светодиодами практически все равно какой микроконтроллер.
1239 278995
>>278988
Т.е. цель существования STM8 это моргание светодиодами.
1240 279004
>>278985
Меньше энергопотребление.
Возможность устроить реалтайм.
1241 279008
>>279004

>Возможность устроить реалтайм.


Поясни, плиз, а то я что-то не уловил почему "реалтайм" на STM32 нельзя устроить.
Что такое "реалтайм" - СРВ?
1242 279010
>>279004

>Меньше энергопотребление.


И что? Очень сильно меньше? ;-)
1243 279012
>>279008
Потому что у stm32 пайплайн, кэши и прочая недетерминированность.

>>279010
В случае именно говноSTM8 - не очень сильно. Но меньше.
STM32L.png198 Кб, 1072x745
1244 279014
STM32L
STM8L.png74 Кб, 1070x718
1245 279015
STM8L
1246 279016
Я не сказал, что у STM8L энергопотребление как-то кардинально отличается от STM32L
Да, меньше, но не принципиально.
1247 279018
>>279012

>Потому что у stm32 пайплайн, кэши и прочая недетерминированность.


А в измеримых величинах это как-то подтверждается?
1248 279020
>>279018
Ну скажи мне, за сколько тактов или наносекунд исполняется та или иная команда на STM32.
1249 279021
>>279020
Обычно 1 такт, да? По крайней мере, так в описании ядра Cortex-M3 говорится
1250 279022
>>279021
"Обычно" не прокатывает. Точно скажи.
Наш ядерный реактор обычно успевает отдать команду вытащить стержни. В 99% случаев

>I am having trouble understanding the rationale for using an ARM or PIC32 in a hard real-time application. These chips are designed with the goal of reducing average-case execution time at the expense of increased worst-case execution time and increased jitter.


>http://www.embedded.com/electronics-blogs/max-unleashed-and-unfettered/4439753/Non-real-time-vs--soft-real-time-vs--hard-real-time-applications

1251 279027
>>279022
И где косяк?
1252 279062
>>279027
В 1% случаев когда не успевает.
От 0.0000000000000000000000001% случаев принципиально не отличается в данном контексте ничем.
1253 279065
>>279062
На STM8 картина принципиально другая?
1254 279071
>>279065
Да. Нет пайплайна, нет кэша, нет out-of-order.
Медленнобразно но единообразно.
1255 279106
>>278985
Дешевле в 3 раза.
1256 279109
>>279106

> в 3 раза.


Иногда даже в 5
1257 279110
>>279106
Это не так, если сравнивать самые дешевые микроконтроллеры, то разница будет максимум в 2 раза.
Даже если есть какая-то разница в цене, то что нужно делать, чтобы она была существенной? Серию из нескольких тысяч махараек, в которых кроме микроконтроллера только корпус и пара светодиодов?

>>278995
Многие микроконтроллерные задачи сводятся практически к миганию светодиодами, например часто от микроконтроллера требуется только инициализация каких-то микросхем по I2C и конфигурация FPGA.
1258 279123
>>279014
>>279015
Но один и тот же объём работ за 1 секунду stm32l выполнит при более низкой частоте, чем stm8l. Так что потребление не аргумент, если только речь не идёт о чём-, что спит 99% времени.

>>279022
Ай ну что за еботня. Вот ты в наносекундах скажи время реакции stm8l на некоторое событие. 16МГц, это значит неопределённость от 0 до 63 нс просто из-за тактовой частоты, что вдвое больше, чем для stm32l.
Далее, в системах реального времени важно гарантированное худшее время, а не детерминированность в принципе. И если реакция на событие сколь-нибудь нетривиальна (ну, там, включая пачку 32-разрядных умножений, скажем), то STM8L среагирует гарантированно и детерминированно -- медленно.
1259 279126
>>279110
Хуйни не неси, stm8s можно ведрами покупать. Стм32 выйдет раз в 5 или больше дороже, как сказал этот анон >>279109
1260 279130
>>279126
https://www.chipdip.ru/product/stm8s003f3p6tr и https://www.chipdip.ru/product/stm32f030f4p6
Можешь посмотреть то же на https://www.digikey.com или еще где-нибудь.
Даже если в 5 раз дороже, как это может заметно повлиять на стоимость махарайки? Или ты кроме микроконтроллеров никаких микросхем не применяешь?
1261 279146
ARM-господа, есть ли работа в рашке? Как поживаете? Есть деньхи на дошик или может быть на Тайланд раз в полгода?
1262 279152
>>279123
Специально для этого ti придумала сопроцессор ввода-вывода, pru subsystem. Работает на 200 МГц, нет пайплайна, инструкции за 1 такт, внешние пины воткнуты прямо в регистр ядра
1263 279156
>>279152
Для чего "для этого"? Чем оно лучше CPLD?
1264 279169
>>279123

>один и тот же объём работ за 1 секунду stm32l выполнит при более низкой частоте, чем stm8l.


Серьезно? stm32 быстрее сложит два 8-битных числа чем stm8?

>Так что потребление не аргумент, если только речь не идёт о чём-, что спит 99% времени.


Если чему-то важно потребление, оно обычно как раз и спит 99% времени. Кстати, за сколько там просыпается твой STM32?
1265 279170
>>279123

>гарантированно и детерминированно -- медленно


И что характерно, STM32 с отключенным даже только кэшем (с неотключенным worst case будет еще хуже), сделает это настолько же медленно - только при этом еще и будет больше жрать и дороже стоить, и места больше занимать.
1266 279173
>>279169

>Серьезно? stm32 быстрее сложит два 8-битных числа чем stm8?



http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cihidhaa.html

И да, даже одно сложит быстрее по причине конвеера.
1267 279180
>>279173

>по причине конвеера


По причине конвеера он сложит быстрее в типичном случае, мы же говорим о worst case.
1268 279184
>>279180
но если worst case попадает в интревал гарантированного ответа, то не всё ли равно?
лунный модуль.PNG5 Кб, 803x60
1269 279205
>>279123

> Ай ну что за еботня.


В какой момент земляне все проебали? Как диды умудрялись летать до Луны на контроллерах с ферритовой памятью, а теперь нам подавай стм32 для мигания светодиодом и то он не успевает вовремя?
1270 279208
>>279170
>>279180
Кажется, я догадался. Ты неверно понимаешь это самое "worst case" и что означает "средняя скорость конвейера".
Это вовсе НЕ среднее значение по времени. Будто работающий контроллер может по некоему пуассоновскому процессу изредка "спотыкаться" - хуй там.
"Среднее" - оно по множеству различных реализаций различных алгоритмов. Можно специально искусственно написать код, который будет постоянно сбрасывать конвейер, но если конкретный код работает за определенное время, то он так всегда и будет работать.
Вероятности, случайность, эти твои 0.000001% "худшего", относятся к случаю, когда ты берешь архитектуру м3 еще до ознакомления с задачей, вот тогда есть небольшая вероятность, что случится худшее и задача окажется медленно решаемой на конвейере.
К детерминизму выполнения заданного кода это не имеет отношения.
1271 279218
>>279208
Ты так пишешь, будто в STM8 нет конвейера, а в cortex-M3 он особо длинный.
1272 279254
>>279156

> Для чего "для этого"?


Для кастомной периферии, для жесткого реалтайма

> Чем оно лучше CPLD?


Ну "лучше" - понятие слишком широкое, и им не стоит бросаться в обществе уважающих себя инженеров. Но основные преимущества такие - это один корпус, а не два, и cpld ты не сможешь подключить напрямую к ddr памяти, нужен всё равно какой-то интерфейс к хосту
1273 279266
>>279254

>cpld ты не сможешь подключить напрямую к ddr памяти, нужен всё равно какой-то интерфейс к хосту


Не вполне понял что ты хотел сказать. Внутри микроконтроллера статическая память. Через FSMC можно подключить SDRAM и CPLD одновременно.
1274 279267
>>279266
Пиздец ты уже загнался, началось с stm8l для жёсткого реалтайма, потом TI, теперь ещё DDR память, охуеть вообще.
1275 279268
1276 279351
>>279266
Ну а там не sdram, а ddr3, не микроконтроллер, а арм процессор с линуксом
1277 279369
>>279351
Сначала говорили о другом: >>278985

>Посоны, зачем нужен stm8 при наличии stm32?



>а ddr3, не микроконтроллер, а арм процессор с линуксом


К чему по твоему там обычно подключаются параллельные NAND флешки? Там обычно два интерфейса внешней памяти, к одному из которых можно подключать не DDR память. Конкретно в этих TI с DDR3 >>279152 имеется два интерфейса памяти.
Ну и DDR3 является синхронной динамической памятью, то есть SDRAM.

>>279267
Судя по всему это разные аноны, один любитель TI >>274377 и другой с боязнью конвейеров >>279012
1278 279417
>>279369

> Сначала говорили о другом


Я мимопроходил и увидел, что идёт обсуждение дрыгания ногами, пайплайна, реалтайма и всего прочего. Передо мной тоже вставали такие задачи, и я перерыл кучу инфомации, перечитал много мануалов, а такие вопросы как задержка между instruction fetch стадии и появлением сигнала на ноге далеко не на первой странице мануала написаны, приходится долго вчитываться. В итоге остановился на техасовской Ситаре, и это довольно универсальное решение, к тому же времени на разработку новой периферии значительно меньше уходит. Может, я кому-то сократил много времени и денег, рассказав о такой штуке

> один любитель TI >>274377


Да, в том треде тоже я писал, я походу один на всей доске про эту систему прошарил
1279 279431
Поясните за разницу меджу уткой Nucleo и Discovery.

Хочу взять на F413 (f0 и f1 уже заказал с али от lc-tech) .

Есть куча ардуинской обвязки (обменял у коллеги на пиво) - лучше для совместимости брать nucleo? Хотя про диско пишут, что там ардуино-совместимые пины.

Чем-то кроме формфактора с экраном и цвета они отличаются? Есть какие-нибудь неочевидные киллер-фичи?
1280 279437
Анон, порекомендуй годных книг про arm cortex-m, да и о программировании микроконтроллеров/embedded вообще. Таких, чтоб давали базу и раскрывали суть, вроде K&R для C, Thinking in java для жабы, zen of assembly language для x86 асма, dive into python для пайтона, sicp ну ты понел.

Уровень в прикладной разработке у меня относительно высокий, а во встроенную/мк только вкатываюсь.
1281 279464
Можно программировать микроконтроллеры на маке? Не много ли там пердолинга? Спрашиваю, т.к. почти все туториалы под шиндоус
1282 279465
>>279464

> микроконтроллеры на маке?


Страдай.
Безымянный.png15,3 Мб, 3368x3676
1283 279466
>>279437
Для них самые годные книги Reference manual и Data sheets, беллетристики особо нет
Вот эта понравилась Valvano J. - Embedded Systems. Real-Time Operating Systems for Arm Cortex M Microcontrolle - 2017
1284 279479
>>279437

>Уровень в прикладной разработке у меня относительно высокий, а во встроенную/мк только вкатываюсь.


>>279464

>Можно программировать микроконтроллеры на маке? Не много ли там пердолинга? Спрашиваю, т.к. почти все туториалы под шиндоус


Смуззихлёбы обезумели.
1285 279484
>>279479
Кто-то должен сделать автопилот для гироскутера. А у местных ни гироскутера нет, ни на смузи не хватает.
1286 279492
>>279464
Их же сейчас можно на питоне и яваскрипте программировать
1287 279498
>>279479
>>279465
Плес, серьезный вопрос
1288 279499
>>279492
На Дельфи или в Лазарусе можно ?
Я только паскаля знаю.
1289 279500
>>279498
Для мака эмулятора лялиха или винды нет?
Я в дриснятке во встроенном лялихе абсолютно все делаю. стм8 только в винде.
1290 279505
>>279498
>>279464

>Можно программировать микроконтроллеры на маке?


Для мака есть те же самые GCC и eclipse. Поэтому проблемы могут быть только с отладчиком.

>т.к. почти все туториалы под шиндоус


Действия по установке всего этого под линуксом и виндовсом практически не отличаются, могу предположить что для мака все аналогично.
1291 279527
>>279499

> Я только паскаля знаю.


Дед, ты как вообще про интернет узнал?
1292 279539
>>279527
Полез в компонент TInternet ковыряться.
1293 279540
>>279505

>проблемы могут быть только с отладчиком


OpenOCD должен запуститься без проблем, плагин для эклипса имеется.
У меня вот тулчейн QtCreator+GCC+OpenOCD, выбирал с критерием кроссплатформенности, но по факту ей и не пользуюсь.
1294 279583
>>279539
лол
1295 280231
Интересный ответ на OrangePi IoT (http://hackaday.com/2017/04/11/10-orange-pi-2g-iot-released-to-compete-with-pi-zero-w/)

http://www.myirtech.com/list.asp?id=563 за $24.80 на i.MX6ULL
Главное - "Linux 4.1.15 (Debian, Yocto, QT)"
1296 280251
>>280231

> OrangePi IoT 15$ с доставкой


> i.MX6ULL $24.80+$38 с доставкой в восточную европу.

1297 280255
>>280231

> OrangePi IoT


Хм, и что можно на этой хуйнюшке сделать? Там только на Питоне говнокодить можно, или и на С++?
1298 280260
>>280251
Есть разные способы доставки, да и хуйнюшка скорее заготовка для мелкой партии чего-нибудь, а не "я ща на Ардуине склепаю себе Умный Дом".

>>280255
Там в основном ебаться с полуработающими блобами на Си.
Но если их доебать, то подключить к ней можно много чего.
1299 280375
Итак, ARM-бояре, я триггернулся на <$10, IoT, 1GHz, Pi и заказал на Али этот самый Orange Pi 2G-IOT. После того как проспался и поостыл, начал задумываться, - Ну нахуя!!? Порывшись на Официальном(tm) сайте и не найдя нихуя толкового, решил обратится к Двачу. С чего начать-то? Это же нихуя не Ардуинка, а практически аналог моего первого компа собранного в 2003. Кто работал с Апельсинками энтими?
1300 280376
>>280375
Иди на форум Armbian, там все расскажут.
1301 280380
>>280376
Русскоязычного комьюнити как обычно не сыскать? Хуй с ним, поупражняюсь заодно в англицком.
1302 280383
>>280380
Русскоязычное коммьюнити очень даже, один из главных пилильщиков Armbian под эти Оранжи наш человек.
Но общаются конечно на английском потому что зачем же и ради чего сокращать размер коммьюнити отсечением от него всех кто русского не знает?
1303 280419
>>279498
В гугле забанили? Или ты на каком-нибудь 68K based антиквариате сидишь?
http://lmgtfy.com/?q=programming+stm32+on+macintosh
1305 280442
>>280375

> Orange Pi 2G-IOT


Че за ебала такая? Что за rdamicro, первый раз вообще слышу. На неё хоть линукс есть в сорцах, хотя бы для виду. А драйвера? А закрытые прошивки для модулей gsm и gps? Потому что работать там врядли что-то будет. Что ты вообще с ней делать будешь, там же ни документации, ни аппнотов, ни сорцов? Взял бы лучше за 60 баксов beaglebone, так у тебя бы шикарнейшая поддержка была от ti, всегда рабочий и свежий линукс, куча примеров и проектов. Вот тут реально можно изучать и въезжать в тему на хороших примерах
1306 280444
>>276682
Нужна была sd карта. Теперь красный светодиод горит но горит только он, зелёный нет. Орандж не работает с медленными картами? У меня микрософт от этих анальных ограничений, скажите что это не так.
1307 280445
>>280444
Блядь, это я VGA кабель не вткнул в монитор, а оно оказывается работает! Распбиан приветствует меня!

Алсо, на счёт sd карты, это во всех оранджах она обязательна? Я хотел купить орандж с сатой и поставить ОС на внешний HDD.
1308 280448
>>280442

> Взял бы лучше


Возьму если приспичит.

> А закрытые прошивки для модулей gsm и gps?


ЖПС на ней нет, а ждя ЖСМ, - думаю он выложит попозже. На старые апельсинки на гитхабе хватает всякого.
1309 280449
>>280448

> ждя


*для
слоуфикс
1310 280528

>Браслет собран на основе чипа Nordic 52832.


>Нордик для легкой разработки сделал готовый режим обновления ПО чипа — DFU.


>Как раз недавно на браслет пришло обновление.


вот линк кому интересно

>В гугл плэй есть приложения от фирмы Нордик, возможно кто то достаточно разбирается что бы порыться в ПО


>https://mysku.ru/blog/china-stores/50839.html

SAMV71XplainedUltraEvaluationKit.png724 Кб, 712x800
1311 280893
Сап, антон, внезапно на голову свалилась плата sam v71 xplained ultra пикрилейтед Я вообще плисоёб, и с МК почти не сталкивался, но в целях проф. роста решил заняться. Что можно интересного собрать на такой плате? Что почитать можно по этому МК?
1312 280929
>>280893
Ардуина на стероидах!
2 мельдония этому содомиту!
image.png680 Кб, 1536x2048
1313 281060
Такое увидел.

Table of Contents

Part I: Assembly as a Language
1: Introduction
2: GNU Assembly Syntax
3: Load/Store and Branch Instructions
4: Data Processing and Other Instructions
5: Structured Programming
6: Abstract Data Types

Part II: Performance Mathematics
7: Integer Mathematics
8: Non-Integral Mathematics
9: The ARM Vector Floating Point Coprocessor
10: The ARM NEON Extensions

Part III: Accessing Devices
11: Devices
12: Pulse Modulation
13: Common System Devices
14: Running Without an Operating System
1314 281118
>>281060
Скачай и выложи здеся пожалуйста.
1315 281124
>>281118
И что бы два раза не вставать - переведи уж на русский языкю
1325768291679.jpg122 Кб, 301x450
1316 281134
1317 281211
>>281118
https://scanlibs.com/tag/assembler/ тут и на русском есть
1318 281267
>>281211
Благо дарю душевно.
1319 281740
Работающие программистами/разработчиками, подскажите, пишите ли Вы код, используя HAL или что-то другое? Если я начал осваивать arm (stm32f4discovery плата) после 8-битных AVR, мне нужно сразу учиться на HALе? В интернете есть целый курс уроков, в которых используют HAL.
1320 281769
>>281740
Куб иногда выдает хуйню. Учитывай это.
1322 281779
>>281778
У меня была такая ошибка. Пишут, что она появилась в 4.20 версии куба http://www.openstm32.org/forumthread4668.
Так используют ли HAL несмотря на такие баги люди, для которых это работа, а не хобби? Или Вы сами все настраиваете, как в avr (TIMSK = (1<<TOIE1);).
1323 281781
>>281779
Профессионалы тоже Куб используют.
1324 281795
>>281779

> Так используют ли HAL несмотря на такие баги люди, для которых это работа, а не хобби?


Как раз таки его и используют. Поэтому еще везде пишут в требованиях "умение разбираться в чужом коде,читать документацию" как раз и для этого тоже. Потому что делать нехуй каждый раз часто используемые куски заново писать. А насчет багов - обычно это можно быстро раздебажить и исправить.
Но для новичка лучше всё самому ручками по мануалу писать. Чтобы понимать, как там что работает. К hal нужно придти, самому понять, зачем он нужен и захотеть его использовать
1325 281840
>>281779
Обновил Куб до 4.20.1 - да, действительно, этот баг поправили. Я, сцуко, "счастливый" - только STM32 начал изучать и сразу напоролся на баг Куба. Всю башку себе отъебал, пока понял, что Куб гонит.
1326 281846
>>281840
Вот поэтому нужно начинать учиться без всяких кубов. Чисто свой код использовать
1327 281850
>>281846
да-да! начинать нужно с машинный кодов, никакого ассамблера!
1328 281851
>>281846

> без всяких кубов.


Да этот стм32 и с кубом меня до трясучки доводит. Эта инициализация всяких шин просто перелом мозга производит.
1329 281886
>>281850

> да-да! начинать нужно с машинный кодов, никакого ассамблера!


Тоже неплохо денёк поковыряться в опкодах, понять, что это такое, какая у них структура и т. д.
>>281851
Моё имхо, если хочешь прям хорошо разбираться, нужно начинать писать без куба. Долго, муторно писать по мануалу свою инициализацию всей хуйни. Вот когда ты сможешь писать свой рабочий код, но тебе будет впадлу это делать, это значит, что ты созрел до куба, и после этого момента, ты его будешь использовать легко и непринужденно, и сам быстро находить в нём баги.
Если же тебе не охота лезть в дебри, то можешь сразу использовать куб, но будь готов, что он может работать немного не так, как ты предполагаешь, и тебе придется либо самому всё-таки погружаться в специфику железа, либо гуглить по форумам, что да как
1330 281899
>>281851
У эстма вся периферия похожая. Попробую с стм8 начать на асме. Потом все просто будет.
sage 1331 281962
>>281886

> Долго, муторно писать по мануалу свою инициализацию всей хуйни.


так и делаю в иаре, только работа с регистрами, только хардкор, никаких стд-либов и периферал-либов.
1332 282665
Ананасы, подскажите где про асм для М4 почитать?петухабр читал, ни хуя не понял CMSIS нихуя не понятно, HAL дохуя писать, один макрос пол-экрана занимает. SPL нормально, но некоторые функции очень медленные ибо везде обертки, ассерты, typedef'ы
Решил заняться этой хренью, потому что прочитал, что некоторые инструкции недоступны в сях, операции вроде 64 = 64+32*32 за 1 такт и прочую хрень. естесна, буду делать вставки в сях, ибо весь ниасилю
1333 282668
>>282665

> асм для М4 почитать?


http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439b/DDI0439B_cortex_m4_r0p0_trm.pdf

Ранон не может в гугол? Может тогда и не нужно мучить себя?
1334 282674
>>282665

>прочитал, что некоторые инструкции недоступны в сях, операции вроде 64 = 64+32*32 за 1 такт


это где такую хуйню несут? ЯП тут вообще не при чем, дело в конпеляторе, и слабо верится, что что-либо современное не может в такую примитивную инстракшн-левел оптимизацию.
Дрочил несколько раз критичные куски кода на асме, обскакать gcc -O3 так и не удалось. Имхо асм оправдан только когда важно иметь кусок кода, работающий одинаково независимо от компилятора и его опций. Так-то в CMSIS сишные обертки на все инструкции прописаны.
1335 282684
>>282668
Это я читал, так ни хрена и не понял. Где нормальные описания команд? Где написана структура асм файла? Названия аргументов вроде Rd, Rn, Rm, <op2> мне ни фига не говорят.
Видимо нужно учить основы асма с нуля. Спасибо хоть за мануал по NVIC
1336 282688
>>282674

>обскакать gcc -O3 так и не удалось.


Я только один раз переписывал на ассемблере кусок кода для cortex-M1, по сравнению с -O3 кейла, был прирост скорости на четверть. Точно не помню, но вроде бы прирост был из-за того что мне удалось распихать все часто используемые переменные в регистры.
Так что такой оптимизацией стоит заниматься только в крайнем случае.
1337 282743
>>282684

> Где нормальные описания команд?


Они там и есть "нормальные", вплоть до инстракшн-кост, чего тебе не хватает?

>Где написана структура асм файла?


В документации на компилятор жи. Ты чем бинарник собирать и линковать собрался? Вот там и наисано.

>>282688
Чего-то слабо верится, оптимально распихивать переменные по регистрам -- это то, что первым делом умеет любой компилятор, их изначально для того и создавали, задача для компьютера элементарная.
Ну или -О3 у кейла значит что-то другое, например минимизацию размера бинарника.
1338 282749
>>282688
Так логично же, хочешь скорости - ставь -Os
1339 282750
>>282749
Хуйню спизданул. s это size, придурок. Тогда уж -Ofast, хотя большого прироста по сравнению с -О3 не даёт
вообще прирост очень редко даёт
1340 282754
>>282743

>первым делом умеет любой компилятор


Если эта оптимальность зависит от входных данных, то оптимизировать сможет только тот кто знает статистические характеристики этих данных.

>>282750
>>282749
В кейле таких параметров нет, в нем есть только -Otime
И вывод другой: если хочешь скорости, бери другой микроконтроллер, чуда оптимизации не будет.
1341 282839
Придумал вот такой алгоритм для антидребезга кнопки. Будет работать?

TIM2->CR1 |= 1;
while ((!(TIM2->SR)) && (k < 1000000)) {
if (!(GPIOA->IDR & btn)) { TIM2->CNT = 0; k++; }
}
1342 282847
>>282839

> Придумал


Ты хоть на пальцах поясни, что твои кракозяблы значат?
1343 282848
>>282847
Запускается таймер, считающий до 50 мс. В цикле проверяется статус кнопки, если она сбрасывается (происходит дребезг), то таймер обнуляется и увеличивается счетчик. Цикл крутится, пока не апдейтнется таймер (дойдет до 50 мс) или счетчик досчитает до 1000000. Счетчик нужен на случай, если пользователь сумеет отпустить кнопку раньше, чем 50мс.
1344 282859
>>282848

> таймер (дойдет до 50 мс) или счетчик досчитает до 1000000


Я чот условие цикла не вдуплил, оно "TRUE" пока TIM2->SR (что это, 50мс?) И(!!!) k<100000.
1345 282867
>>282859

>TIM2->SR (что это, 50мс?)


Это флаг апдейта. Там восклицательный знак стоит, т.е. условие TRUE, пока флаг апдейта НЕ выставлен.

>И(!!!) k<100000.


Да, все верно. Когда счетчик станет больше, условие перестанет выполняться.
1346 282896
>>282839
Ерунда какая-то. Запускается этот кусок кода по какому условию? А если у тебя несколько кнопок? При переходе на другой микроконтроллер будешь переписывать целиком?
Дребезг контактов проявляется и при отпускании кнопки. Типовой алгоритм подавления дребезга выглядит как-то так:
if (вход) {
if (счетчик == макс) {
выход = 1;
} else {
счетчик++;
}
} else {
if (счетчик == 0) {
выход = 0;
} else {
счетчик--;
}
}
1347 282907
>>282896

>по какому условию?


По нажатию кнопки.

>А если у тебя несколько кнопок?


И что? GPIOA->IDR & btn условие проверяет конкретную, нажатую кнопку.

>Дребезг контактов проявляется и при отпускании кнопки.


А это неважно, потому что первый же фронт будет сигнализировать об отпущенной кнопке.
1348 282921
Я бы ещё вечный цикл держал, пока кнопку не отпустят - для обработки одиночных нажатий
1349 282971
>>282907
Бля, понял свою ошибку. При дребезге во время отпускания будет зарегестрировано ложное нажатие после отпускания
1350 283023
>>282971
>>282839
Проверил в железе. Вроде работает.
1351 283070
В моем посте присутствует спам-слово и это не MODER. Даже не знаю, что это за слово, вот ссылка на pastebin: https://pastebin.com/uP8gSvaR
1352 283073
>>283070

>RCC->AHB2ENR|=RCC_AHB1ENR_GPIOAEN


Тебя не смущает, что АНВ разные?
юзай SPL
1353 283077
>>283070
>>283073
Таки рекомендую использовать SPL. Причина: такие конструкции как #define IS_GPIO_MODE(MODE), ассерты бьют по рукам за неправильную инициализацию. В том же CMSIS названия регистров - обертки над числами, и АНВ2 насрать, что ты пихаешь в него бит от АНВ1 - для компилятора это просто число. В SPL такая штука не прокатит. Про хал не знаю, не пробовал. Притом использование в одном исходнике и CMSIS, и SPL считается дурным тоном.
1354 283086
Аноны, мучительно перелезаю с AVR на ARM - где почитать на русском языке про таймеры STM32.
Пиздец, столько наворочено, что в башку не помещается.
Простейшая задача - хочу считать таймером нажатие кнопки.
1355 283104
>>283073
>>283077
Точно, поправил. Но все равно не работает, теперь первое значение 1D0, а потом так же 20-28. Уже и предделитель, и количество сэмплов менял.

Сначала я вообще CubeMX открыл и все наконфигурировал, но он выплюнул столько кода, что я решил делать все сам. SPL не по хардкору, писать напрямую в регистры гораздо интереснее, плюс проект не хотел компилироваться, когда я SPL в кеил добавил.

>>283086
Лучший источник информации — даташиты. Прочитываешь весь раздел по таймерам и ищешь те функции, которые тебе нужны. Можно поискать переводы на русский, вот тут, вроде, много чего описано: http://chipspace.ru/stm32-general-purpose-timers-1/ .
1356 283158
>>283104

> Точно, поправил. Но все равно не работает, теперь первое значение 1D0, а потом так же 20-28. Уже и предделитель, и количество сэмплов менял.



> Сначала я вообще CubeMX открыл и все наконфигурировал, но он выплюнул столько кода, что я решил делать все сам. SPL не по хардкору, писать напрямую в регистры гораздо интереснее, плюс проект не хотел компилироваться, когда я SPL в кеил добавил.



Во первых, есть ли у тебя тру компилер arm-none-eabi-gcc? Spl поддерживает.
Во-вторых, лучше поставить кокос 1.7.х. Он специализируется на стмах, нет ограничения кода, халявный. Инклюдишь библиотеки одним щелчком мыши, прототипы функций с докладным описанием смотришь там же.
И документацию на cmsis найти гораздо труднее.
1357 283159
Есть один годный сайт, по которому вкатился сначала в авр, потом и в стм/ПЛИС. Всё максимально разжевано. http://avr-start.ru/?cat=78
1358 283160
>>283104

>Лучший источник информации — даташиты.


Да всё понятно про даташиты, но всё же - как считать, используя HAL, значения счётчика TIM2?
Захожу по нажатию кнопки в прерывание по нужному фронту - всё ок, а значения счётчика получить не знаю как...
Screenshot2017-05-10-23-17-49.png211 Кб, 720x1280
1359 283161
>>283104
Аааа, проорал. У тебя РА0 на кнопке сидит, которая к плюсу подтянута. Фак.
1360 283162
>>283160
void TIM2_IRQHandler(void)
{
cnt = __HAL_TIM_GET_COUNTER(&htim2);
HAL_TIM_IRQHandler(&htim2);
}
По нажатию кнопки приходит в прерывание, но cnt не увеличивается.
1361 283164
>>283162
Попробуй напрямую к регистру TIM2_CNT обратиться. И вообще, кинь весь код. Одна функция ничего не даёт.
Не выходит - гуглишь RM0090 и читаешь доку от ST.
извините за много сообщений, постоянно новое в голову приходит
1362 283165
>>276725
Я на сайтике caxapa (латинскими символами) находил для 7.5.0, там автор кряки вкладывает. Пароль фтпшника - анка
1363 283177
>>283158
У меня стандартный, стоит ставить? Переход с ардуино на регистры был непрост, теперь еще и компилятор отдельный указывать. Я все еще хочу обойтись без SPL. Хотя, если ее использование увеличивает размер кода так же, как и CMSIS, то можно попробовать.

>кокос


Читал, что серьезные дядьки в нем не пишут. Плюс официальный сайт лежит уже, судя по форумам, продолжительное время, что не говорит в его пользу.

>И документацию на cmsis найти гораздо труднее.


Я из него пока только setInterrupt() использую, потому что не нашел, как это через регистры делается, лол. Документация даже на сайте кейла есть, http://www.keil.com/pack/doc/cmsis/General/html/index.html .

>>283160
Так написал бы сразу, что с HAL, а то склаждывается впечатление, что ты совсем ничего не знаешь.

>>283161
Ты, наверно, предположил, что у меня discovery? Я себе купил вот такую плату: http://www.ebay.com/itm/272501820584 , она и дешевле, и меньше, а для выхода логический анализатор есть.
1364 283180
>>283177
Компилястер стоит ставить - оптимизация классная, spl тоже стоит по вышеизложенным причинам.

>серьёзные дядьки


Серьёзные дядьки названия регистров не путают и вообще, пишут на асме. Для быстрого старта рекомендую кокос. И тот сайт, ссылка на который несколькими постами выше.

Сам попробую АЦП запустить в течении недели
1365 283185
>>283164

>RM0090


Это не катит. У меня STM32F103C8T6 - курю UM1850

>И вообще, кинь весь код. Одна функция ничего не даёт.


Чертова спаморезка не даёт код выложить :-О
1366 283186
>>283177

>Так написал бы сразу, что с HAL, а то склаждывается впечатление, что ты совсем ничего не знаешь.


Да я практически ничего и не знаю, что касаемо STM32 - после AVR очень сложно.
1367 283193
>>283185

> Чертова спаморезка не даёт код выложить :-О


Гитхуб/пастебин/гугл код/любой другой
1368 283230
>>283193
Я лучше словами.
К TIM2 на CHANNEL3 я подключил кнопку.
По нажатию на кнопку попадаю в прерывание.
Это всё работает.
Как мне в прерывании, используя HAL, получить значение счётчика TIM2? Хочу знать сколько раз нажималась кнопка.
1369 283236
>>283230
Как то так
static TIM_HandleTypeDef s_TimerInstance = {

.Instance = TIM2

};

int timerValue = __HAL_TIM_GET_COUNTER(&s_TimerInstance);
1370 283244
>>283236
я по ходу туплю с непривычки.
TIM2. Тактирую от входа TIM2_ETR (pull_up, опускаю на землю кнопкой)
Должен от нажатия кнопки счётчик увеличиваться?
1371 283245
>>283244
запускаю его
HAL_TIM_Base_Start(&htim2);
1372 283264
>>283245
>>283230
и читаешь тики

int timerValue = __HAL_TIM_GET_COUNTER(&htim2);
Если будет ругаться пробуй без __ спереди
1373 283269
>>283264
>>283264

>и читаешь тики


За тики должны быть нажания кнопки. Нет?

>Если будет ругаться пробуй без __ спереди


Не, нормально.
Только не растёт счётчик от нажатий.
Понятно, что я могу настроить прерывания по паданию уровня и в нём увеличивать счётчик.
С этим я разобрался. Хочется считать импульсы таймером.
1374 283273
>>283269
Get counter - это получить время прошедшее с нажатия кнопки. Если хочешь считать нажатия, обьяви переменную и инкрементируй её во внешнем прерывании. И не мудохайся с таймерами.
1375 283283
>>283273
Постой. Откуда в счётчике взяться времения, если Clock Source это вход ETR2 c кнопкой?
1376 283287
>>283283
Если не кинешь код, я не смогу разобраться. Ты бы ещё пять инструкций асма скинул и сказал:"у меня не работает, помогите"
1377 283293
>>283287
Вот посмотри, пожалуйста.
https://yadi.sk/d/iWUb1QgB3J4jz9
1378 283296
>>283293

> 7 сегментов


> размер 6.4Мб


Нихуя ты накодил.
1379 283297
>>283296
Мосье сидит на модеме 14400?
1380 283299
>>283177
Хохо, наконец-то я догадался посмотреть регистры GPIO.

РЕГИСТРЫ ПЕРИФЕРИИ НЕ РАБОТАЮТ С ВЫКЛЮЧЕННЫМ ТАКТИРОВАНИЕМ.

Сегодня решил завести ЦАП, но не включил тактирование и думал, почему он не реагирует на запись. Потом посмотрел и точно, я в инициализации АЦП сначала выставляю аналоговый режим, а потом включаю порт A в RCC.
1381 283302
>>283297

> Мосье сидит на модеме 14400?


Нет. Просто 6Мб сорсов в архиве для контроллера это убер-дохуя. Хотя потом посмотрел, ты туда и CMSIS и HAL и Аллаха заархивировал. Мне правда глубоко похуй, я просто мимокрокодил и ничем тебе помочь не могу
1382 283306
>>283302
Я всю папку с Keil-овским проектом заархивировал. Ради чего мне из неё что-то вырезать? :-) Что бы архив был меньше?
1383 283317
>>283306

> Ради чего мне из неё что-то вырезать?


Нахуя мне рыть всю твою папку с проектом, чтобы найти код отвечающий за сраную кнопку?
Ты еще и кейл с кубом туда заархивируй. Или весь системный диск. Хуле, инторнеты сейчас быстрые.
1384 283323
>>283317
зря ты так агришься, у стм бардак в либах и версиях, я сам предпочитаю держать фиксированную копию SPL/HAL для каждого проекта отдельно, лучше уж один и тот же баг в их либе пофиксить отдельно в каждом проекте, чем следить за сохранением совместимости всех проектов с очередной микроправкой.
1385 283324
>>283317
зато проект можно открыть в Keil и спокойно начать работать, а не искать откуда скачать недостающее.
Если такие сложности у тебя - забей.
1386 283326
>>283323
Наверняка ты прав. Я пока не имею опыта оценить твои слова.
1387 283327
И всё-таки, как тактировать TIM2 от кнопки?
1388 283600
>>283327
В общем, тьфу на вас :-) Нужно было всего лишь вход подтянуть к питанию.
1389 283641
Ребят, помогите советом. Имею orange pi lite , хочу купить к нему дисплей с тачем. Присмотрел на али такой вариант :
https://ru.aliexpress.com/item/5-Inch-800-x-480-HDMI-TFT-LCD-Touch-Screen-For-Raspberry-PI-2-Model-B/32629828030.html
Опыт работы с orange pi и вообще с такого рода компьютерами нулевой. Будет ли этот дисплей работать? Если не , то посоветуйте какой-нибудь 5-дюймовый.
1390 283816
>>283641
Он подключается через HDMI , и я так понял что всё что через HDMI подключается - работает везде. Это ведь так? И тачскрин подключается отдельно как-то?
1391 284113
>>283641
>>283816
Дисплей этот помимо того, что работает от HDMI, ещё и на GPIO садится (питание и тач-видимо). Если распиновка оранж пи и распберри одинаковая - то должно работать.
Я с оранжпи не сталкивался, да и честно говоря не знаю, зачем говноклоны малинки вообще нужны.
1392 284341
Не особо понимаю, зачем нужен захват таймера? Ведь можно проще сделать:

Запустить таймер;
while (условие);
Остановить таймер
Считать значение счетчика. Готово

Всего 4 строчки кода вместо громоздких конструкций для захвата таймера, обработчиков прерываний и т.д.
1393 284367
>>284341
Если ты про режим, когда по внешнему сигналу значение счетчика копируется в другой регистр, основная причина в обеспечиваемой точности.
Можешь ли ты сказать, сколько тактов будут выполняться предложенные тобой операции?
А если в момент ожидания условия возникнет прерывание? Или ты собираешься еще и прерывания запрещать? Но тогда микроконтроллер не сможет выполнять другие задачи во время этого ожидания.
sage 1394 284375
>>284367

>Можешь ли ты сказать, сколько тактов будут выполняться предложенные тобой операции?


А не похуй на частоте 72мгц? Явно не больше микросекунды это будет
sage 1395 284376
>>284367

>Но тогда микроконтроллер не сможет выполнять другие задачи во время этого ожидания.


А нах какие-то еще задачи? микроконтроллер предназначен для выполнения одной задачи в 99% случаев
maxresdefault.jpg136 Кб, 1280x720
1396 284378
>>284375
>>284376
Ардуино параша протекла.
1397 284486
Существует ли способ, позволяющий DMA прибавлять значение к переменной вместо копирования? Хочу сделать фильтр среднее арифметическое для АЦП, а то при одиночных конверсиях показания крайне нестабильные. Сейчас единственным способом мне видится копирование значений в массив, потом их сложение и сдвиг вправо, но сложение 16 значений 86 тактов занимает, а все остальное прерывание 109.
1398 284490
>>284486
Насколько я знаю - нет. DMA просто копирует значение из регистра в память либо из памяти в память, ты даже не можешь тунелировать данные, чтоб через DMA с одного I2C на другой пересылать, только I2C - память - другой I2C
1399 284516
>>284490
Про периферию в даташите написано. Настроил, теперь надо как-то скорость увеличить. Continuous mode выполняется значительно быстрее, чем серия 8 одинаковых каналов, но в этом режиме срабатывает переполнение и данные не записываются.
1400 284525
>>284516
Поиграйся с burst режимом, хотя он нужен для передачи пакетов данных, а не для непрерывного считывания ацп, также ты можешь в прерывании обрабатывать ошибки в том числе overrun (возникает, если ацп конвертирует данные быстрее, чем их успевает считывать dma).
1401 284713
>>284525
Circular mode тут больше подходит, если я правильно понял его работу. Теперь у меня только одно прерывание по таймеру, где все выполняется, раньше еще от АЦП было. Только в режиме дебаггинга все значения за один шаг программы обновляются независимо от времени сэмиплирования, хотя счетчик тактов увеличивается на адкватные величины.
1402 284747
>>284713
Ну дебаггинг это дело такое, точки остановки зависят от того, что там навалял компилятор
1403 284817
Поясните за/против libopencm3.
1404 284920
>>284747
Компилируй с -Og
1405 284937
>>284920
-O0 -g ты имел в виду?
1406 284959
>>284817

дерьмо типа cmsys, только для stm32
1407 284967
Аноны, моему другу очень понравилось программировать на asm для avr. У нас в университете был семестр микроконтроллеров, и мой дружок так упоролся, что решил лабы всем девчонкам просто так парни сами почти все сделали

Через два месяца у него др. Я думаю, может, купить ему что-нибудь помощнее atmega16?

Проблема в том, что я решал лабы на си и отладчиком пояснял преподу, что да как работает. Выебнулся, да - потому что преподаватель хотел, чтобы я на асме писал.
Так вот, мой друг си не любит, и вообще от программирования не в восторге пытался заманить его изучать си шарп вместе с собой, да разные книжки по программированию читать. Несмотря на это, атмега с асмом ему понравилась.
Понравится ли ему что-нибудь на более производительном арме?

Хочу купить девборд, программатор и рассыпухи до кучи
1408 284968
>>284967
двачую сисярп. стм8 с другом попробуйте, обязательно на асме
1409 284982
>>284967
Дело в том, что на асме дальше лаб особо не уедешь. Он охуеет писать и потом отлавливать дохуища багов с утечками памяти в более менее серьезном приложении.
1410 284986
>>284968
Думаю, сразу stm32 взять. Мощности больше, цена та же. Единственное, чего бы хотел попросить - ссылку на годный diy-набор, потому что те, что я нашёл - лютая хуета. Думаю, нужно купить маленький oled-дисплей, динамики, диоды, рассыпуху (резисторы, конденсаторы, катушки), плату для травления
Хочется как можно меньше паять, потому что в наличии один здоровый батин паяльник

>>284982
Так это даже хорошо, может, насчёт писать код на С. Некрасиво решать за друга, но я хочу себе союзника
14952357498450.jpg1,6 Мб, 2592x1552
1411 284987
>>284986
STM32 ftw
1413 285006
>>285003
Да, можешь взять STM32F103C8T6 и заодно попроще 20-ногую STM32F030F4P6. Но я б еще взял STM32F030C8T6, мне он даже больше чем STM32F103 нравится, да нету USB и батарейного питания для внутренних часов (которые все равно отстают и надо дрочиться с регистром подстройки), зато в 2 раза больше таймеров, что для меня обычно важнее в большинстве задач.
1414 285020
>>284987
Я что-то не могу определить масштаб по фотке, самая мелкая размером с дип-40?
1415 285030
>>285020
Сама плата в правом верхнем углу? Да где-то такого размера лол, только чуть шире.
1416 285034
>>285030
Если плата чуть шире, то похоже дырки должны точно совпадать с дип40 пинами.
Блин, как это называется? Буду гуглить даташит. Эта штука точно подойдет в один девайс, прямо в сокет.
1417 285045
>>285034
Это называется 2.54мм
1418 285047
>>285045
Но вот вопрос как ее в колыбельку дип40 воткнуть и есть ли даташит
Bluepillpinout[1].gif142 Кб, 1082x759
1420 285085
>>285045
Ясно что 2.54, хм, расстояние между рядами должно быть кратно 2.54, так что 99% что подойдет.
845bfbdd3c9427e6f621a4bf39ce68b2.jpg213 Кб, 720x960
1421 285097
Armщикам по масти, вэбмакакам по пасти, господа. Приобрел китайскую ардуиноподобную платку с стм32 на борту, вроде даже подружил с ардуино ИДЕ, но хочется освоить IAR, нет ли гайда годного на эту тему (или не стоит вскрывать эту тему?), короч буду очень признателен.
1422 285107
>>285097
лучше юзай куб+кейл связочку
1423 285111
>>285107
Спасибо, антоша, ты избавил меня от страданий
1424 285135
>>285107
На генту перехожу, там кубик есть, а кейла нет. Как там с отладкой?
1425 285157
>>285135
я только из-за кейла и сижу под виндой, потому что 10 из 10 идешка с отладкой, навигацией по статусам регистров, просмотром памяти во время отладки и прочими ништяками, она даже лучше чем AtmelStudio для avr
1426 285160
>>285157
Первые 3 пикчи - кейл (2 и 3 в режиме отладки), я обвел интересные инструменты, но их там в несколько раз больше вплоть до софтверного осцилографа, который во время отладки будет рисовать че там на входе/выходе ножек.
4 пикча - STM Studio, отдельный интсрумент для отладки с визуализацией данных, очень удобно если надо проверить стабильность работы чего-нибуть (например как часто i2c отпадает или датчик отправляет неверный CRC, просто запускаешь, добавляешь переменную и через некоторое время смотришь график с провалами)
1427 285165
>>285160
Ты так пишешь, будто всего этого в других IDE нет. А все это, кроме разве что STM Studio, имеется даже в эклипсе в виде плагинов.

>>285135
Отладка под линуксом ничем не отличается от отладки под виндовсом при использовании gcc. Для GNU GDB есть разные gdb-сервера для разных отладчиков. OpenOCD - поддерживает много разных, и есть проприетарные st-util и J-Link GDB. И все они работают почти одинаково под разными операционными системами.
1428 285169
>>285165

>Ты так пишешь, будто всего этого в других IDE нет.


Скрины в студию (хотя бы просмотр состояния регистров и оперативной памяти)
1429 285176
>>285169
http://gnuarmeclipse.github.io/debug/peripheral-registers/

>оперативной памяти


Это вообще в любой IDE для С/С++ должно быть.
В любом случае, просмотром содержимого регистров приходится заниматься крайне редко. Это скорее начинающим более полезно.
1430 285184
>>285176
Ну тогда все ок.
1431 285420
Мне нужно подключить беспроводной PS2 геймпад к stm32f4discovery. Существует ли готовая библиотека?
1432 285597
>>284490
Тащемта, девайс-девайс есть в определенных мк
1433 285633
Так анон. Хочу вкатиться в эти ваши микроконтроллеры. Начать хочу с футсвича для компа. Типа кнопки, которые нажимаются ногой, но для компа как нажатия на клавиши.

http://www.ebay.com/itm/321569700934
Вот к этой хреновине нужен конвертер usb<->uart? Кроме этой платы, диодов и диодов, что еще нужно, чтоб начать пользоваться?
1434 285635
>>285633
Диодов и диодов XD
Резисторов и диодов
Быстрофикс
1435 285636
>>285633
Кроме платы диоды нужны
1436 285650
>>285636
Ещё ДИДЫ нужны!
1437 285698
>>285636
>>285650
Спасибо, двач.
1438 285702
>>285698
Да я не знаю, анон. Сам захожу в тред, потому что осенью закажу stm32
1439 285767
>>284959
Он не только для stm32 же. Ок, а чем заменить говнохал на стмках? Самому велик изобретать не охота, а хал - говно.
jPjZ7eDNaP4.jpg67 Кб, 463x463
1440 285768
>>285767

>а хал - говно.


Поясни плз. Мимо 2 года уже использую хал, некоторые девайсы на нем работают с нагрузками 220, управляют симисторами и т.д. Все это время никаких нареканий. Фо фан делал обработку изображения с камеры и типа слежение за объектом заданного цвета, работало как часы. Код писать на нем очень приятно, при этом не раз лазил в исходники хал, там все написано четко и красиво.
1441 285770
>>285768

>четко и красиво


По мне так нихуя не красиво и много какого-то лишнего говна внутри. Наличие поллинга в обработчиках прерываний -- это вообще пушка по-моему да и вообще именно обработчики прерываний мне там больше всего не нравятся. Да, с ним писать намного проще, потому что зачастую можно даже мануал не открывать на камень, но случись чего разобраться в этой куче будет тяжелее, чем в их старом spl, который тоже был не конфета.
Хер знает, насколько четко оно работает, но мне кажется, что любая более простая либа типа libopencm3 будет работать быстрее, и в ней будет проще ковыряться, если возникнут какие-то проблемы.
1442 285774
>>285770
Ниразу не видел поллинга в халовских функциях обработки прерываний, как минимум в таймерах, I2C, UART, SPI для последних версий F0 и F1 (в них больше всего ковырялся) их точно нет. Там просто набор проверок с выставлением флагов в регистры и вызовом __weak методов. Есть while в методах типа HAL_UART_Transmit, но они там и должны быть, потому что это не передача через прерывание или DMA. Про отладку я вообще молчу, достаточно взглянуть на метод и сразу понятно где ставить точки остановки и какие переменные мониторить, потому что нормальные названия + комментарии.
1443 285775
>>285770
Всё правильно говоришь.
Также хал - это оверхед (тяжеловесная ебола, всё-таки); это высокая нижняя граница сложности (weak-callback меня не пугают, по сути те же irq-handler, но они не нужны в простейших задачах, а хал бывает только с ними); это баги (sdio под STM32L правил весьма основательно); это уродливый DSL (микс из __MACROSOFF(hyoba) и HAL_YOBA_Off(&hyoba)); ну много ещё вопросов к халу, его архитектуре и документации.
Но вот для больших проектов с FreeRTOS, USB-CDC, SDIO+FAT32, RMII+LwIP и т.п. я бы настоятельно рекомендовал именно HAL и именно в связке с Cube. Охуительно упрощает.
1444 285776
>>285774
Еще забыл упомянуть главную фишку в виде возможности легкого переноса кода с одного ядра на другое, пару раз сталкивался, когда писал что-то на F0, а потом переносил на F1 из-за не хватки периферии или памяти, перенос занимал от силы 5-10 минут.
1445 285777
>>285774

>Там просто набор проверок с выставлением флагов в регистры


Сейчас работаю с f7, там в SPI в цикле проверяются флаги, по-моему это не норм. По крайней мере в железе там был косяк: в режиме слейва как будто в какой-то момент клок проебывался. Данные принимались, но флаг bsy в периферии не сбрасывался, он у меня так и оставался в этом цикле крутиться. Колбэк по tx/rx complete предполагает конец передачи, по факту же он вываливается туда по мере опустошения fifo, то есть, передача еще идёт, и отключать периферию нельзя.
Да, насчет комментариев не могу поспорить, но есть слабо описанные
места, наприме, usb device. Ковырять его тяжко. С другой стороны, писать всё это самому было бы гораздо хуже.
>>285776
С точки зрения переноса хал действительно очень крут, тут не поспоришь.
>>285775

>Охуительно упрощает.


Упрощает, но вопрос в том насколько он будет медленнее работать, чем что-нибудь куда более лёгкое? Есть ли вообще какие-то альтернативы, кроме libopencm3 и старого spl?
Короче, на работе встал вопрос ребром на эту тему. Я не хочу изобретать велик и не считаю, что монструозность хала сильно снизит производительность, хоть он мне и не очень нравится. С дургой стороны альтернативы две: писать самому и убить кучу времени на отладку, либо взять что-то лёгкое и низкоуровневое типа libopencm3, но я и другие разработчики в отделе никогда ей не пользовались, и если накидаю говна в проект, то вряд ли меня за это поблагодарят. Вот я и думаю, что делать.
1446 285778
>>285777

>Сейчас работаю с f7


У меня похожие проблемы были пару лет назад с F4 (я тогда на нем делал обработку изображения с камеры и были проблемы с DCMI, пришлось поковыряться и поправить ручками), тут ничего не поделаешь баги в любой области присутствуют (посмотри на тот же ESP32, помимо багов в железе, часть которых исправлена в новой ревизии, присутствуют еще и в их SDK + сам SDK не полный, как и мануал на периферию, который допиливают на коленке). Но их в любом случае правят, хал для F4 который был до какого-то времени с багами стал все-таки стабильным, тоже самое будет и с F7 со временем.
1447 285779
>>285777

>вопрос в том насколько он будет медленнее работать


По-моему такие вот нагруженные периферией проекты - это всяко сплошные DMA, где всех вычислений - парсинг да простая логика, т.е. без какого-то жёсткого реалтайма, потому и хал допустим. При этом делал однажды проект USB-осциллограф с параллельным логированием на microSD с FAT и россыпью медленных датчиков на i2c и spi, так вот безотносительно производительности я просто не представляю, как бы я заебался без куба, скорее всего просто даже не взялся бы начинать. Ну а куб - это только хал.
другое дело, что такие вещи надо на малиноподобной хуйне делать, а не стм32
1448 285780
>>285779
DMA действительно упрощает работу в плане быстроты чтения данных, а если надо кучу всякого говна слепить в единое целое, то в любом случае нужна RTOS. Ну и не стоит забывать, что даже самый медленный STM32 это 48МГц, что в 3 раза быстрее среднестатистической Атмеги с 16МГц, на таких частотах можно уступить парой циклов в пользу быстроты и простоты написания кода.
1449 285781
>>285778

>их в любом случае правят


Вот поясни, как с этим быть вообще? Запилил я проект на хале, нашёл там пару багов, пофиксил. Стм выпустили новую версию, где что-то пофиксено. Мне что в такой ситуации делать? Обновляться или нет?
1450 285783
>>285781
Я б обновил, это ж просто уровень абстракции, перегенерил проект в кубе, скомпилировал, если надо переименовал функции и все работает. Но при этом я б не гнался за новыми версиями, если все норм работает на старой, они в основном для новых МК типа F7 и могут содержать потенциальные баги, после "оптимизации" общих методов, для их совместимости со всеми ядрами.
1451 285784
>>285783
Вот в том-то и вопрос; на переименования похуям, а вот не нахватаешься ли новых багов и не откатишь ли собственные изменения не понять, так что вынь да положь регрессионное тестирование. Как было просто при коммунизме SPL.
1452 285786
>>285784
Я сейчас сижу на кубе 4.19 (4.20 был с багом инициализации чего-то там, который поправили в 4.21, но мне и на старом норм) и последними FW для F0 и F1, которые последний раз обновлялись в конце и начале 2016 соответственно. Пока не сталкивался вообще ни с какими багами, работал со всей периферией, кроме разве что CAN.
1453 285787
>>285779
DMA везде используется, где только можно, это даже не обсуждалось. Жесткого реалтайма в проекте вроде как нет, поэтому мне кажется, что хал там применим будет. Мне вообще кажется, что при использовании freertos с его переключениями и прочей малафьей пытаться угнаться за тактами убрав хал -- бессмыслица. Да и вообще стоит ли пытаться выиграть 10 строк кода на проце с частотой 216 МГц?
Ладно, спасибо, аноны, буду пытаться настаивать на использовании хала.
>>285784
Можно посмотреть на предмет исправления известных тебе багов. Если ничего не изменилось, то и смысла обновляться может не быть. Так или иначе когда периферию поднимаешь, пишешь ведь какие-то тесты, чтобы понять, что всё верно работает. Можно в отдельной ветке обновить либы, погонять тесты, если ничего не отвалилось еще помимо старого, то оставить, в противном случае просто забить хер до выхода следующей версии. Но просто так херачить новую либу в проект не надо, я как-то раз много времени потратил на поиск и исправление косяка в i2c. А в старой все как часы работало.
1454 285788
>>285777

>либо взять что-то лёгкое и низкоуровневое


Можешь еще посмотреть в сторону этой штуки: STM32Cube Low-Layer Application Program Interface (LL API)

http://www.st.com/content/st_com/en/about/media-center/press-item.html/n3837.html

Я правда ей никогда не пользовался и ничего не могу сказать, но она позиционируется как облегченная версия хала для высокой производительности, что-то среднее между регистродрочем и абстракцией. Также его можно использовать вместе с хал.
1455 285823
>>285767
dosikus, залогинься!
1456 286170
Котаны, помогите. Решил слезть с блядоардуино.
Заказал у пиздогазых пикрелейтеды.
Программатор именно с такой распиновкой. Собстенно, подключил 2, 4, 8 и 8-й выходы программатора на IO, GND, CLK и 3,3 выходы платки соответственно.
В кубике выбрал STM32F103C8T6. PC13 - output. Собрал в кокосе стандартный блинк. Все компилится. Заливаю прошивку - и нихуя! Причем, пробовал заливать и через STM32 ST-LINK Utility. Что-то туда заливается, т.к. если в ST-LINK Utility слелать Erase а потом залить кокосом - то там появляется что-то. Кодяра лупа ниже. Что я делаю не так?

while (1)
{
int i;

for (i=0; i<3; i++){
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
}

HAL_Delay(1000);

for (i=0; i<5; i++){
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(300);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
}
}
image.png169 Кб, 1920x1040
1457 286174
>>286170
Дополню конфигурацией тактирования и тем фактом, что обе перемычке на плате находятся в положении, как на пике в предыдущем посте.
image.png120 Кб, 1920x1040
1458 286182
>>286170
>>286174
А вот это работает. Выходит, куб какую-то хуйню генерит?
1459 286183
>>286182
Хз, пользуюсь кейлом, под него все норм генерит.
1460 286214
>>286183
Аноний, спасибо, в кейл все гуд - завелось с полтычка. Алсо, правильно ли я понимаю, что
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
устанавливает пин не в HIGH, а в то значение, которое было сконфигурено в кубике в GPIO Output Level?
1461 286215
>>286214
нет, SET устанавливает в HIGH, RESET в LOW, а то что ты в кубе установил, это каким оно будет после инициализации GPIO.
1462 286789
>>187094
Пришёл сюда узнать об этом. Об AT91, досталась парочка, посмотрел у китайцев цена минимум за шт. 250, решил поехать мозги. Смотрел смотрел - Flash и еепрома нуль, как и куда прошивать его?
1463 286790
>>187094
Пришёл сюда узнать об этом. Об AT91, досталась парочка, посмотрел у китайцев цена минимум за шт. 250, решил поехать мозги. Смотрел смотрел - Flash и еепрома нуль, как и куда прошивать его?
1464 286791
Соррян, два раза запилил, и
"Решил поебать"*
1465 286792
>>187056 (OP)
Анон, перекатываюсь с пердуино на арм и охуел от его возможностей.

Можно советов по книгам. Лучше на финоугрском конечно, но англ IFT.
1466 286807
1467 286810
>>286792
По-гугли писателя Ю.
1468 286819
>>286810

>писателя Ю


Это шутка? Просто ^поебались^ Ю и все?
1469 286820
>>286810
ЯДРО CORTEX-МЗ КОМПАНИИ ARM. ПОЛНОЕ РУКОВОДСТВО. ДЖОЗЕФ Ю. 2012 Г

Вот что нашел.
1470 286823
>>286820
А ссылку чо? Зажал?
1471 286825
>>286823
Я пока и не нашел.
Screenshot from 2017-06-18 14-22-42.png762 Кб, 1920x1080
1472 286827
>>286825
Нада?
1473 286835
1474 286875
>>286827
Кидай сюда всю папку
1475 286878
>>286875
Двачну. Анону книг зажал!
1476 286889
ептыть неужели так сложна
http://www.twirpx.com/library/comp/microcontrollers/arm/
1477 286978
Помогите советом. Хочу подключить беспроводной геймпад Logitech F710 к stm32f4discovery. Нужно обрабатывать нажатия всех кнопок и движения стиков. При подключении к компьютеру геймпад определяется как HID-совместимый игровой контроллер. Правильно ли я понял, что мне нужно настроить на stm32-плате USB host? Как потом отследить нажатия кнопок? Где можно про это почитать, по какому запросу искать? Спасибо!
1478 286997
Малины и прочие оранж пи это сюда?
1480 287006
Анон, поясни нуфагу за CMSIS. Помигал светодиодом, сначала с CMSIS, потом с StdPeriph. Пишу в Keil. Так вот, лучше писать на чистом CMSIS или как?
1481 287044
>>287006
DI HALT хорошо пояснил.

Для обучения CMSIS онли. Потом SPL, если нужно будет что то сейчас и немедленно.

Зачем? В SPL куча косяков, которые не зная CMSIS и не разбираясь регистрах ты не найдешь.

Мимонюфак.
1482 287064
>>287044
Зойчем spl если есть ll(HAL)?
1483 287077
>>286997
Кстати почему не? Тот же линупс поставить как? Как свой собрать для платки
1484 287117
Двач, поясни плиз. Для инициализации ножек своей дискавери юзаю SPL с их ебучими структурами и прочим. так вот, понадобилось мне прихуярить 1-wire свой, немного отличающийся от далласа (DHT22). Так вот, насколько это всё хуёво и насколько проще и быстрее это с CMSIS? (т.е. мне недо быстро посадить ножку на минус, а через микросекунду уже настроить её на вход). ардуинопараша вроде mbed не катит. Ньюфаг, с ардуино не знаком.
1485 287122
>>287117
Поидее ты можешь настроить ножку open drain и включить подтяжку вверх/вниз, чтоб не переключать ее режим работы, тогда можно по ней и передавать данные и читать.
скрин.png33 Кб, 1139x343
1486 287164
>>187056 (OP)
Вопрос к знатокам. С помощью куба забахал проект с lwip и freertos, прописал пути в эклипсе, начинаю компилировать. вылезает пикрил. если приглядеться, то можно увидеть, что в описании ошибки указан путь STM32F4xx_HAL_Diver. Понятное дело, что он неправильный, но почему то поиск объектного файла происходит по нему. создается нормальный объектный файл по нормальному пути. кто и почему коверкает мои пути? у меня такой искаженный путь нигде не фигурирует
1487 287222
>>187056 (OP)
Ананасы поясните как прописать на keil 5 malloc. stdlib.h какой надо инклудить?

Если с примером так вообще нихуя дам.
1488 287630
>>287597
НАЧАЛЬНИК! Пораша протекла. Иди залатывай нахуй, я с говном в одной камере сидеть не будут!.
1489 288624
Блэть, парни, посоветуйте нормальный курс по проганью STM32.
Какие не находил статьи - нигде адекватно не расписывают что к чему. Тупо показывают, как надо сделать, чтоб в такой IDE с таким проектом плата замигала лампочкой.
Как? Почему? Что происходит? По минимуму объяснений. А приходится срочно вкатываться в MCU.
Что почитать-то?
1490 288632
>>288624
Если бы ты осилил учебник по Си, у тебя бы осталось два вопроса: какой кнопкой компилировать и где документация на микроконтроллер.
Те статьи которые ты находил, как раз про то "какой кнопкой компилировать".
1491 288633
>>288632

>осилил учебник по Си


Безусловно, в каждом учебнике по си описаны тонкости конфигурации МК STM.
1492 288638
>>288633
в даташитах все расписано тащем то. Как че конфигурировать, а если не можешь читать даташиты на английском то надо заходить с другого конца к проблеме ииииииии учить английский.
1493 288640
>>288638
Не, с даташитами как раз проблем нет.
Просто концепция в целом не осознаётся на 100%.
Сложно сформулировать в чём именно мне не хватает знаний, но подошедших уроков найти не смог.
3420390big1.jpg63 Кб, 202x300
1494 288641
>>288640
>>288633
Тогда перед учебником по Си прочти эту книгу для школьников.

>МК STM


Я бы не сказал, что STM в чем-то существенно отличаются от других микроконтроллеров.
1495 288642
>>288640
P.S. >>288641
Хорошо. Спрошу иначе.
Есть пример программирования контроллера с момента создания проекта до момента прошивки с более/менее полным пояснением каждого действия?
1496 288646
>>288642
Смотря что понимать под более/менее полным пояснением.
В книге >>288641 объясняется что такое процессор, память, как происходит управление периферией. Остается только изучить Си.
Не зная что ты осилил, трудно советовать что-то конкретное. Например, что тебе не понятно в примере https://github.com/kcuzner/stm32f103c8-blink/blob/master/src/main.c ?
1497 288661
>>288624
Если имел опыт с AVR, то никаких проблем не должно воникнуть, вся периферия работает так же (дрыганье ножками, прерывания, АЦП, таймеры, ШИМ, ...), только их больше и у некоторых появился расширенный функционал (передача данных черех DMA, интерфейсы для памяти и дисплеев, 2-х канальный АЦП со всякими плюшками, применимыми для DSP и т.д.).

Прогать можно используя CMSIS, либо HAL (SPL устарел и не поддерживается на новых камнях). Я предпочитаю HAL, так как с ним быстрее генерить пустой проект с инициализированной периферией и есть возможность быстро перенести проект с одного камня на другой, остается лишь писать сишный код. Подавляющее большинство примеров написаны с использованием SPL либо HAL, что упрощает поиск инфы, если что-то не получается.

Вобщем не вижу никаких проблем во вкатывании, если имел опыт работы с 8-битными МК, другое дело вкатываться в контроллеры типа ESP32, который китайцы поленились сделать на ядре Cortex, а даташит ограничивается лишь общим описанием того как работает та или иная периферия. Хорошо хоть для SDK состряпали доки.
1498 288861
>>288661
Не, до этого не прогал микросхем.
Впрочем, наткнулся на канал Sappise на ютубе - он хорошо разъясняет.
1499 288863
>>288661
Я правильно понимаю, что CMSIS - это менее абстрактная и более низкоуровневая библиотека, а SPL и HAL - аналоги по этому критерию и более высокоуровневые, чем CMSIS?
Мне сейчас самому надо определиться на чём начинать.
1500 288878
>>288863
В первом приближении CMSIS - это описание регистров периферии. Другими словами CMSIS - это прямой доступ к регистрам периферии. Соответственно, если ты осилил Си и документацию микроконтроллера, ты автоматически осилил CMSIS.
Если ты не смог осилить Си и/или документацию микроконтроллера, у тебя получится освоить HAL только на уровне копипаста и прочего ардуинства.

В любом случае для начала тебе требуется понять как процессор взаимодействует со своей памятью и периферией, а это доступным языком изложено в >>288641
После этого тебе будет необходимо осилить Си. Причем при программировании микроконтроллеров не используются какие-либо особенности языка Си, не изложенные в учебниках. Рекомендую один из этих двух учебников:
1) Керниган Б.В. Язык программирования С.
2) Подбельский В.В. Программирование на языке Си.
Если бы ты не поленился и хотя бы бегло прочел >>288641 , а потом прорешал бы примеры из учебника по Си, то множество всяких глупых вопросов наверняка бы не возникало.
1501 288879
>>288878
Ок, спасибо.
КМК архитектуру на уровне юзера я понимаю, т.е. когда смотрю примеры на CMSIS вопросов по работе регистрами не возникает.
Скажем так: основным вопросом было то, что я не знал, с какой стороны взяться за изучение.
Сейчас, когда худо-бедно начал, вопросов меньше.
1502 288888
>>288861
Ну тогда придется поднапрячься если захочешь писать с CMSIS, проще б было начать с 8-битных МК AVR типа Atmega16, у них неплохой набор периферии, можно дебажить и смотреть что происходит в регистрах, если есть необходимость разобраться как что-работает. У STM32 референс мануалы на 1000+ страниц, сразу охуеваешь от количества информации. У AVR мануалы в 3-4 раза меньше, по ним легко прогать и изучать как работают всякие базовые штуки типа таймеров, ШИМ, АЦП и т.д.
1503 288906
>>288888
Как недавно перебравшийся с AVR, скажу, понятного разбора архитектуры ARM сейчас по горло. Все таки перелезая с архаичных avr происходят некоторые разрывы шаблона.
1504 288907
>>288879

>с какой стороны взяться за изучение



1) Основ электроники, хотя бы до транзистора.
2) Основ цифры
3) Общей архитектуры МК
4) Покупки макетной платы
5) Конкретной архитектуры вместе с ассемблером.
6) СИ
А дальше сам уже будешь понимать. Главное не лезь в пердуины.
1505 288938
>>288907
3, 5 - не нужно.
1, 2 - достаточно знать что есть цифровой и аналоговый сигнал + зачем нужны резисторы, транзисторы и конденсаторы.
4, 6 - пожалуй хватило бы только этого.

Практическое знание ассемблера нахуй не нужно, только зря потратишь время на изучение этих ебучих микрокоманд, чтоб забыть их через пару месяцев. Архитектура МК тоже не несет никакой пользы, ну знаешь ты что там есть блок памяти какого-то размера, мультиплексоры и еще всякая хуита, но при написании программ ты даже не вспомнишь об этом.

Интересно кем работают или что делают те, кто советует дрочить архитектуру МК и ассемблер, наверное уженестуденты каких-ниубть тех. вузов, в которых им забивали мозги устаревшим дерьмом
1506 288940
>>288907

>Общей архитектуры МК


Что об этом почитать?
1507 288941
>>187056 (OP)
Хочу вкатиться в ARM, у меня есть плата STM32VL, но я не умею пользоваться даташитом. Посоветуйте статей, где бы параллельно с написанием кода велась работа с даташитом типа "А эта константа имеет такое значение, потому что в даташите в такой-то главе такой-то порт расположен по такому-то адресу".
1508 288966
Столкнулся с тем, что трЪ-stm'щики кроют хуями HAL и SPL.
Понятно, что каждый, кто прохавал проганье с регистров, получает +5 к ЧСВ, но всё же есть конструктивные аргументы в пользу отказа от библиотек?
Видел комменты, мол, библиотеки ограничивают гибкость работы. Но в чём заключается это ограничение понять не могу.
1509 288967
>>288941
Ну вот тута немного этого есть:
https://youtu.be/7CotisrQvsc
1510 288995
>>288966
HAL по сути надстройка над CMSIS, которая наоборот добавляет гибкости, потому что ты можешь претаскивать куски кода с одного камня на другой, не тратя кучу времени на переписываенрие CMSIS функций к КАЖДОЙ инициализации, вызову, обработке и т.д. Хз почему все так рьяно дрочат на CMSIS, ведь он не дает никаких преимуществ, только гемор с запоминанием важных кусков кода и постоянным лазанием в референс мануал.
1511 289002
>>288995
А по моему разницы по трудозатратам почти нет, потому что обычно код инициализации периферии намного меньше остального кода программы.

>>288938

>достаточно знать что есть цифровой и аналоговый сигнал + зачем нужны резисторы, транзисторы и конденсаторы.


Для программирования микроконтроллеров самих по себе, даже это не нужно. Но для разработки более-менее сложных устройств с микроконтроллерами этого не хватит.

>Практическое знание ассемблера нахуй не нужно


С этим скорее соглашусь. Но некоторые подробности будет не лишним знать, например наличие/отсутствие аппаратного умножения, деления и прочего.

>Архитектура МК тоже не несет никакой пользы


Как минимум, без поверхностного понимания не получится понять откуда берется выравнивание данных. Знания о том как работают всякие процессоры помогут при программировании ПЛИС.

>дрочить архитектуру МК и ассемблер


Достаточно для расширения кругозора почитать >>288641 или что-нибудь подобное.
1337.png907 Кб, 593x897
1512 289009
>>289002

>Для программирования микроконтроллеров самих по себе, даже это не нужно.


Отчасти да, но часто приходится между МК и подключаемым девайсом лепить всякие элементы: транзисторы для управления 12/24В нагрузкой, резисторы и конденсаторы на I2C шину, делитель для АЦП и т.д. по мелочи.

Многое зависит от того, какими навыками обладает вкатывальщик, изучал он радиоэлектронику или программирование в универе:

>Но некоторые подробности будет не лишним знать


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

>помогут при программировании ПЛИС


Это уже совсем другая категория разработки устройств, чаще крупный проект богатого заказчика, для вкатывания и разработки чего-то своего МК получше выглядят. А поверхностное понимание, при необходимости, можно получить, прочитав за вечер пару статей по устройству и работе тех же AVR, которые очень хорошо разжеваны. На самом деле достаточно знать как работают регистры, оба типа памяти, тактирование (считай таймеры, шим, вочдоги) и аналоговое преобразование, все остальное это цифровые интерфейсы "высокого уровня", для которых нужно больше знать программирование, чем работу МК.

>почитать >>288641


Я открыл в середине и осили только пару глав, не могу в эти сокращения на русском, в англоязычной документации по МК как-то все понятнее и привычнее.

Считаю что лучше все-таки поиграться для начала с AVR, по статьям в инете либо по книге пикрилейтед. Я больше предпочитаю статьи, потому что изучал так пхп, питон, руби и после 6 лет работы, когда все это заебало так же изучал Си и AVR а затем перекатился на STM32, никаких проблем во время их изучения не возникало, особенно если у тебя под рукой есть отладчик, который при любых непонятках позволяет во всем разобраться самому.
1513 289010
>>289002

> код инициализации периферии намного меньше остального кода программы


Дело не только в инициализации, но и во всех обращениях к портам, регистрам таймеров, шинам данных, оработках прерываний и тому подобного. Используя HAL их не надо искать и переписывать по всему проекту, потому что написанный код будет совместим с любым другим камнем STM32, можно написать проект на STM32F1 и потом за 5-10 минут перенести его весь или частично на STM32F7.
1514 289017
>>288966
Конкретно с HAL/SPL проблема одна единственная: их писали рукожопые индусы. Но, поскольку писать на чистом CMSIS что-то сложнее морганияя светодиодами это тот ещё чемпионат по фигурному зигхайлю, то все плюются но пользуются, дорабатывая напильником.

P.S. Ну или не пользуются, а берут какой-нибудь opencm3 или HAL от ChibiOS.
1515 289019
>>289017
HAL от STM очень даже ничего, как минимум проверял абсолютно всю периферию на F0 и F1 + многое на F4 - ни одной проблемы не возникало.
1516 289138
>>288938

>4, 6 - пожалуй хватило бы только этого.


Для помограть диодом да.

1, 2 - достаточно знать что есть цифровой и аналоговый сигнал + зачем нужны резисторы, транзисторы и конденсаторы.

Диоды, стабилитроны, тиристоры, индуктивности....
А так же знать как они работают, иначе, даже сраный силовой ключ не сделаешь.

>3, 5 - не нужно.


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

>>288940
Просто изучить архитектуру любого попсового контроллера.

>>288966

> кто прохавал проганье с регистров



Что там прохавывать то?
1517 290696
Кто-нибудь использовал датчики пыли Plantower PMS5003 и PMS5007 а так же их 2-х канальный NDIR CO2 датчик DS-CO2-20?
1518 292006
смотрите, есть такая штука на плате старого дивидюка mt8105ee arm не могу никакой документации по ней нарыть. что это?
1519 292020
>>290696
3003 было дело.
1520 292214
>>292006

> что это?


Медиатековский мультимедийный процессор.
1521 292320
>>292214
с ним можно что-нибудь сварганить? даташит существует в открытом доступе?
1522 292382
>>292320

> в открытом доступе


DA TY OHUEL SHTOLE?
1523 292411
>>292382
шо, не? я просто из деревни
1524 292413
Поясните про все эти ARM'ы, SoCи, стоящие в смартфонах, роутерах и всем таком.
Я правильно понимаю, что практически это как бы аналоги десктопных камней от интел/амд? Т.е. вокруг камня собирается базовый набор периферии (озу-пзу-дисплей-управление), в камень заливается типовой загрузчик, который грузит с флешки, на которую заливается некий базовый дистрибутив линукса в качестве ОС, который впоследствии допиливается доп. софтом и драйверами.
Однако все же не могу найти инфы, как такое смахараить с нуля? То есть собрать некую минимальную платформу, на которой, грубо говоря, запустить тетрис. Или же продаваемые малинки и их аналоги - это и есть такие минимальные платформы?
1525 292435
>>292413
Это уже не минимальные платформы, а вполне себе самостоятельные
1526 292480
есть у кого книжка Joseph Yiu - The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors?
1527 292500
>>292480

> The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors


https://www.eecs.umich.edu/courses/eecs373/labs/refs/M3 Guide.pdf
1528 292592
>>292500
спасибо конечно, но я просил про M4.
1529 292594
>>292592
На рутрекере тогда
1530 292597
>>292594
Ок, посмотрю там.
image.png9 Кб, 465x110
1531 292602
Господа хорошие, не обоссывайте. Вкатываюсь в ARM, купил себе плату NUCLEO-F446RE. Нагенерировал под себя инициализацию в CUBE и попробовал отправить в уарт массив чисел. Ожидаемо соснул хуйца, так как подключаю переходник USB-UART и в терминале мне ничего не приходит. Почему?
1532 292604
>>292597
Как ты вообще умудряешься по клавишам попадать, если книгу найти и скачать не можешь?
М3М4.jpg318 Кб, 1600x900
1533 292617
>>292592
Отсосешь?
1534 292618
>>292602

> Почему?


Тому що ты аутист и не можешь грамотно изложить чего ты там нагенерировал?
1535 292619
>>292618
вот и все. предыдущий пикрил - собственно код, который я туда добавил. больше ничего. ловить пытаюсь преобразователем USB-UART на микросхеме pl2303. пользуюсь терминалом с остроумным названием Terminal. драйверы все в порядке, прошивается нормально (дополнительно после отправки дрыгал светодиодом - он благополучно дрыгался). терминал работал нормально (подключал SIM800L). я уже не знаю на что грешить.
1536 292635
>>292617
Ладно. Сжалюсь над Антоном. https://yadi.sk/i/4VupqI5w3M7e5h
1537 292638
>>292604
Он примитивист. Кайфует от двачгугла.
Снимок.PNG319 Кб, 713x215
1538 292867
Аноны, с чего начать изучение STM? Двигать байты в асме? Дрючить CMSIS? SPL? HAL? Что вообще это такое? За что ухватиться?
image.png226 Кб, 568x621
1539 292868
Алсо как вообще быстро стартануть на этих МК?
1540 292872
>>292867

> Двигать байты в асме? Дрючить CMSIS? SPL? HAL?


Да с того к чему душенька больше лежит.
image.png85 Кб, 748x640
1541 292884
>>292872
Условно - есть задача сделать достаточно сложный девайс. Надо сделать это сейчас с перспективой дальнейшей работы с STM32. Посмотрел на HAL и огорчился - проинициализировал все в Cube, написал прошивку - не влезло в контроллер. Тыкался в SPL и не понял толком - поддерживается ли он до сих пор или ST занимается сейчас только HAL? CMSIS - вообще не догнал как с ним работать, а нормальных обучалок не нашел. Во все вникал только читая сами либы, а это долго. Вопрос в том, есть ли какое-нибудь развернутое руководство к действию?
1542 292911
>>292884
Дрочи arduinu
1543 292913
>>292884

> не влезло в контроллер


Как бы у ST есть контроллеры с 2Мб на борту. Может тебе призадуматься об использовании малины/апельсины для таких йоба-проектов?
image.png286 Кб, 900x506
1544 292919
>>292913
Больше вопросов вызывают библиотеки HAL, подключение которых по моему мнению раздувает объем прошивки. Плюс надо уместиться в минимальное пространство и минимальное потребление. Вдобавок я не понимаю как HAL работает, а читать код и комментарии к нему дело неблагодарное. User manual на самом деле догадался искать нашел только сейчас, но там, вроде только описание структур и функций, а не то, как оно работает.
1545 292924
>>292919

>библиотеки HAL, подключение которых по моему мнению раздувает объем прошивки


Думаю при включении оптимизации компилятора всё будет неплохо.
>>292884

>Вопрос в том, есть ли какое-нибудь развернутое руководство к действию?


Я не видел.
Скажи, хоть, какой контроллер. У тебя каша в голове. SPL и HAL -- это ПО одного уровня. Мне HAL нравится меньше, ибо частенько работает с указателями и достаточно громоздкий, однако при ужимании прошивки и SPL тоже требует частичного переписывания, по моему мнению, но значительно меньшего.
CMSIS -- это приблуда от ядра Cortex (Cortex Microcontroller Software Interface Standard), она сама по себе SPL и HAL не заменяет. CMSIS присутствует в проектах как с SPL, так и с HAL (после куба).
Задавай вопросы, постараюсь помочь, мимо инженер-программист-электронщик 4 года в эмбэде.
1546 292925
>>292919

>читать код и комментарии к нему дело неблагодарное


Алсо, ты не поверишь, но в эмбэде тебе не только читать код и комментарии приходится, но ещё и понимать как железо работает. Иногда индусы херню пишут в HAL-е, например... Да и разрабы камня тоже часто упускают важные моменты в документации по периферии, так что приходится пробовать опытным путём с использованием осциллографа (хотя сегодня то я понимаю, что можно было и без него, на голом камне).
Так что если ты хочешь положится на софт, тебе не в эмбэд надо...
>>292924-кун
1547 292928
>>292884

>CMSIS - вообще не догнал как с ним работать


Тогда тебе для начала необходимо ознакомиться с >>288641 или чем-то подобным, даже если будешь использовать высокоуровневые библиотеки.
image.png305 Кб, 512x768
1548 292936
>>292924

>У тебя каша в голове.


Ты не представляешь насколько ты прав. Подскажи литературу, может блоги лол, сколько ни смотрел - дилетанты одни их пишут чтобы степ-бай-степ раскурить что к чему.
Вообще для чего нужен и нужен ли CMSIS и можно ли обойтись без него?
1549 292937
>>292936

>Вообще для чего нужен и нужен ли CMSIS и можно ли обойтись без него?


Это база, применимо к CMSIS для STM32 и любых ARM контроллеров. Заморачиваться не стоит, ибо один хуй придётся, но лучше применительно на практике. Может и не придётся. Ребята, которые приходят в эмбэд, либо приживаются, либо нахуй идут...
Литературы не подскажу, ибо сам начал работать с IAR Embedded Workbench for ARM. Пробовал всякие Atollic True Studio, не впечатлило. В любом случае, тебе надо понимать, как работает железо, иначе никак. Я думал, что за меня всё сделали, пользуйся и не бухти, но хер там плавал... Если ангельский не разумеешь -- вон их профессии, проверено. Напарник меня устраивал на нынешнюю работу, сам по пизде пошёл, ибо не разумел ангельского. А я читаю маны как сказки детям на ночь, и всё разумею. Увы, нужна квалификация. Но, чем смогу -- помогу. Задавай вопросы, если чё...
1550 292938
>>292936

>Вообще для чего нужен и нужен ли CMSIS и можно ли обойтись без него?


Извини, я тебе не ответил. Не обязательно нужен, но рано или поздно ты на это выйдешь.
1551 292939
>>292936
Почему игнорируешь >>292928 ? В этой книге рассказывается о том что такое процессор и как он взаимодействует с периферией. Рассказывается доступно, для школьников. После прочтения этой книги вопрос "что такое CMSIS?" может возникнуть только при нулевых знаниях Си.
1552 292970
>>292939
Курс ОргЭВМ в ВУЗе выл потому что.
1553 292971

>был.


быстрофикс
1554 293001
Программирование STM8 как-то кардинально отличается от программирования STM32?
1555 293006
>>292970
Значит либо там ничего не рассказывали, либо ты все прослушал, либо ты не знаешь Си. Иначе это:

>CMSIS - вообще не догнал как с ним работать


никак не объяснить, т.к. CMSIS это всего лишь прописанные адреса регистров периферии (в первом приближении).
Поэтому можно подумать что ты не понимаешь как ядро взаимодействует с периферией или не знаешь Си.

>>293001
Если программировать на Си, то все различия в программировании любых микроконтроллеров сводятся практически только к разной периферии. А периферия у STM8 и STM32 похожая.
1556 293105
Аноны, какие есть варианты с 24-х битным АЦП? Реально в ~5к уложиться?
1557 293107
>>293105
Например есть MAX11202 SPI, 24 разряда, 120 Гц, в розницу будет стоить около 300 рублей.
1558 293112
>>292919

>раздувает объем прошивки.


нет. в выходной бинарь включается только то что используется в твоем коде.
1559 293228
>>293107
а если надо 5ГГц?
1560 293231
>>293228

> 5ГГц


> АЦП


> 24 разряда


Какую там частоту выборки нужно? Вы ебанулись тут совсем?
beg.jpg90 Кб, 772x636
1561 293233
>>293231

потому что нужно быстрее блять, ещё быстрее
1562 293241
Ребятки, у кого какой опыт в скриптовании голых контроллеров типа православного stm32f103c8t6? Т.е. задача ясная: есть девайс с хорошо определённым "железным" окружением, но блядски плавающей "логикой", ну не переделывать же ему прошивку постоянно - хочется иметь возможность иметь 90% хард-кодед функционала, который точно всегда нужен и оставшиеся 10% ммммакисмально легко и быстро подправлять "по месту".
Я так понимаю, диды тут использовали Forth.
Сам сейчас сажусь за изучение Lua/eLua.
Другие слова мне в голову не приходят, так что параллельно вот на харкачик заглянул ответы спросить.
1563 293274
>>293241

>православного stm32f103c8t6


Это не православный микроконтроллер. Православный микроконтроллер это К1986ВЕ92QI.

>ммммакисмально легко и быстро подправлять "по месту".


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

>диды тут использовали Forth.


Нет. Forth в общем случае является скорее компилируемым чем интерпретируемым. И писать на нем не быстрее чем на Си.
1564 293311
>>293274
Не, о том чтобы интерпретатор встроить речи не идёт. Т.е. в случае луа - одна виртуальная машина, без лексера/парсера/конпелятора. Как в общих чертах я это вижу: быдлокодится простой загрузчик байт-кода в известную область флеш-памяти, из которой тот и исполняется виртуальной машиной; загрузчик можно сделать например через UART или SPI (Wiznet/Enc28j60 или даже карточка SD); конечно, это по сути будет тот же swd самопальный, но предполагается, что профит будет именно в том, что самая переменчивая нагруженная логикой часть прошивки будет на гибком скриптовом языке, а не на топорной няшносишечке, причём корректность логики будет элементарно тестируемой на компе разработчика.
Разве так нигде не делают?
1565 293325
>>293311

делают конечно? всякая хуета типа nodemcu, в ПЛК вместо программ используют всякие МЭК 61131-3, но это тред про ARM а значит только хардкор и байтоёбство, так что уёбывай
1566 293329
>>293311

>загрузчик можно сделать например через UART или SPI (Wiznet/Enc28j60 или даже карточка SD)


Там и так есть SWD/JTAG и встроенный загрузчик через UART, зачем делать еще один с той же функциональностью? Только для того чтобы каждый раз не перепрошивать неизменяемую часть и сэкономить на этом секунду?

>на гибком скриптовом языке


Чего гибкого в луа? Какой-нибудь питон на компе еще можно назвать гибким благодаря множеству модулей. При этом из Си несложно макросами сделать простенький forth.

>причём корректность логики будет элементарно тестируемой на компе разработчика.


Будто на Си это нельзя.
1567 293463
Аноны, на днях купил себе стм32ф407 дискавери, так возник вопрос, какой IDE лучше для нюфага-быдлоардуинщика?
1568 293468
>>293463
SublimeText 3
1569 293615
>>293463
Недавно начал изучать STM по этому МК. Использую IAR + STM32Cube, библиотеки HAL. Мне нравится, даже очень.
1570 293672
>>293615

>IAR


>STM32Cube


>HAL



говноед
1571 293674
>>293672

>>STM32Cube


>>HAL


пук
1572 293700
>>293463
STM32Cube + Keil

Не слушай поехавших, которые поносят HAL, просто они не осилили понятие абстракции и зачем она нужна, ведь этому не учат в их быдло техникумах. Им проще хуесосить то чего они не понимают, чем принять тот факт, что это всего лишь удобный инструмент.
1573 293808
>>293700

>Не слушай поехавших, которые поносят HAL, просто они не осилили понятие абстракции и зачем она нужна, ведь этому не учат в их быдло техникумах.



Двачую.
Сам начинал ещё с AVR и PIC на ASM, потом начал работать с C. Параллельно программировал под Linux (там было чистое ООП).
Потом, когда начал работать c STM32 понял, что наелся битоёбства.

Когда сейчас всякие интересные личности рассказывают охуительные истории про то, как охуенно быть байтослесарем, мне становится смешно. Ещё лет 15-20 назад я бы мог это понять, но не сейчас. Сейчас программировать в стиле "внук допишет" при таких вычислительных мощностях означает исключительно одно - ты тупо не впишешься в рынок. Кому нахуй нужно, чтобы ты писал на CMSIS месяц то, что я могу написать на HAL за неделю и при этом получить много плюшек в плане переносимости и прочего, при этом потери в памяти и производительности у меня никак не будут фатальными.
Напомню, что у серии F4 частота от 80МГц у самых начальных моделей до 180 МГц у топовых при 64КБ-2МБ флеша и 32КБ-384КБ оперативной памяти. Я просто физически не вижу смысла тратить много времени на слишком низкоуровневую ерунду. Времени жалко.

Короче, разобраться с азами конечно нужно, чтобы не стать макакой, не понимающей что такое бит. Но всю жизнь вариться в этом дерьме я смысла не вижу.
1574 293827
>>293808

>Но всю жизнь вариться в этом дерьме



ты просто непонимаешь кайфа от продвинутого хардкорного байтоёбства

если тебе нужно быстренько заебенить хуету уровня китай+ конечно нужно зашквариться в IDE + анальные библиотеки, но в ни нет души они неправаславны и ибически анальны
1575 293859
>>293827

>ты просто непонимаешь кайфа от продвинутого хардкорного байтоёбства



Я бы так не сказал. Когда я был юн и мне казалось, что жизнь продолжается бесконечно, я кайфовал от байтоебства, всячески изъебывался, чтобы выжать дополнительный процент и так далее. Потом меня заебало. Сейчас же я не вижу в этом смысла. Хочется больше попробовать, больше сделать. Вычислительные средства позволяют.
Олимпийские дисциплины, аля игра в 58 байт меня не интересуют. Кому-то интересно изъебываться и колупать свою девятку в гараже, а кто-то загоняет свою бнв в автосервис, чтобы ему колеса накачали. А цель одна - ездить. Каждому своё, короче.

Насчет души в библиотеках - ну как тебе сказать. Когда-то я думал абсолютно так же, когда программировал под десктопные системы на C++. Когда пересел на Python, у меня возникло странное ощущение. Что вроде да, он медленнее. Но я могу сосредоточиться на решении самой задачи, а не на приспособлении своих инструментов к задаче. И решить задачу гораздо компактнее, и разработать её в гораздо меньшие сроки. А время - деньги.

Хотя в целом, одно другого не отменяет. Узкие моменты в Python можно реализовать вставками С++, с STM то же самое.
1576 293860
>>293808

>Сам начинал ещё с AVR и PIC на ASM, потом начал работать с C. Параллельно программировал под Linux (там было чистое ООП).


Завидую тебе
1577 293861
>>293859

короче ты стал старый и желание зарабатывать превысило быть правым, но новичков всеравно нужно гнобить байтоёбством а не спойлерить годными штуками
1578 293868
>>293861
Тут не столько желание зарабатывать, сколько желание работать с новыми штуками.
Понимаешь, какое дело. Кто-то покупает у дедов бесконечные КТ315 и делает светодиодные мигалки на мультивибраторе годами, или какие-нибудь некро-К155-микросхемы и из них чего-нибудь городит, вроде реле времени. Но блядь, время то идёт! Можно всё сделать проще, миниатюрнее, купив у китайцев за бесценок всё, что угодно! И пока ебёшься со старьём, со старыми технологиями, со старыми деталями, время-то тикает.

15 лет назад я мог предполагать, что один чип, который влезет мне на ноготь большого пальца, за 3 доллара, сможет скопировать с маленькой флешки данные и запулить TCP пакетом в Ethernet без обвязки?
Нет. Это были какие-то абстракции. Которые уже несколько лет назад как осуществились.

Технологии бегут так быстро, что охуеть можно, и надо успевать. А то навыпускают чипов на 5 гигагерц и 1гб ром/рам за доллар, а ты до сих пор будешь как "правый" (радикальный консерватор, скорее) делать всё на ASM\без пиздатых библиотек, не используя и 10% возможностей.

Короче, байтоёбство - это нужно и здорово на начальном этапе, но самое главное - вовремя соскочить и пойти дальше, иначе застрянешь там надолго.
1579 293877
Как всешда одна и та же бредятина, как будто и не было ничего дельного в русском нете. Переливание говна успешных программистов из пустого в порожнее. Только капча забавная в этот день
1580 293886
>>293877

приходится порог входа держать выше, иначе поналезут ардуинщеги и засерут все интернеты мигалками
1581 293887
>>293463

> какой IDE лучше для нюфага


«линух популярнее»(ц) В том смысле, что скорее всего очередное пособие «моргаем светодиодом за пять минут» будет написано про связку Eclipse+gcc.
1582 293979
>>293868

>какие-нибудь некро-К155-микросхемы


Попробуй заменить своим STM32 хотя бы К155ИЕ7.

>Кому нахуй нужно, чтобы ты писал на CMSIS месяц то, что я могу написать на HAL за неделю


Твои программы на 90% состоят из инициализации периферии? Это наверное довольно простые программы, без каких-либо сложных алгоритмов.
1583 294013
>>293979

>К155ИЕ7



Деды поналезли в тред, ща будут канифолить со спиртом
1584 294015
>>293979

>Попробуй заменить своим STM32 хотя бы К155ИЕ7.


И чтоб быстродействие не хуже.
1585 294017
Как нaeбeнить такого тематического бота
MicronTechnologies-MT48LC16M16A2TG-7EIT-D-image.jpg21 Кб, 500x500
1586 294119
Привет, армач. Есть одно устройство, в составе которого AT91SAM9260-QU в качестве процессора и MT48LC16M16A2TG-75 в качестве ОЗУ. Работает устройство под линуксом с ядром 2.6.22. Нужно снять дамп ОЗУ. Как это можно сделать?
1587 294123
>>294119
зачем?
1588 294124
>>294123
Есть предположение что во время работы в ОЗУ хранятся нужные данные.
1589 294361
Анонасы, есть ли смысл покупать ардуино, если уже пробовал играться с стм32ф103? Светодиодом моргал, таймер и шим запустил. Едут с китая стм32ф4, 1602, 2812B, 7-ми сегментники и гироскопы. Может ли мне ардуина дать больше чем стм32ф4 или ф7?
1590 294377
>>294361

>Может ли мне ардуина дать больше чем стм32ф4 или ф7?


Так сильно орнул с этого, что наверное даже сосед услышал, который в этот момент стену сверлил.
1591 294380
>>294377
Начинаю понимать...
1592 294418
И чего получается, ардуина не нужна? Там же скетчи, шилды, комьюнити, вот это все. Просто стартер кит ардуины стоит 32 доллара с али + к нему ещё лежит набор 37in1 около 13. На офсайте стм 32F746GDISCOVERY стоит 55 бачей. Что брать?
1593 294428
>>294418
Ну для каких-то элементарных задач ардуино подойдет, но серьезных проектов ты на ней не склепаешь.

>Просто стартер кит ардуины стоит 32 доллара


Нафиг ты стартер киты покупаешь-то? Отдельно все дешевле стоит же.
1594 294429
>>294428
Я пока просто вкатиться хочу, поэтому мне нужно говна кучу и разом. Но я так понимаю по тредам, что вместо ардуины лучше ф103 брать. Я и ардуину хотел-то только потому, что много о ней читал когда не знал про стмки, а с avrdude многого не достиг. Сейчас же пришел к мысли, что хочу ардуину не для проектов, а просто чтоб была, и решил узнать у опытных арм-господ, есть ли смысл в это влезать.

Олсо есть вопрос, с самого st.com можно что-нибудь заказать? Или только через дистрибьютора? Просто цены на 10-20 долларов разнятся.
1595 294431
>>294429

>32F746GDISCOVERY


Это, как и F4, для всяких задач с обработкой аудио/видео с использованием DSP, охуенного многослойного графического интерфейса и прочих штук для которых требуются производительные вычисления.

Аналог пердуины - STM32F030 (20/32/48/64 ноги)

F103 если тебе нужен нормальный USB и часы реального времени с питанием от батарейки

F2/F3 для всяких специфических штук с параллельными АЦП для обрабоки сигналов, подключением памяти по FSMC и т.д.

На али отладочных плат как говна (даже всякие 144-ногие F4 по 16$). Купи себе F030 и F103 - их тебе хватит с головой.

Есть еще STM8, но это для поехавших долбоебов и STM32L где требуется реально низкое энергопотребление (наноамперы в режиме сна и микроампера в работе)
1596 294432
>>294431
Спасибо, анон. Едет ко мне твой третий и четвертый пик.
1597 294433
>>294432
Закажи еще с первого пика (stm32f030f4p6) - стоит реально копейки и на нем можно много чего сделать.
1598 294464
>>294431

>для поехавших долбоебов


Stm8 ясный понятный язык ассемблера на подобие 6502 в отличие от запутанного си stm32
1599 294467
>>294464

> понятный язык ассемблера


> запутанного си


как я и сказал - для поехавших.
1600 294471
>>294467
Если без библиотек то си тот же асм. Разбираться с говном насранным индусами нормальному человеку то же не к чему.
embedded-c-c-programming-fundamentals-master-36-638.jpg95 Кб, 638x479
1601 294477
>>294471
Мне, как человеку, который 10 лет писал на C++, ПХП, Руби и Питоне, С и любые либы к нему кажутся простыми как палка. К тому же STM либы написаны разрабами с учетом тонкостей архитектуры их камней в отличии от говноподелий пердуино комьюнити, где их пишут реально индусы, не делающие даже элементарных код ревью на банальные ошибки переполнения стека или бесконечных циклов. Асм же удел прошлого (когда нужно было экономить память, оптимизировать чего-то там чтоб вписаться в параметры МК) и является бесполезным в наше время, когда МК 50-70 МГц с кучей памяти стоят 1-2$, имеют кучу плюшек, которые раньше даже представить не могли (DMA, FSMC, DCMI, DSP, аппаратные графические модули и прочее) и всем этим желательно рулить через RTOS. Он годится только в исторически-образовательных целях помигать светодиодом или передать чего-нибудь по I2C.
1602 294488
>>294477
За десять лет Вы все перепробовали, я Вас услышал. По работе с стм32 eбeтесь?
15005846545830.jpg53 Кб, 800x434
1603 294492
>>294488
Не надо ко мне на Вы, мне 27 лол. Просто заебало работать на всяких хуесосов и тратить свое время, поэтому разарботал пару стабилизаторов (1/2 канала) и пид регулятор с управлением симисторами. Всякие челики с заводов по производству ПЭТ бутылок покупают в основном (потому что работает лучше чем то, что они покупали у местных производителей) ну и просто рандомы. На очереди 8-и канальный стабилизатор, чтоб выйти на производителя термопласт автоматов (они тоже закупают говно у местных, собранное на пиках). Трачу времени 1-2 дня в неделю чтоб спаять все, фрезернуть отверстия в корпусе на чпу, напечатать вставки и кнопки на 3д принтере и отправить в магазин или сразу заказчику, такие дела.
1604 294493
>>294492
+ еще вкатываюсь в IoT, уже пару месяцев работает дома монитор качества воздуха на ссаном ESP8266 (меряет температуру, влажность, CO2, VOC, пыль PM1.0/2.5/10.0, записывает логи на флешку каждую минут и выдает все через веб интерфейс в виде красивых графиков), сейчас переношу все это на нормальный контроллер ESP32 с RTOS на двух ядрах, автономным питанием и прочими плюшками.
1605 294500
>>294477

>когда нужно было экономить память


Написал часть некоторой цифровой обработки сигнала на cortex-M1 с тактовой 140 МГц, т.к. было лень все делать на FPGA. Но микроконтроллер все-таки немного не успевает. По твоему я должен переделывать плату под более производительный микроконтроллер? Или переносить в FPGA? Так по моему быстрее этот кусок на ассемблере переписать, чем на верилоге.
1606 294504
>>294500
Соглашусь, ассемблерные вставки никто не отменял, но пердолить на нем весь проект - бред, тем более для всяких тривиальных задач с автоматизацией.
1607 294522
Интернет не читай@Вопрос задавай. Есть одна плата стм32ф103 и шаговик NEMA17, конкретнее 17HS4401S. Какой можно поставить между ними драйвер? Их вообще можно связать?
1608 294525
>>294522
Как вариант A4988, который ставят в дешевые 3д принтеры, но я б советовал DRV8825 - у него микрошаг выставляется до 1/32, он может выдать больше тока + имеет некоторые фишки, о которых можно прочесть в даташите.
1609 294545
>>294525
Спасибо. А ему нужен RAMPS или какая-то подложка? Или можно сигнальные пины мк сразу на вход драйвера подключать?
1610 294548
>>294545
На таких платах можно сразу к МК, только аккуратно клей радиатор, чтоб не замкнуть контакты и разберись с потенциометром, который выставляет ток (в какую сторону крутить и до какого предела, про это все в инете есть) как вариант можно купить цифровой потенциометр, типа MCP444X, которому задаешь значение тока по I2C
1611 294552
>>294548
И ещё раз спасибо, анон.
1612 294609
Здравствуйте господа. Есть несколько манядевайсов. Соединенных по асинхронному последовательному интерфейсу. Мастер один (но было бы не плохо мультимастер).

Нужно разродится протоколом. И тут, я, откладывая это "на последок" как самое легкое, впал в ступор.

Сделать на отъебись не получится, вроде и CRC8 надо бы и инициализацию обмена слейвом хочется.
Сел писать велосипед, понял что получится хуйня и пол года ошибки отлавливать потом.

Что изучить\запихнуть туда для этой цели? Не в ModBus же закатыватся на самом деле?
1613 294796
Котоны, помогите. Есть код на C, нужно скомпилировать под ARM архитектуру. Как это сделать? Нашел тулчейн arm-linux-gnueabi-gcc, но objdump по объектному файлу выдает архитектуру elf32-little.
1614 294813
>>294796

>ARM архитектуру


Их много разных, тебе под какой конкретно процессор?

>elf32-little


Что тебя смущает?
1615 294836
Господа ARM-щики, объясните пожалуйста, чем плохи STM8? Почему они некоторыми господинами >>294431 считаются, что долбоебов?

Если мне нужно решать тривиальные задачи, вроде управления движком через I2C\UART, зачем мне брать STM32 если должно хватить STM8?
С STM32 я поверхностно знаком, изучаю его. Решить эту задачу на F4-борде я могу. Но это нерационально в плане цены. А STM8 у меня только 103 плата валяется где-то, на AX купил когда-то за полбакса, но пока не колупал (программатор едет). Про разрядность и маленький объём понятно, но чем они настолько сильно отличаются, чтобы их применение было нецелесообразным?
Вроде стм8куб даже завезли, на C можно программировать. В чем проблема?
1616 294841
>>294836

Если gcc не поддерживает какую либо архитектуру то логично условно считать что данной архитектуры не существует? поэтому непонятно о чем идёт речь, stm8? но извените что это за неведомая ёбаная хуета?
1617 294848
>>294841
Видеокарты тоже будешь игнорировать?

>>294836

>Но это нерационально в плане цены.


https://www.chipdip.ru/product/stm32f030k6t6-2
https://www.chipdip.ru/product/stm8l051f3p6
Аналогичный Cortex-M0 дороже всего лишь в полтора раза, при этом имеет некоторые преимущества: быстрее считает, есть JTAG/SWD, есть gcc. Кроме чуть меньшей цены, у STM8 нет преимуществ, а недостатки есть. По сравнению с ценой остальных деталей (хотя бы корпусом), разница в 26 рублей будет вообще незаметна.

>на C можно программировать


На C11 нельзя вроде как. К тому же в SDCC не все работает и он багнутый, а остальные компиляторы воровать надо.
bin.png10 Кб, 661x418
1618 294856
>>294813
Мне под процессор AT91SAM9260-QU. Смущает то, что бинарник не запускается, вместо этого пикрил.
1619 294882
>>294848
Можно найти 25 против 55 рублей, но абсолютная разница такая же.

Ну во первых, 25р, для какого нибудь маня-мелкосерийного устройства вполне себе деньги. Особенно, если компоненты остальные выходят в 25р то же.
Во вторых корпус, STM32 резко увеличит размеры платы и может обязать делать 2х стороннюю, если не получится разгуляться по площади. (За исключением того, что ты скинул в том же TSSOP, но тут есть пункт 3)
В третьих STM8 умеет питаться от 5В. Что иногда сильно облегчает жизнь и стоимость.

Так, что для некоторых случаев STM8 не лучше, но проще и имеет право жить. Что трудно сказать про всякие PIC\AVR
1620 294883
>>294848
Во-первых ты сравниваешь STM8L с STM32F (аналог F - STM8S), что в корне не верно. Во-вторых, нашел где цены смотреть блядь, вот держи:

https://ru.aliexpress.com/item/Free-shipping-10pcs-STM8S003F3P6-Value-line-16-MHz-STM8S-8-bit-MCU-STM8S003F3P6TR/32399834476.html

https://ru.aliexpress.com/item/STM32F030F4P6-STM32F030F4-STM32F030-IC-MCU-ARM-16K-FLASH-TSSOP20-10pcs-lot-Free-shipping/32748098689.html

А так действительно STM8 не стоит того, чтоб сними возиться - в них все хуже (частота, разрядность ацп, памяти и периферии кот наплакал). Их есть смысл применять в серийном производстве, если тебе надо сэкономить пару рублей на елочных гирляндах, которые будут тебе собирать китайцы.
1621 294890
Традиционно жопа с пальцем
1622 294891
Спасибо за пояснения! Сейчас сам посмотрел повнимательнее на характеристики младших серий и понял, что STM8 того не строят, если нет крупного производства.
Тогда буду колупать мелкие 32-разрядные.

>>294836 - анон
1623 294906
>>294882

>если компоненты остальные выходят в 25р то же.


Только если этих компонентов за 25 рублей не больше десятка. И найди мне нормальный корпус за 25 рублей.

>Во вторых корпус, STM32 резко увеличит размеры платы


Они есть в одинаковом корпусе, например TSSOP-20.

Как я заметил, тут многие что-то делают мелкими сериями, при этом стараясь сэкономить даже на микроконтроллере. Что делаете, если не секрет?

>>294883

>аналог F - STM8S


То есть аналог STM32F1, STM32F2, STM32F3 и т.д. это STM8S? С чего бы это? В тех что я привел, хотя бы периферия аналогична.

>разрядность ацп


Где? У них одинаково максимум 12 разрядов.

>Во-вторых, нашел где цены смотреть блядь


Там хоть месяц ждать не надо.
1624 294917
>>294856
Наверное нужно -march=armv5tej -msoft-float
1625 294920
>>294906
L (STM8 и STM32) - низкое энергопотребление
у STM8S. STM8A - для машин, STM8S - общего назначения.
У STM8S АЦП 10 бит.
Как буд-то ты их будешь по 1шт в месяц заказывать.
1626 294925
>>294906

>Они есть в одинаковом корпусе, например TSSOP-20.



Нет 5В. А все вместе дает кумулятивный эффект, при не благоприятных обстоятельствах.
Дороже сам контроллер, нужен DC\DC, нужна более детальная разводка и пошло поехало, в итоге уже не 25р а 125р.

>тут многие что-то делают мелкими сериями


>Что делаете, если не секрет?


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

Маняфантазии? Наверно. Но заниматься разработкой залупы, кладя хуй на ее стоимость и технологичность по мне так хуита, сразу -50% челенджа.
1627 294933
Ладно буду поколупать стм32, говно пики и стм8 для уродов байтов овощи мазохистов
1628 294944
>>294917
В общем, если компилить бинарник на убунте с этими флагами, то на плате при запуске пишет "not found". Если компилить с флагом -static, то пишет "illegal instruction".

Вообще, утилита file показывает по скомпилированному бинарнику следующее: "test_arm: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=034430c17b1ac94f8d8c3cf45c913691ba66b730, not stripped
".
Также, у меня есть бинарник, который работает на этой плате, информация по нему следующая: "ctrl: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped
".

Как мне скомпилировать свой бинарник, чтобы вывод file по нему был такой же? Я так понимаю нужно использовать тулчейн uClibs? А то я использую arm-linux-gnueabi-gcc.
1629 294947
>>294944

>"ctrl: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked, interpreter /lib/ld-uClibc.so.0, not stripped


>interpreter /lib/ld-uClibc.so.0



Тебе сюда https://www.uclibc.org/toolchains.html
Попробуй собрать собрать тулчейн под uclibc, target указывай unknown-linux.
1630 294948
>>294947
Тулчейн собрать не получилось, но я скачал готовый для ARM. Теперь у меня есть файл root_fs_arm.ext2, на котором я снова застрял. В мануале написано следующее:

Download root_fs_i386.bz2 from uclibc.org
bunzip2 root_fs_i386.bz2
mkdir root_fs
su root
mount -o loop root_fs_i386 root_fs
chroot root_fs /bin/su -

Проблема возникла на последнем шаге, на команду "chroot root_fs /bin/su" - терминал говорит "
chroot: failed to run command ‘/bin/su’: Exec format error
". Гугл говорит что это из-за разницы в архитектурах систем и т.д. У меня на виртуалке убунту x64, что мне сделать чтобы оно заработало?
1631 294954
>>294948
Так, решил проблему с помощью qemu. Скомпилировал бинарник, теперь вывод file у него такой:
"test_arm: ELF 32-bit LSB executable, ARM, version 1 (ARM), dynamically linked, interpreter /lib/ld-uClibc.so.0, for GNU/Linux 2.0.0, not stripped
".
Однако запускаться на целевой системе он все равно не хочет:
"./test_arm: can't resolve symbol '__uClibc_start_main'".
Я сейчас головой поеду.
1632 294956
>>294954
С флагом -static все скомпилировалось и работает. Спасибо за помощь.
1633 295505
Привет, Аноны!
Я тут STM постигаю, и столкнулся с проблемой.
Сгенерировал проект под HAL из-под куба под STM32F407. Проблема вот в чем - мне нужно вызвать небольшую задержку, в 5-10мс перед выходом из прерывания по кнопке. В дальнейшем сделаю либо на таймере, либо с железом немного пошаманю, но сейчас нужно сделать именно так. (Т.к. хочу разобраться, почему не работает).
Вызываю HAL_Delay внутри прерывания и всё виснет намертво в цикле.
Поставил приоритет SysTickTimer = 15 - ничего не изменилось, хотя в интернетах пишут, что должно.

Ничего не понимаю. Объясните, пожалуйста, как заставить это заработать.
nen.jpg65 Кб, 600x556
1634 295542
>>295505

>HAL_Delay внутри прерывания



крутой тролиг
1635 295560
>>295542
Я понимаю, что задержка в обработчике прерывания - это плохо и так далее. Но пока вся моя программа состоит из обработки одного прерывания и пустого цикла и я могу себе это позволить. И я хочу узнать, какого черта это не работает.
Ведь здесь дело не в том, что задержка в прерывании это плохой тон, а в том, как правильно настроить приоритеты прерываний.
1636 295565
>>295560
Пробовал вызывать HAL_Delay вне прерывания? Может оно вообще у тебя не работает.
1637 295572
>>295565
Пробовал. Работает, как и должно работать.

Я хочу прикрутить энкодер к дев.борде и обрабатывать его топорно, прерыванием по спаду одного из выводов. Этот HAL_Delay нужен исключительно для того, чтобы убрать явление неопределенности при переключении. За один щелчок энкодера переменная, считающая щелчки, вместо 1 изменяется на 10-30.
1638 295597
>>295572

> обрабатывать его топорно


Обрабатывай его в конечных автоматах, а не прерываниями с дэлеями.
1639 295602
>>295505
Может оптимизация тебе какаху подложила?
1640 295608
>>295560

>задержка в обработчике прерывания - это плохо и так далее



это плохо если ты продвинутый байтоёб и пишеш без всяких HAL, cmsis, cube и прочего дерьма, тогда можешь поругать себя и продолжать, всё будет работать как надо, но если ты сраный ардуинщег-библиотекарь то задежки в прерываниях не просто плохо а недопустимы

а вообще просто нужно прерывание от SysTick сделать выше твоего прерывания, https://electronics.stackexchange.com/questions/212194/stm32f7-gets-stuck-in-external-interrupt-callback-function
1641 295611
>>295608
>>295602
Разобрался. Тупо ошибся и в упор её не замечал в дальнейшем, даже стыдно признаться.
Перепутал Preemption priority с Sub priority, когда выставлял биты приоритета. Сейчас всё работает как и хотел. Косячно, но работает. Больше мне и не требовалось от этой задачи.

>>295597
Я так и реализовал в итоге. Подумал, что так логичнее. Но хотел всё-таки узнать, как вызывать прерывание внутри прерывания. Не мог пропустить факт того, что я вроде как задаю приоритет прерывания, а он ни на что не влияет.

>>295608
Это понятно, Анон. Тут дело немного не в этом.

Спасибо за ответы, господа! Добра!
1642 295833
Сап, армач. Есть вопрос по светодиодам WS2812b. Я недавно занялся программированием под АРМ, в качестве подготовки к диплому, ну там светодиодом поморгал, ШИМ запустил, с EXTI поигрался. Недавно пришли мне 10 WS2812b и я попытался спаять свою первую махарайку. Нашел в гугле типичную схему подключения(пик 1), посмотрел как они распаяны на лентах, нарисовал свою плату в Eagle(пик 2), вытравил все и припаял как предписано(пик 3). Дальше скачал IAR'овский проект под ленту, который нашел на Ютубе, канал "Электроника в объективе", залил его на свой STM32F103 и нухуя не работает как в видео.

Дело в том, что диоды получают и напряжение и данные(пик 4), но не применяют их, только первый применяет цвет и дальше не двигается и не меняет его. Если выдергивать минусовой провод, то все 10 штук горят рандомным светом, каждый раз разным. До пайки компонентов, но после лужения я прозванивал все дорожки, после пайки компонентов я все мерил, дороги от кондёров, шины +5 и землю, между ними, сигнальные дорожки. Отдельно проверил конденсаторы, купленные в соседнем радиомаге - 104, как и нужно. Попробовал запитать плату не от 5В, а от 3,3В чтобы Vупр > 0,7*Vпит, та же хуйня. IAR'овский проект правда под старую версию, и при открытии требует обновить проект до новой. Аноны, что может быть за хуйня? Дорожки слиплись? Поставить IAR младших версий? Какие-то настройки IAR которые я проебал? Косяк в плате?
fail.jpg187 Кб, 1603x420
1643 295834
>>295833
Проводок перепаял, БЫСТРО БЛЯ !
proof.jpg171 Кб, 912x471
1644 295836
>>295834
Анон, я три раза проверил.
1645 295854
АРМоёбы, скажите, а вы защищаете свою профессию и специальность, как написано тут?

http://labor-union.wikia.com/wiki/Lifehacks

В-третьих, не помогать российским бизнесменам убивать рынок труда. Не стоит выкладывать в интернет готовые решения и подробную документацию и разжевывать все до состояния каши. Если вас заставляют писать документацию к вашему проекту или к части проекта, то не стоит разжевывать все такого состояния, чтобы понял первый встречный. Еще нужно создавать неформальные профсоюзы во всех городах, объединяться в Facebook Messenger, Google Hangouts, Google Plus, Signal, Tox, Jabber, группироваться по профессиям и проводить разъяснительные работы с идиотами, которые готовы бесплатно создавать продукты или оказывать бесплатные консультации ради стажа, лайков в карму, репутации и так далее. Нужно объяснять молодежи, что абсолютно любая работа на дядю должна оплачиваться. Также нужно коллективно осуждать тех, кто выкладывает на YouTube самоучители по диагностике и ремонту любых неисправностей материнских плат ноутбуков или диагностике жестких дисков, или профессиональному восстановлению данных, например. Нужно препятствовать опусканию любых инженерно-технических специальностей на дно и уничтожению рынка труда экономически безграмотными инженерами, которые хорошо разбираются в своих областях (электротехника, электроника, VHDL, сетевые протоколы, восстановление данных), но являются профанами в экономике и не понимают, что своими деяниями они уничтожают свою же профессию. Выкладывание максимально разжеванных материалов плодит дилетантов и мошенников на рынке труда, которые одновременно и позорят профессию, формируя общественное мнение о том, что типичный городской специалист в данной конкретной области - это мошенник, и сбивают цены на услуги, поскольку все клиенты начинают утверждать, что данная сложная работа должна стоить намного дешевле, "...потому что бизнесмен Васян вон за 270 рублей то же самое предлагает". Иначе вам придется тратить уйму времени на объяснение каждому клиенту того, почему после неудачного восстановления данных у Васяна вы не сможете ничем помочь.

В-четвертых, не раздавать направо и налево свои знания и опыт. Российские бизнесмены навязывают всем мысль о том, что профессионал должен активно делиться знаниями и обучать других, а иначе это не профессионал. Они заставляют профессионалов преподавать на организованных бизнесменами курсах для студентов или доучивать выпускников. Если инженер не особо усердно обучает других людей, то бизнесмен, умело дергая за ниточки самолюбия инженера, будет подкалывать его, что тот якобы испугался каких-то жалких студентов, конкуренции с их стороны. Вам нужно понять одну простую вещь: раздача ваших знаний и опыта - это инвестиция в ваше будущее со знаком "минус", даже если это обучение вам прямо сейчас бизнесмен очень хорошо оплачивает. Даже если 40% студентов последнего курса на конкретной кафедре - глупцы, то из оставшихся 60% студентов еще через 3 года 30% смогут успешно справляться с абсолютно любой работой младшего инженера, 20% - с инженерными задачами, требующими средней квалификации, а остальные 10% смогут успешно справляться с задачами старшего инженера на проекте, продавливая вниз цены на труд и наступая вам на пятки. А еще через 3 года некоторые из бывших студентов оставят вас позади. Поэтому преодолейте в себе гордыню и самолюбие, отбросьте мысли о вашей якобы незаменимости и прекратите дарить всем ваши знания и опыт, плодя молодых конкурентов и создавая для владельцев предприятий промышленную резервную армию труда (как ее называл Карл Маркс).
1645 295854
АРМоёбы, скажите, а вы защищаете свою профессию и специальность, как написано тут?

http://labor-union.wikia.com/wiki/Lifehacks

В-третьих, не помогать российским бизнесменам убивать рынок труда. Не стоит выкладывать в интернет готовые решения и подробную документацию и разжевывать все до состояния каши. Если вас заставляют писать документацию к вашему проекту или к части проекта, то не стоит разжевывать все такого состояния, чтобы понял первый встречный. Еще нужно создавать неформальные профсоюзы во всех городах, объединяться в Facebook Messenger, Google Hangouts, Google Plus, Signal, Tox, Jabber, группироваться по профессиям и проводить разъяснительные работы с идиотами, которые готовы бесплатно создавать продукты или оказывать бесплатные консультации ради стажа, лайков в карму, репутации и так далее. Нужно объяснять молодежи, что абсолютно любая работа на дядю должна оплачиваться. Также нужно коллективно осуждать тех, кто выкладывает на YouTube самоучители по диагностике и ремонту любых неисправностей материнских плат ноутбуков или диагностике жестких дисков, или профессиональному восстановлению данных, например. Нужно препятствовать опусканию любых инженерно-технических специальностей на дно и уничтожению рынка труда экономически безграмотными инженерами, которые хорошо разбираются в своих областях (электротехника, электроника, VHDL, сетевые протоколы, восстановление данных), но являются профанами в экономике и не понимают, что своими деяниями они уничтожают свою же профессию. Выкладывание максимально разжеванных материалов плодит дилетантов и мошенников на рынке труда, которые одновременно и позорят профессию, формируя общественное мнение о том, что типичный городской специалист в данной конкретной области - это мошенник, и сбивают цены на услуги, поскольку все клиенты начинают утверждать, что данная сложная работа должна стоить намного дешевле, "...потому что бизнесмен Васян вон за 270 рублей то же самое предлагает". Иначе вам придется тратить уйму времени на объяснение каждому клиенту того, почему после неудачного восстановления данных у Васяна вы не сможете ничем помочь.

В-четвертых, не раздавать направо и налево свои знания и опыт. Российские бизнесмены навязывают всем мысль о том, что профессионал должен активно делиться знаниями и обучать других, а иначе это не профессионал. Они заставляют профессионалов преподавать на организованных бизнесменами курсах для студентов или доучивать выпускников. Если инженер не особо усердно обучает других людей, то бизнесмен, умело дергая за ниточки самолюбия инженера, будет подкалывать его, что тот якобы испугался каких-то жалких студентов, конкуренции с их стороны. Вам нужно понять одну простую вещь: раздача ваших знаний и опыта - это инвестиция в ваше будущее со знаком "минус", даже если это обучение вам прямо сейчас бизнесмен очень хорошо оплачивает. Даже если 40% студентов последнего курса на конкретной кафедре - глупцы, то из оставшихся 60% студентов еще через 3 года 30% смогут успешно справляться с абсолютно любой работой младшего инженера, 20% - с инженерными задачами, требующими средней квалификации, а остальные 10% смогут успешно справляться с задачами старшего инженера на проекте, продавливая вниз цены на труд и наступая вам на пятки. А еще через 3 года некоторые из бывших студентов оставят вас позади. Поэтому преодолейте в себе гордыню и самолюбие, отбросьте мысли о вашей якобы незаменимости и прекратите дарить всем ваши знания и опыт, плодя молодых конкурентов и создавая для владельцев предприятий промышленную резервную армию труда (как ее называл Карл Маркс).
1646 295863
>>295854
Сразу чувствуется какой то манагер.
Без опен сорс сообщества был бы такой пиздецовый застой, что страшно представить. Ну да, из 100 - 99 ардуинщеги.
Кому нужен ардуинщег, его найдет и заплатит 270р.

ВОТ ЕСЛИ БЫ КОК ПОК ЗАКРЫТОСТЬ, ТО ЗА РАБОТУ УРОВНЯ АРДУИНА Я БЫ ИМЕЛ 1000000 БАКСОВ В ЧАС.

Но увы, не имеешь и не будешь. А профессиональные люди свое место найдут.
1647 295877
>>295863
У них там вся агитация упрощена до предела, в такие моменты они не вникают, обсасывают заговор который тред безрезультатно.
1648 295904
На педерашьечем есть годные ресурсы по ARM? Недоумки плодят недоумков же. Если перестанут публиковать - ровным счетом ничего не изменится.
1649 295926
>>295904
Походу нету. Однотипное перепечатывание "уроков". На хаброгиктаймсе попадается пара статей, остальное пытался своим пропитым мозгом догонять, надоело, забросил свою стм32ф429i, скоро плесенью порастет. ПС. чота импортозамещение не работает, покупал ее за 1.2к, сечас 3+к
1650 295932
>>295904
То, что любой более менее адекватный разработчик ARM умеет в инглиш и сидит на более массовых ресурсах, не думал?

>>295926
Вот поясни мне, дурному, что там догонять? Проблема МК не в том, что их сложно изучить, а в том, что сложно решать прикладные задачи.
1651 295938
>>295932

> что там догонять?


Вот если бы ты кодил только на Бейсике сидя за Robotron1715, потом 25 лет ебашил на стройке в паре парсеков от программирования, а потом тебе приспичило обтряхнуть старину и попробовать поиграться с современными железками, а тут йоба-битовые операции, инициализация тактирования на порядок больше чем ты за всю жизнь строк кода написал и прочие ништяки. На русском ресурсов чуть меньше чем нихуя. На тех которые есть все описывается по принципу: 2 + 2=4, а теперь вы поняли математику и давайте по быстрому разберем пару уравнений описывающих теорию струн.
1652 295941
>>295932
>>295926
>>295904
Единственный нормальный источник - это документация. Все эти статейки в во всяких блогах одинаково бесполезны вне зависимости от языка на котором они написаны.
И как я понял, тот анон >>295854 предлагает не выкладывать документацию именно производителям микросхем.

>Не стоит выкладывать в интернет готовые решения и подробную документацию

1653 295945
>>295941
Ну вот не скажи. Статейки помогают найти точку опоры, от которой можно уже двигаться. Да, ее можно найти и офф доках. Вот только что все эти офф доки, РМ и тысяча аппнотов.
1654 295954
>>295854

такая хуета есть в любой профессии в любой стране, теже сервис центры, не в восторге от сраных ютуб блогеров, которые показывают как прожарить проц чтобы он еще пару недель/лет проработал, но обсирать ардуинщеков это не цель а процесс который просто доставляет, ктомуже правило гнобить новичков никто не отменял и это полезно иногда
1655 295957
Совок уже так обосрался. Сейчас же это просто маразм, доставшийся от совков - скрывать инфу изначально предназначенную для юзеров.
Анон правильно сказал всё есть в доках. Смешно, Шариков дает советы вселенской глупости.
1656 295958
в реестр Роскомнадзора пускай внесут infocenter.arm.com st.com и ti.com думаю этого будет достаточно
1657 295963
>>187056 (OP)
Ткните меня в STM8-тред. Помню, что видел, а найти не могу. Утонул штоле? Там чювак знакосинтезирующий индикатор к стм-ке подключил и у него работал. Я бьюсь уже 15 секунд и никак.
1658 295965
>>295863

>Сразу чувствуется какой то манагер.


Скорее неосилятор, который хочет, чтобы тот мизер знаний - который он имеет, приносил ему хоть какой-то доход. А для этого он предлагает сделать его мизер знаний конкурентноспособным, ограничив остальным доступ к информации.
1659 295966
up
1660 295967
>>295966

> up


> 1659 сообщение


Пилите перекот, черти арм-ные
1661 295968
>>295967
Зачем, если не тонет.
1662 296100
>>187056 (OP)
Есть смысл качать Keil 5.24 если пользуюсь 4.73?
1663 296140
>>296100
Тхред настолько быстрый, что уже успели удалить раздачу 5.24 пока вы отвечали.
1664 296147
>>296140
Ты инвалид что ли?
https://rutracker.cr/forum/viewtopic.php?pg=1&t=2305709
Я бы скачивал с официального сайта, а то мало ли чего понапихают в торрентах. Кейгены вроде как подходят и от старых версий.
Но лучше использовать gcc с eclipse.
1665 296148
>>296147

> rutracker


А это законно?
1666 296156
>>296148

в некоторых штатах незаконно
1667 296175
>>296147
Спасибо. Я в основном на ноунейме тусуюсь.
1668 296613
>>296147

> Но лучше использовать gcc с eclipse.


армяне лучше чем грузины
1669 296668
Аноны, поясните за обучение. Купил я демоборд на стм32ф103, поморгал диодом, освоил таймеры и шим, ацп и внешние прерывания. Под диктовку подключил 1602 через I2C. Дальше мне их Китая приехали WS2812B и акселерометры, я смотрю как их подключить и нихуя не понимаю. Что почитать-посмотреть про DMA, SPI, CCR, FreeRTOS чтоб хотя бы представлять о чем идет речь?
1670 296682
>>296668

>Под диктовку подключил 1602 через I2C.


Надеюсь ты понимаешь, что в этих дисплеях I2C приделан через дополнительную плату с микросхемой I2C-GPIO? Нужно было читать документацию на сам дисплей и на эту микросхему.

>Что почитать-посмотреть про DMA, SPI, CCR, FreeRTOS чтоб хотя бы представлять о чем идет речь?


Для начала нужно узнать какие интерфейсы у твоих светодиодов и акселерометров. Единственный нормальный способ это узнать - читать документацию.

>WS2812B


https://www.parallax.com/sites/default/files/downloads/28085-WS2812B-RGB-LED-Datasheet.pdf
На четвертой странице нарисованы временные диаграммы. Какому интерфейсу из STM32 они соответствуют? Да никакому. Соответственно есть два варианта:
1) Светодиодом мигать умеешь? Вот и намигай в соответствии с этими временными диаграммами. Для задания задержек использовать таймеры.
2) То же самое, но с использованием ПДП.

>и акселерометры


Разные акселерометры имеют разные интерфейсы. Неожиданно?

>>296613
В eclipse хотя бы рефракторинг имеется. Как IDE, eclipse по возможностям превосходит Keil. Кейловский компилятор вроде как лучше gcc, но какой смысл использовать его с эклипсом?
1671 296704
>>296682

>I2C приделан через дополнительную плату


Знаю.

>Нужно было читать документацию


Еужно. Потому, что я смог его запустить только от 16Мгц тактирования, на 72МГц дисплей не инициализируется. И хуй знает почему, хотя коэффициенты в функциях я менял.

>какие интерфейсы


У акселерометра I2C - он MPU-6050. И когда я глянул проекты с ним, и как на комп снимать данные, я мягко говоря, охуел.

Вот и интересно, что дальше читать? Почему в примере с дисплеем биты двигают например? Как, какие и куда?
1672 296783
>>296704

>хотя коэффициенты в функциях я менял.


Там два типа коэффициентов:
1) Для задания частоты I2C.
2) Для задержек самого дисплея.
Если правильно выставляются заданные значения на выходе микросхемы I2C-GPIO, то первый тип коэффициентов установлен правильно. Для этой проверки хватит мультиметра или даже простого светодиода.
Для проверки задержек второго типа потребуется осциллограф или логический анализатор, но можно просто внимательнее писать код.

>Вот и интересно, что дальше читать?


Только документацию.

>Почему в примере с дисплеем биты двигают например? Как, какие и куда?


Например, когда дисплей подключен по четырехбитному интерфейсу. Без схемы и кода можно только догадываться.

Если тебе непонятен какой-то код, то можешь дать на него ссылку, желательно со схемой.
1673 297033
>>187056 (OP)
Что надо, чтобы прошить ARM проц от Atmel? Желательно любой.
Понадобился мне двух-ядерный проц - надо записывать видео и звук одновременно.
Но одноядерное говно не вывозит эту хрень.
1674 297035
>>297033
зная фирму Atmel предполагаю, что решение будет стоит охулиард рублей
1675 297036
>>297033

>Atmel


Теперь это Microchip.

>двух-ядерный проц


Не проц, а микроконтроллер.

Прошивать через J-Link, который можно сделать из ST-Link.
14489889778220.jpg48 Кб, 1130x879
1676 297037
1677 297068
>>236320
А добавить нельзя?
1678 297121
>>297036
Поправь. А что, бывают 2х ядерные МК?
1679 297124
>>297121
LPC43xx например, но они немного про другое
1680 297133
>>297121
ESP32 - 2 ядра, 240Мгц суммарная частота, есть даже I2S для работы с аудио.
20131029526fe7cd21eeb[1].jpg288 Кб, 1200x811
sage 1681 297141
>>297133

>240Мгц суммарная частота


а у меня комп 16 ГГЦ в сумме лал
НУ ты лашара лооооол
крузис то пайдет?
нуб ебаный азазаз
1682 297143
>>297133
Заманчиво.

Одно НО - пишут, что сдк пиздец сырой.
И можно ли повесить на каждое ядро по задаче? Не нашёл.
1683 297145
>>297133

>ESP32


w2k на такой бы поставить кок раз двух ядерные системы поддерживает. А линух отстой это вчерашний день.
1684 297146
>>297141
Сказать то чего хотел, уебище, ммм?
1685 297147
>>297143
SDK сейчас 2.1 стабильная версия и пилят 3.0

Можно через RTOS вешать задачи на любое ядро.

Первое ядро всегда включено (на частоте 80/160), второе можно включать/выключать когда надо (частота 80).
1686 297150
>>297121
Атмел-микрочип ATSAM4C, два ядра Cortex®-M4(F).
По моему процем можно назвать то у чего есть MMU. Разве у атмела-микрочипа есть такие двухъядерные?

>>297147
А документация на всю периферию полностью открыта или как в esp8266, где вроде бы до сих пор документация на DMA открыта лишь частично?
1687 297151
>>297150
http://esp-idf.readthedocs.io/en/v2.1/api-reference/index.html - API реф 2.1
http://esp-idf.readthedocs.io/en/v2.1/api-guides/index.html - API гайды 2.1

Насчет DMA, вот кусок из описания SPI Master драйвера:
The spi_master driver allows easy communicating with SPI slave devices, even in a multithreaded environment. It fully transparently handles DMA transfers to read and write data and automatically takes care of multiplexing between different SPI slaves on the same master.

Ну и палю годноту: https://leanpub.com/kolban-ESP32
1688 297152
>>297151
А что, DMA у нас ограничивается SPI?
1689 297153
>>297152
Нет, просто не будут же тебе делать раздел о DMA, где будет описание отдельно для каждой периферии, логично, что его описание будет в разделе самой периферии.
1690 297154
>>297151
Это документация на API, а не микроконтроллер. Если брать тот же SPI, то можешь ли сказать на каких частотах входного сигнала гарантируется прием в режиме ведомого?
>>297152
Вот этого удваиваю.
>>297153
Это может быть логично только в документации на API.
А если я захочу разгрузить DMA для чего-нибудь более критичного? Но документации то нет (возможно), соответственно никак не выйдет.
14995443699700.jpg161 Кб, 799x807
1691 297156
>>297154
Какого хуя я должен все искать за тебя, бери качай док и читай уебище:
http://espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf
Разделы 6 - DMA и 7.4 - SPI clock.
1692 297157
>>297156
Ладно, ладно. Уговорил. Купил пару ESP32-PICO-D4. Попробую на нём вкорячить задуманное.
1693 297159
>>297156

>Какого хуя я должен все искать за тебя


Потому что стал тыкать в API, который не имеет никакого отношения к вопросу >>297150
А мог бы просто сказать что в этот раз китайцы сразу открыли документацию на все кроме радиомодулей.
1694 297262
Дали изучать плату с atmel sam e70. Погуглил, уроков никаких не нашел. Что почитать чтобы хотя бы светодиодом поморгать?
TI-65.jpg74 Кб, 466x308
1695 297599
>>187056 (OP)

пока вы тут скачиваете кейл с торентов и объясняете всяким дегенератам-ардунщикам как настроить прерывания, биглибоард выпустил йобу

https://beagleboard.org/pocket

основанную на октавосистемс

http://octavosystems.com/octavo_products/osd335x-sm/

которая в свою очередь основана на инструментах из техаса (Texas Instruments Sitara)

Из годноты стоить отметить PRU-ICSS, два 32 битных 200Mhz встроенных risc ядра для кастомной переферии, только огорачает что 200Mhz хули так мало то блять

кто уже юзал? сколько светодиодов можно одновременно замигать?
1696 297626
>>297599
Нахер оно нужно?
Все эти микро пк - тупиковая хуйня. Все эти малинки, апельсинки.
Народ ставит туда дистры линуха, непонятно кем собранные, дабы с помощью GPIO мигать светодиодами и смывать бачок унитаза удаленно.
Работать там нереально, если нужно что-то сложнее текстового редактора.
Медиаплеер из этих девайсов тоже практически никакой.
1697 297635
>>297626

>непонятно кем собранные



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

я сам ядро сибираю для йобоштук, с реалтаймовыми расширениями и прочими ништяками, модули ядра у меня пока хуёво получаются, а вообще такие штуки норм когда нужно быстро блять, штука со спичечный коробок может одновременно держать тысячи соединений по https это охуенно же
1698 297636
>>297626
Двачую, бро. На волне хайпа прикупил Апельсину-2Г-ИоТ. Закинул к хуям в дальний ящик через пару дней.
1699 297637
>>297626
Ну так никто не запрещает самому собрать ядро и накатить слаку или арч, если впадлу от васяна сборку ставить
мимо_обожаю_малинку
1700 297638
>>297636

бро, купи ещё одну, похуй что хуйня, можешь выкинуть нахуй или засунуть куда, просто купи они охуенны же, скочай пидору, там есть охуенные обои и медиаплейер
1701 297639
>>297638
Еще есть гцц сразу арм и вим, опноцд и ддд, отдадка через гпио Не напрягаясь все есть для кортехов
1702 297640
>>297639

тсс, ненадо сразу про йоба штуки рассказывать, испугаются и не будут покупать
1703 297641
>>297599
Оверпрайс, как по мне. Понравился только тем, что у него есть немало HW интерфейсов.

>>297626
Ты использовал, или "не читал, но осуждаю"?
Я вот использовал RPI1 и RPI3. Первый вкорячил в одну smart-home приблудину, которая написана на Python, кстати. Работает и нормально, хотя программа вышла тяжеловесной. GUI подтормаживал, конечно. А вот видео воспроизводит нормально через VLC. Медиаплееры пилили ещё на 1B и не жаловались. Аппаратное декодирование видео реализовано.

RPI3B уже работает очень здорово. Часто использую как UART терминал, или как I2C слэйв/мастер при работе с ARM-ами. Через Python в GUI, либо через терминальные программы.
Понятное дело, что GPIO у RPI гораздо слабее, нежели у ARM. Это логично. Но у RPI есть SPI/(2)xI2C/(2)xUART, и есть GPIO, достаточный для управления с некритической точностью.
GUI работает очень бодро. В третью кваку играл на максималках с FPS около 50. Ютубчик через браузер конечно в FullHD не покажет, но что можно хотеть за 35$?
А дистров дохуя. Есть минимальные образы, где все пакеты сам сверху накидываешь, если так пичот от популярных дистров. Я же довольствуюсь Raspbian Lite.
1704 297642
>>297641

>GPIO у RPI гораздо слабее, нежели у ARM


ясно понятно
1705 297644
>>297641

да прайс пока не радует, всё из за ардуинщегов ебаных покупают устаревшее железо за оверпрайс, а норм железо без спроса лежит
1706 297645
>>297644
Для меня ардуино это вообще нонсенс. Единственная польза - огромное количество всевозможных датчиков и прочих приблуд, которые идут к ардуине.
1707 297647
>>297645
Потому что просто начать в Ардуино
1708 297648
>>297645
Просто ты профи технарь, а для гуманитариев лучше ардуины ничего не придумаешь.
1709 297651
>>297645
Ну смотри, если тебе надо заебашить разовому клиенту автоматизацию толчка.
Есть вариант, сделать на твоем любимом МКнейм, потратив время на схему, изготовление и монтаж или взять, купить ардуину, купить расширения, написать код за денек (на си, не скетч) и получить деньги?

Не любил ардуину, пока не начал заваливаться из любительства в мелкосерийку. И заказчик рад, т.к. нет каких то уникальных частей, которые хуй найдешь если ты помрешь.
1710 297653
>>297599

>Из годноты стоить отметить PRU-ICSS, два 32 битных 200Mhz встроенных risc ядра для кастомной переферии


Чем это лучше CPLD или пересылок DMA-GPIO? По моему всем хуже, бесполезная штука.
1711 297674
>>297653

кукаркать вздумал ардуинщег ебаные?

ну вообще в данном случае зависит от аргаизации шыны ну в данном случае реализация гавно конечо, но люди стремились сделость как можно лучше, щенок ибаный
cha.jpg106 Кб, 800x800
1712 297675
>>297674
да не обращай внимания на школьников бро
1713 297682
>>297675
Еще раз спрашиваю, для чего нужно:

>Из годноты стоить отметить PRU-ICSS, два 32 битных 200Mhz встроенных risc ядра для кастомной переферии


Как пишет сам производитель, это сделано для мигания светодиодами. То есть для программной реализации разных интерфейсов.
Но зачем? В простых случаях можно использовать DMA для пересылок между памятью и GPIO. Что-то более сложное целесообразнее делать на ПЛИС. С помощью мелкой CPLD можно мигать куда большим количеством светодиодов, причем еще и с большей частотой.

И этот ваш PRU-ICSS - шаг назад по сравнению с древними AT94K.
1714 297692
>>297682

ну хорошо, нужно гигагерцовый cortex-A8, 512MB DDR3, CPLD интегрированый должен сидеть на шине кортекса, размер 5x5 см, 30$ где купить?
1715 297695
>>297692

>размер 5x5 см, 30$ где купить?


Ты про https://beagleboard.org/pocket ? Но это же плата совсем без ничего, все равно придется к ней что-то припаивать.
Причем плата OSD3358-SM-RED, на которой есть хоть какая-то периферия, стоит как аналогичная плата с Zynq.

>должен сидеть на шине кортекса


У большинства подобных процессоров есть шина для подключения параллельных флешек и SRAM. Можно устройства хоть на серии К155 вешать.

Кстати заметил что на digikey.com эту плату продают дешевле чем стоящий на ней OSD3358-512M-BSM.
1716 297838
>>297695

PRU-ICSS это FPGA для бедных, Zynq насколько я знаю девборды в 100$ непомещаются
1717 297930
>>297838
Нет, это максимум часть функций CPLD.
С Zynq эти PRU сравнивать нет смысла, т.к. в самом простеньком Zynq есть 66 умножителей 25х18 разрядов, которые могут работать параллельно на частоте несколько сотен мегагерц.

>Zynq насколько я знаю девборды в 100$ непомещаются


Да, но это из-за того что для Zynq нет плат без ничего вообще, как >>297599
Но плата OSD3358-SM-RED на которой есть хоть какая-то периферия, стоит уже $200, так же как самые дешевые платы с Zynq, например http://store.digilentinc.com/zybo-zynq-7000-arm-fpga-soc-trainer-board/
1718 297940
>>187056 (OP)

ладно уговорил, zynq рулит

у xilinx на сайте есть какието простые девборды для мигания светодиодами

https://www.xilinx.com/products/boards-and-kits/1-9od2h3.html

https://www.xilinx.com/products/boards-and-kits/1-odbhjd.html

только непонятно как там покупать
1719 298248
Господa, подскaжите. Есть инструкция видa
tst R1, R2
Где R2 = 0x1010
a для R1 три случaя
1. 0x1010
2. 0x1110
3. 0x1000

Кaкие флaги будут выстaвляться в результaте выполнения кaждого из случaев?
Если есть кaкой-то онлaйн-эмулятор бaйтоёбствa, в котором можно нaблюдaть зa регистрaми было б ещё лучше.
STM32F103C8T6
1720 298303
>>298248

нахуя ты в универ притащил ARM?
быстро блять обратно на x86
1721 298313
>>298248
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/BABIHJGA.html
Эта инструкция выполняет поразрядное И, результат никуда не записывается. Флаг N устанавливается при отрицательном результате (старший бит - 1). Флаг Z устанавливается при нулевом результате. Флаг C может установиться только при использовании "Flexible second operand", которое у тебя не используется.
Получается во всех случаях все флаги будут сброшены. Хотя может и ошибаюсь, давно не трогал ассемблер.

Онлайн эмуляторов не знаю, но все это неплохо симулируется в keil или IAR.
1722 298327
>>298303
Рассчитали в оном ещё 3 года назад.
>>298313
Спасибо, я, в принципе сам разобрался. Меня беспокоил тот момент, что флаги, возможно, выставляются и при совпадении одного из битов. По факту же, успешными будут первые два случая, но при этом флаг Z будет сброшен, в третьем он будет выставлен. А я ставил переходы наоборот.
Нашел это в книжке по ассемблеру х86, лол.
1723 298461
Посоны, можно ли в прерывании от таймера остановить этот самый таймер?
1724 298469
>>298461
Сам себе отвечу: можно.
1725 298470
Как используя HAL определить состояние таймера - считает он или остановлен?
1726 298474
>>298470
LL_TIM_IsEnabledCounter

>>298469
Существует много разных ARM микроконтроллеров. Не факт что это возможно в любых ARM микроконтроллерах.
1727 298503
>>298474

>ARM


ARM не причем здесь
1728 298504
>>298503
конкретно в моём случае это stm32f103 - там можно.
1729 298505
>>298474

>LL_TIM_IsEnabledCounter


Спасибо, бро!
1730 298857
Аноны, как ебучий кеш тестировать? Всегда как-то в примерах он отключен был, а ща, в гитхабовской ветке Атмела, везде кеш прикручен, и у меня работает po pizde всё. Видимо, на кастомной плате оперативка не до конца верно настроена.

Алсо, Ваше, анонимусы, мнение о российских процах, особенно интересует Элкус и НИИЭТ.
1731 298949
>>298857

>о российских процах, особенно интересует Элкус


Давно Элкус стал процессоры производить? С Элвисом не спутал случайно?
1732 299096
>>298949
С Элвисом случайно и спутал, бувае.
Алсо, с кешем придется мне лезть в арм, что нехотет.
1733 299097
>>299096
В АрМовские документы, я именно в виду, в даташите нет
1734 299142
>>299096

>С Элвисом случайно и спутал, бувае.


Про Элвисы могу пояснить немного, благо на работе как раз используем один их старый процессор.
Документация говно, несколько примеры на ассемблере, имеют "собственную" IDE с gccшными компиляторами. Вроде как сейчас отказались от собственной IDE и просто используют Eclipse с нескучными обоями.
Ещё есть JTAG-дебагер, аж в двух исполнениях: LPT EPP и USB. USBшный с родной IDE так и не завёлся, LPTшный периодически вылетал, теряя связь с процом. Поэтому отладка более-менее возможна только с помощью их же консольной утилитки mdb.
Хотя IDE все равно не нужны, настоящие кулхацкеры программируют в nano.
В старых процессорах типа того, что мы используем ещё и не было третьего состояния для addr и data шин. Мне то похуй, а вот схемотехники ругались.

Короче после того, как мы перешли с TigerSHARCов и Blackfinов на элвисовские поделия, жить стало грустнее.
1735 299179
Есть такой вопрос. Имеется прошивка для проца Cortex M3.
Надо в ней разобраться извлечь некотороые данные. В IDA кое как разобрался. Проблема в отыскании данных внутри прошивки. Например есть комманда
LDR R1,=2000300
То есть когда проц запускатся в этой точке памяти хранится интересующая меня переменная. Однако вопрос -как отыскать ее в статической прошивке в iDA? Я так понимаю компилятор как-то размещает данные в прошивке в каком-то сегменте. Но как в этом сегменте отыскать?
1736 299185
>>299179
Какой-то странный адрес. У Cortex M3 по этому адресу ничего не должно быть.

>Я так понимаю компилятор как-то размещает данные в прошивке в каком-то сегменте. Но как в этом сегменте отыскать?


В самом начале это копируется в цикле, смотри в качестве примера https://github.com/pichenettes/stmlib/blob/master/third_party/STM/CMSIS/CM3_f10x/startup/gcc/startup_stm32f10x_md.s
По аналогии наверное несложно выявить этот цикл в других случаях.

Либо можно считать ОЗУ с работающего устройства и добавить в секцию.
1737 299206
>>299142
Старый Элвис на ваших кортексах? Там же житаг тоже купленный и, наверное, работающий.
У нас использовали Миландровский ве1т, очень долго ебались ребята с и2с или spi, чем-то таким, оказалось, что проблема в ревизии была. Сырые они, слишком молодое производство, хотя у атмелов точно так же бывает. Сейчас прикрутили гсс с эклипсом к ве1т.
1738 299214
>>299185
С количеством ноликов ошибся, адрес вот такой
LDR R2, =0x20000B9B

>В самом начале это копируется в цикле


Что то я такое предполагал. Но я думал,что все эти данные копируются одним блоком из одной точки памяти в другую. То есть из области flash в область RAM. А видимо для каждой объявляемой и инициализируемой переменной происходит отдельная операция записи. То есть видимо расположение данных в сегменте флеша не соответствет тому в каком порядке они будут в RAM.

>Либо можно считать ОЗУ с работающего устройства и добавить в секцию.


Мне такая иде я приходила в голову. Я только не знаю точно как это сделать. Я предполагаю что например с Jlink'ом можно запустить какойто отладчик, но не знаю будет ли он работать не с соурсом,а с hex или bin
1739 299222
Аноны, а как можно использовать наносекунды? Милли есть в HAL, микро сторонней библиотекой или делением систика. А нано?
1740 299225
>>299222
Настрой один из таймеров на нужную частоту и считай свои нано секунды. STM32F334 позволяет считать таймером по 217 пикосекунд.
1741 299242
>>299225
Но как, Холмс? 72МГц таковой частоты и пикосекунды?
1742 299243
>>299242
Сам себе отвечу:
HRTIM1 timer is made of a di
gital kernel clocked at 144
MHz followed by delay lines. Delay
lines with closed loop control guarantee a 217
ps resolution whatever the voltage,
temperature or chip-to-chip manufacturing
process deviation
1743 299258
>>299206

>Старый Элвис на ваших кортексах? Там же житаг тоже купленный и, наверное, работающий.


Это у них последний проц с арм-ядром. До этого был MIPS пердолинг чем я по сей день и занимаюсь
Вот буквально прямо сейчас, LPTшный jtag перестал определять процессор, просто вот С НИХУЯ. Ещё вчера вечером работал как надо. А мне нужно баг в программке найти, и вот хуй. Придётся сидеть и ждать, когда jtag внезапно начнёт снова работать ведь так уже было, лол.
1744 299264
>>299258
Хуею с твоей квалификации
1745 299280
>>299258

>LPTшный jtag перестал определять процессор, просто вот С НИХУЯ.


Попробуй соединить корпус компьютера с землей платы. Мне это помогало для клона USB-Blaster.

>на кастомной плате оперативка


Какая оперативка? Отечественной SDRAM нормальных объемов вроде как нет, выходит статическая память?

>MIPS


DSP в них не трогал? Мне интересны возможности DSP ядер в этих процессорах. Например декодер Витерби они с какой скоростью потянут?
1746 299298
>>299280

>ddr


Тот проект на Атмеле и американщине. На самом деле я разобрался и локализовал проблему, неверно определен некий tlb был.
1747 299306
>>299280

>Мне интересны возможности DSP ядер в этих процессорах.



http://multicore.ru/mc/data_sheets/Manual_DELcore-30M_App1_031210.pdf

http://multicore.ru/mc/data_sheets/Manual_DELcore-30M_App2_031210.pdf
1748 299310
Братаны, на руках случайно появился дев-кит с кортекс А9, как мне вкатиться в вашу парашу, до этого никогда не программировал МК. Знаю C++ с пар в универе.
1749 299318
>>299310
Ну качай с сайта софтпаки, девкиты без них не делают. А вообще, обычно на а9 накатывают линуксы
1750 299319
>>299310

>A9


>Знаю C++ с пар в универе



выкатывайся обратно в php

тут C нужен и продвинутое байтоёбство
1751 299322
>>299306
Зачем мне система команд? Ну изучу я это, угробив много времени, а потом окажется что оно и близко это не тянет. Мне нужно понять, стоит ли браться за изучение или целесообразнее продолжать все делать на воронежских ПЛИС.
1752 299328
>>299319

> Cortex A9


> продвинутое байтоёбство



>Расчеты

>Расчеты


>Расчеты


>Расчеты



Ты из какого НИИ им. тов. Подзалупкина вылез? Кому впёрлись твои расчёты когда у нас аппликашка календарика на мобиле загружает под 100% 4 ядра по 1.4Ггц просто красивенькими анимациями и полупрозрачными 3д переходами? Здесь другие ребята, анон, не стоит шутить про расчёты, это тебе не шиндоус 3.1, здесь абстрагируются по-крупному. Здесь пишут на языке богов, где любая сущность объект, где всё наследуется от всего, где просто хэллоуворлд может занимать тысячи строк кода и при внесении пары изменений в коде управлять заодно ядерным распадом в коллайдере, здесь шаблон погоняет кодогенерацией, здесь просто приложение с показом времени отжирает 2 гига оперативы на старте и занимает 500 мегабайт на диске. Тут используют Анриал Енджин только чтобы перемножать пару матриц в его математической библиотеке, здесь гарбадж коллектор трахают прямо в анус, создавая тысячи объектов в каждом кадре и не освобождая ручками ни один.

Забудь ты про свой найтивный код. Здесь совсем другая тема. Тут программируют совсем на другом уровне.
1753 299341
>>299319
Ты как мой начальник, такой же ограниченный еблан, который с института знаний не получал больше
1754 299348
>>299341

для начальника это нормально
1755 299357
>>299319
я могу в байтоёбство, я работаю программистом-плис.
>>299318
есть DS-5 Studio Altera Edition
Я бы хотел накатить линукс, но почитав тред, понял, что анон советует сначала освоить bare-metal, понять структуру контроллера, а потом накатывать
1756 299547
>>299264
Я сам хуею. Оказалось, что я просто забыл подключить отладчик к jtag-разъёму.
1757 299775
привет, прошу помощи, с полного нуля(имея опыт, программирования, java,c) решил занятся этим делом и купил STM32F103C8T6, но гдето полгода бродил по различным сайтам в потугах хотябы лампочкой помигать, но раз за разом выполняя похожие действия ничего не получалось, я уже в отчаянии, может я просто не с того начал? подскажите что делать, мб есть статья на просторах иннета типо "как помигать лампочкой, пособие для аутистов"?

для прошивки пользуюсь ST-LINK V2 stm8 & stm 32
https://arduino-kit.ru/catalog/id/st-link-v2-programmator-stm8-stm32.-rc050
1758 299791
>>299775
Что ты конкретно не понимаешь или не можешь сделать?
1759 299792
>>299791
пробовал прошивать в cocoox, iar, keil. и вроде все чудесно работало (ну в смысле подключение st-link -а видит)при прошивке ошибок никаких не выходило, а в конечном итоге ничего не происходит, скажу сразу, брал экзамплы, и если верить статьям экзамплы рабочие (залей и радуйся), я каким только светодиодом я мигать не пытался(ну всмысле и внешний подключал, и тот что на самой плате присутствует). короче диод на плате просто загарается при подключении питания, но не как не мигает.
1760 299793
>>299792
У тебя блядь ST-Link, возьми и пошаговую отладку проведи.
1761 299805
>>299775
Поищи на ютубах каналы narod stream и sappise. Первый использует HAL, второй CMSIS.
1762 299863
Привет, Аноны! Мне мне нужно реализовать программную реализацию ликвидации дребезга контактов кнопки, подключенному к входу, по которому осуществляется прерывание.
МК - STM32F407, использую HAL.
Как это сделать?
Я инициализировал таймер, настроил на 100 мс/прерывание.
Дальше придумал вот что:
Нажимаю кнопку -> идет прерывание по кнопке -> выполняю всё что нужно в обработчике прерываний и в конце включаю таймер и прерывания по нему и запрещаю прерывание по кнопке -> срабатывает прерывание по таймеру, разрешается прерывание по кнопке, выключается таймер и прерывание по этому же таймеру (спорный момент, так и не понял, как это реализовать, чтобы работало), потом происходит выход из функции обработчика прерывания -> ожидание нажатия кнопки.

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
extern uint32_t temp; temp++;
HAL_TIM_Base_Start_IT(&htim9);
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
}
}

void TIM1_BRK_TIM9_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim9);
extern uint32_t timer_temp; timer_temp++;
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
//HAL_TIM_Base_Stop_IT(&htim9);
}

Таймер хочу отключать после каждой обработки, чтобы он не смущал МК своими частыми ненужными прерываниями.

Но так ничего не работает. Вот кажется, что ошибка тупая, но в упор не вижу, но ничего не приходит в голову. Через
HAL_NVIC_Dis(En)ableIRQ(TIM1_BRK_TIM9_IRQn); пробовал, тоже не получается.
1762 299863
Привет, Аноны! Мне мне нужно реализовать программную реализацию ликвидации дребезга контактов кнопки, подключенному к входу, по которому осуществляется прерывание.
МК - STM32F407, использую HAL.
Как это сделать?
Я инициализировал таймер, настроил на 100 мс/прерывание.
Дальше придумал вот что:
Нажимаю кнопку -> идет прерывание по кнопке -> выполняю всё что нужно в обработчике прерываний и в конце включаю таймер и прерывания по нему и запрещаю прерывание по кнопке -> срабатывает прерывание по таймеру, разрешается прерывание по кнопке, выключается таймер и прерывание по этому же таймеру (спорный момент, так и не понял, как это реализовать, чтобы работало), потом происходит выход из функции обработчика прерывания -> ожидание нажатия кнопки.

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_0)
{
extern uint32_t temp; temp++;
HAL_TIM_Base_Start_IT(&htim9);
HAL_NVIC_DisableIRQ(EXTI0_IRQn);
}
}

void TIM1_BRK_TIM9_IRQHandler(void)
{
HAL_TIM_IRQHandler(&htim9);
extern uint32_t timer_temp; timer_temp++;
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
//HAL_TIM_Base_Stop_IT(&htim9);
}

Таймер хочу отключать после каждой обработки, чтобы он не смущал МК своими частыми ненужными прерываниями.

Но так ничего не работает. Вот кажется, что ошибка тупая, но в упор не вижу, но ничего не приходит в голову. Через
HAL_NVIC_Dis(En)ableIRQ(TIM1_BRK_TIM9_IRQn); пробовал, тоже не получается.
1763 299872
>>299805
пздц просто нет слоа
1764 299894
>>299863
А что если реализовать по-другому? Если нажата кнопка, то запустить таймер и считать до 0.2 секунды например, если досчитал то сработало прерывание.
1765 299907
>>299863
Реализуется так же, как и для любых других МК: после срабатывания прерывания в переменной ставится флаг, что кнопка нажата, но не проверена и запускается таймер на 50-100мс, после которых проверяется, если кнопка все еще нажата - ставится флаг, что кнопка действительно нажата и выполняется действие.

флаг = 0

прерывание:
флаг = 1
таймер = 0

таймер:
если флаг == 1 и кнопка нажата и таймер >= 50
флаг = 2
таймер = 0
если флаг == 3 и кнопка НЕ нажата и таймер >= 50
флаг = 0
таймер = 0

флаг:
если флаг == 2
выполнить действие
флаг = 3
1766 299912
Котаны, срочно нужна ваша помощь.
Плата STM32F429I-DISC1
Когда подключаю к пека через порт USB-ST Link, всё работает замечательно. Но когда подключаю в розеку, программа не выполняется.
Пробовал и свой код, и пример из Кейла, результат одинаков. Может надо переключить какую-то перемычку?
Алсо, как правильно запитывать плату? То что я подключаю её в дебаггер для питания, это вообще правильно?
1767 299922
>>299912
Reset жал? Чота хуйня якась, у меня работает всйо.
1768 299928
>>299922
Жал конечно.
В итоге оказалось что прошивка глючная, обновился до последней - всё работает.
1769 300026
Кто знает как в HAL поморгать ws2812b используя связку дма+шим? В кубе включил четвертый таймер, выставил счёт до 90 без предделителя, это при частоте 72МГц получилось 800 кГц или 1,25 мкс, настроил шим выход на третий канал, подключил дма. В коде создал массив из 24 элементов uint32_t, пишу HAL_TIM_PWM_Start_DMA, в обработке прерывания дма ставлю остановку счета. По задумке первый диод должен загораться синим. В итоге нихуя. В дебаггере CCR3 таймера меняется, пятый канал дма работает. Где я мудак?
2017-11-02005626.png14 Кб, 956x288
1770 300757
Хелп, гайз. Пытаюсь приклеить проект из CubeMX в EmBlocks 1.11, кое-как прилепил, в итоге сборка проходит без ошибок, а пересборка вываливает несколько несоответствий типов переменных. Сталкивался кто-нибудь?
Офигел, кстати, от жирноты кода, генерируемого кубом, пустышка 30кило, когда в тех же условиях готовый семпл USB-HID от Raja весит около 24х.
Пытаюсь хбох джой сделать, но местных правок дескрипторов в семпле Раджи недостаточно, а от попыток понять как сие инициализируется в базирующихся на MX 1,5 проектах мозги в трубочку сворачиваются.
1771 300766
>>300757

>EmBlocks


Ни разу не трогал это. Но могу посоветовать попробовать тебе использовать мейкфайлы, генерируемые кубом. Или использовать https://github.com/ObKo/stm32-cmake
1772 300780
>>300757

это ты передаешь char туда где просят uint8 ?
1773 300781
>>300780
А какая разница, дебс?
1774 300782
>>300781

>А какая разница



ардуинщек?
1775 300786
>>300780
Нет, это чистый код кубика, сгенерированный под SW4STM32.
1776 300788
>>300782
Значения принимаемые char и uint8_t мне написал, быстрабля.
1777 300789
>>300788

char - Contains at least the [0, 255] range

uint8 - 8bit

at least - знаешь как переводится или ардуиншек?
1778 300791
>>300788

платформы меняются, стандарты меняются, компиляторы меняются, одно остаётся неизменным программы нужно стараться писать правильно а не как ардуинщек
1779 300796
>>300789
Посмотри ещё перевод как правило заодно. Кейл вот, в своём мониторе переменных тип uint8 отображает как unsigned char.

>>300791
То что там char вместо uint8, не очень хорошо конечно, но если речь идёт о передаче именно символа на 1602 например, то почему бы и нет.
1780 300797
>>300796

>Кейл отображает



где скочать правЕльный, как крякать?
1781 300798
>>300797
В интернете. Как утка.
1782 300799
>>300782
Тащемта на бытовых МК никакой разницы маня, потому что uint8_t это переопределение типа unsigned char. Разница может быть только в системах, где char не является 8битным. А компилятор ругается, потому что ему положено, ведь язык Си со слабой типизацией и компилятору надо выплюнуть хотя бы ворнинг о том, что ты хуйню написал.
1783 300800
>>300796

наверно нет ничего плохого в передачи char в uint8_t плохо задавать тупой вопрос когда компилятор явно кидает варнинг и умывает руки
1784 300802
>>300800
Тут двачую, да.
1785 300803
>>300800
передача char в uint8_t является как раз ошыбкой, потому что надо передавать unsigned char
1786 300807
>>300803

блять ищо один ардуинщег
откуда вы лезите то
1787 300813
>>300807

>ардуинщег


опачки, шизик теоретик программирования из стм треда прикатился
1788 300814
>>300813

>шизик теоретик



ну это слишком громкое определения для моей скромной персоны, хотя ладно продолжай
1789 300839
>>300800
Я всего-лишь присрал выхлоб куба к блоксу, а вы тут бучу подняли...
Так-то итак понятно было, что типы разные, но вдруг это нормально. Раз уж в кубе такая хрень.
1790 300843
>>300839
иди отсюда нахер ,не до тебя сейчас
1791 300936
есть целая гора АРМов (ATSAM4S И AT91SAM7S), надо их обнулить, проверить и продать. чем посоветуете это сделать?
1792 300942
>>300936

> чем это сделать


Можешь ногами попробовать или в очко себе затусуй их, бизнесмен мамкин.
1793 300949
>>300789

>char - Contains at least the [0, 255] range


c вики пытался скопировать и промахнулся?
Это unsigned char. Он же uint8_t
А char это -128 +127
на "at least" вообще насрать.
1794 300952
>>300949
>>300789
Вот открыл я стандарт C99 и ничего подобного не вижу:

>An object declared as type char is large enough to store any member of the basic execution character set. If a member of the basic execution character set is stored in a char object, its value is guaranteed to be nonnegative. If any o ther character is stored in a char object, the resulting value is implementation-defined but shall be within the range of values that can be represented in that type.


То есть возможная знаковость char-а определяется используемой кодировкой (исходников). А разрядность вообще нигде не прописана.

Но мне кажется что у того анона просто инклюдится что-то не то, тем более что это вылезает только при пересборке.
1795 300956
>>300952
Там насколько мне известно, проблема не в том, что char может быть знаковым, а в том, что он может быть 16 и более бит.

Это надуманная проблема и если ты пишешь под 1 архитектуру это все хуйня.
1796 300957
>>300956
Добавлю, что насколько мне известно uchar\char пользовались в старом стандарте, когда еще не было uintX всяких.
1797 300970
Кто-нибудь поднимал на мк usb хост для подключения к нему другого мк stm32 с запущенным на нём dfu? Не понимаю, что я делаю не так. Энумерация выполняется, но при попытке с хоста отправить какую-либо команду, дфу выставляет на шине stall, хотя вроде всё по их протоколу делаю.
1798 300972
>>300957

>Добавлю, что насколько мне известно uchar\char пользовались в старом стандарте, когда еще не было uintX всяких.



В таких случаях ручками писали макролапшу вроде

#if sizeof(int) == 4
typedef int int32

и.т.д.
bits.jpg68 Кб, 900x603
1799 300982
>>300972

нахуя всё это учитывать? стандарты-хуярты, можно просто нахуярить кода да и всё
1800 301035
>>300982
Нет, надо обратиться к услугам юриста, чтобы он растолковал что там за "аt least" и "large enough" в стандарте. Без этого даже не начинать код писать.
1801 301046
>>301035

>char - Contains at least the [0, 255] range


Только это не из стандарта, а копипаста с лживой википедии. В стандарте ничего даже отдаленно похожего не написано.
12335454546363636.png250 Кб, 700x1300
1802 301055
Хуй знает - кто, поэтому спрошу там...

Нужен WiFi мост (пушо WiFi уже есть по хате): что-то типа USB-UART переходника, чтобы команды и данные передавать с ПК на устройство и с устройства на ПК.

В навороченных 3D принтерах такая хуйня есть.

На чём можно запилить? Может какой WiFi модуль, вроде ESP8266 или похожий.

Как тяжело будет написать виндо-софт под это дело (аналог Putty для WiFi, например)?
1803 301068
>>301055

>аналог Putty для WiFi


Ты придумываешь что-то странное. Putty и так умеет в telnet, ssh, rs-232. Может сделать ssh будет сложновато, но telnet сделать точно несложно. Ну и хватает готовых мостов uart-wifi и uart-ethernet.
5456456145116584.png1,7 Мб, 1320x1800
1804 301077
>>301068

>Ты придумываешь что-то странное.


Я просто не знаю, как реализовать то, что я хочу: а именно хотелось бы избавиться от проводов для своей приблуды. А то опять придётся лепить 232-ую микру.

Кажется, нашёл то, что мне нужно:
https://esp8266.ru/forum/threads/proshivka-tcp2uart-perexodnika-s-nastrojkoj-po-web.146/

Но там много вскукареков, что esp8266 устарел и пока подробно не разбирался, бо нету есп.
1805 301083
>>301077
В таком случае может тебе будет проще взять https://ru.aliexpress.com/item/HLK-RM04/32770432200.html ?
1806 301114
>>301055
ESP8266 должен работать как мост. Ты ему данные и IP конца моста, а он МК данные.
1807 301139
>>301083
Хм, а вот это интерсная хуйня, первый раз слышу про нее. У меня есть парочка esp8266, у которых внутри какой-то экзотический core и писать под него ну его нах. Поэтому я планировал его использовать в AT mode, просто как UART. И подключать к STM32 так как пишу под него. А эта новая хуйня и есть STM32F4. Это же охуенно. Спасибо за линк. Весь вопрос - есть ли у них свой внутренний TCP стек как у ESP8266. Но должен быть.
1808 301178
>>187056 (OP)
а зачем собирать ядро?простотак
1809 301211
>>301178
К слову с всякими GPIO малинопроблемами сюда или к красноглазым в /s/?
1810 301315
>>301211

я спец по малинопроблемам, задавай свои ответы
1811 301345
>>301315
Ну я свои насущные проблемы +\- решил.
Но есть несколько долгосрончых вопросов.

Запуск linux в приближенном к RTOS режиме или достойные RTOS на малину, с которыми не надо пердолится что бы запустить на всяких клонах малины.

Смогу ли я найти инфу в +\- разобранном виде по всяким серьезным интерфейсам (LVDS\NAND) линуксо библиотеки к ним?
А то голые даташиты читать не охота, на это уйдет вечность.

Я начал ебать малину не ради смыва туалета с ПК, но планируется более серьезная задача, с которой самой по себе будет много ебли, добавлять уберпердоливание линукса, который я знаю почти не как - не очень охота.(тут имеется ввиду какие нибудь его глубокие ковыряния\пересборка\написание драйверов).
1812 301347
>>301345

>RTOS


linux может в RT немного
https://rt.wiki.kernel.org/index.php/Main_Page

>Смогу ли я


нет

>серьезная задача


>не очень охота



ну купи лучше ардуину
1813 301348
>>301347

>ну купи лучше ардуину



Зачем, у меня 3 отладки с ARM есть.
А если серьезно, я не хочу растягивать на годы, а с ебля с своими драйверами на GPIO или еше что, я боюсь только этим и обернется.
1814 301350
>>301345

> линукса, который я знаю почти не как


>но планируется более серьезная задача


Синхронный смыв двух туалетов с пк?
1815 301357
>>301348

а что за задачи?
дешовые CPLD стоят дешевле ардуины
а предиктобал у них лучше любой RTOS
решают любые малинопроблемы
1816 301360
>>301357
This >>301350

Что то вроде промежуточного сервера для связи разных интерфейсов в сеть.
С выборкой и выводом информации на GUI.
Не считая создания самих устройств.

P.S. тут серьезное != профессиональное, серьезно это для меня, м.б. для вас это и на пару дней.
1817 301372
>>301360

очередной раковый безумный дом с вещевым интернетом
бесполезная никому ненужная хуета без задач
1818 301376
>>301372
Нет. Но близко. Безумное рабочее место
1819 301378
>>301360

>Запуск linux в приближенном к RTOS режиме или достойные RTOS на малину


Зачем?

>С выборкой и выводом информации на GUI.


Пиши на питоне.
1820 301388
>>301378

>Пиши на питоне.


GUI и дисплей отдельная отдаленная задача. Если вообще понадобится.
И я слишком люблю фигурные скобки.

>Зачем?


А зачем вообще нужны RTOS? Для того, что бы у меня было гарантированное время реакции на событие.
1821 301412
>>301388
И какое же это гарантированное время? Как ты его посчитаешь? Как ты вообще сможешь гарантировать, что твой код выполнится за определенное время?
Анонам в ЧПУ и 3Д тредах хватает времени реакции обычного виндовса. Ну будет у тебя под обычным линуксом время реакции не более 0,1 с с вероятностью 99,995%, тебе этого мало?
1822 301433
Привет, анон.
STM32F429 (Discovery).
Не могу понять, как рисовать на экране? Создаю массив с цветами для пикселей, оно один раз рисуется и всё. Когда изменяю массив, вызываю HAL_LTDC_Redraw - ничего не происходит.
1823 301437
>>301412

>Я двачер, я знаю, что тебе нужно больше тебя.


Ну серьезно?

>И какое же это гарантированное время?


Необходимо получить, обработать и переправить сигнал с интерфейса на интерфейс, за время не влияющее на время человеческой реакции. Т.е. наверно 10мс, м.б. меньше. Причем получать и обрабатывать надо в тысячу раз чаще, чем пересылать.

>99,995%


Для этого Синхросмыва нужны 100%.
1824 301492
>>301437

>Для этого Синхросмыва нужны 100%.


100% не будет никогда. Причем даже ардуина будет надежнее, хотя бы из-за меньшего количества деталей.

>на время человеческой реакции. Т.е. наверно 10мс, м.б. меньше.


25 кадров в секунду, не слышал?
1825 301497
>>301433

> HAL_LTDC_Redraw


Я нашел только HAL_LTDC_Reload, но она не про то
1826 301500
>>301433
И при чем тут массив с цветами пикселей? Ты прямиком в видеопамять хуячишь?
1827 301501
>>301433

> STM32F429 (Discovery)


Мажор ебучий. Я только начал почитывать книги "Си на селе", "Программирование на Си в СССР", а он тут рисувать хочет. Да и вообще, этой йобы хватит ядерным реактором управлять.
1828 301502
>>301492
400мс время простейшей реакции.
100мс - замедление на 25%.

Какой нахуй 25 кадр? О чем ты вообще? Что твой мозг сам доводит их до беспрерывного движения ты не слыхал? А вставка картинок даже с 60 и больше герцами будет вполне себе заметна.

>100% не будет никогда.


Ну давай еще в философию ударимся.

>Причем даже ардуина будет надежнее, хотя бы из-за меньшего количества деталей.



При этом тормознутее и реализация мульитзадачности отдельная ебля. А писать на CИ все что я хочу это вообще охуеешь.
1829 301537
>>301501

>начал почитывать


Их уже я прочитывал.
А на пистон пересесть нельзя?
Может знает кто, есть пистон для АРМов.
1830 301539
>>301537

на джабу переходи ардуиншек
1831 301777
>>301501
Ну мне на "работе" её дали. А хули, она же вроде на авито 1.5к стоит, не?
>>301500
Там нет такого понятия как видеопамять, она общая.
Но вообще да, как оказалось надо просто перерисовывать прямо тот массив по-пиксельно (но видимо ещё мемкопи работает хуйпойми как на этой железке).
А вообще как мне подсказали, там у DMA есть функция сдвига массива.
1832 301779
>>301777

> у DMA есть функция сдвига массива.


Чо, блядь?
1833 301780
>>301777

> просто перерисовывать прямо тот массив по-пиксельно


Да ты ебанись. Там целая либа есть с рисовалками линий, кругов, квадратов, заливкой, прозрачностью, слоями, окнами, кнопками, графиками.

> буду рисовать массив попиксельно


Больной ублюдок
1834 301781
>>301780
Мне вот интересно, как ты битмапы этой либой собрался рисовать, тем более в реалтайме.
>>301779
Ну в ChromeArt есть функция аппаратного скролла. Что тебе не нравится?
1835 301796
Реквестирую помощь с иаром, двач. На атмеловских либах проект РЕДКО улетает в software_fault_handler(), стек вызовов пустой, точнее, только этот хендлер содержит. Как правильно найти функцию, из которой эксепшон вылетел?
1836 302225
Аноны, посоветуйте, пожалуйста, интересную книгу для изучения STM32. Библиотека - HAL.
Мануалы как-то тяжковато идут. Хотелось бы сначала чего-нибудь попроще, а потом и за мануалы взяться.
Язык английский/русский, без разницы.
1837 302247
Carmine Noviello - Mastering STM32, для общего ознакомления. Канал на youtube под названием narod stream.
1838 302260
>>302247
narod stream иногда ересь полную гонит - я ему пару замечаний уже писал по поводу или явных ошибоки, или бессмыслицы. Но там дядька адекватный, в залупу не лезет
1839 302288
>>302260
Ну пока что это самый полный канал про HAL, из тех что я знаю. Буржуи им больше пользуются, но особо делиться не хотят.
6cf[1].png360 Кб, 858x725
1840 302289
>>300757
Проект прилепил, три минимальных правки на дескрипторы и посылку данных сделал - контроллер инициализируется, но выпадает в hardfaul при отправке нужной строки. Пересоздал на всякий случай - один хер падает. Плюнул, перенёс https://github.com/alextrof94/STM32_CUBE_HAL_TRUESTUDIO_HID_XInput со всеми потрохами, собираю, запихиваю - да ёб её в рот, и тут зависон! Что я делаю не так?
Перенос проще некуда - ручное указывание папок с инклудами, девайн контроллёра и использование сгенерированого кубиком .ld файла.
1841 302388
>>302247
>>302260
>>302288
Спасибо, Аноны.
Narodstream знаю, пользуюсь им. Но я не люблю смотреть видеогайды, а статьи у него достаточно сумбурные. В общем, он мне понравился, но я хотел чего-то подобного, но получше.
За книгу спасибо! Очень классная!
bootloader stm32f105XX 1842 303833
сап радиач! Осваиваюсь с stm32f105, наигравшись с более младшими моделями типо f072, 103 и т.п. Столкнулся с проблемой заливки прошивки через STM'овский бутлодырь по UART. Вроде как отличия от младших мк от ст в общем то и нету, стандартно:
1. BOOT0 на VDD
2. Reset
3. Льем прошивку посредством Demonstrator через USB-TTL.
Да вот не тут то было... Demonstrator на отрез отказывается видеть МК. Пробовал различные скорости, менял таймауты, пропаивал контакты, пробовал другой адаптер USB-TTL. НИХУЯ.
При этом, данный мк ДО заливки и отладки основной программы, на этой же самой макетке определялся без труда. На аналогичном камне, та же ситуация. До прошивки основной программы(через SWD, среда KEIL5, CUBEMX, ULINK2) он определялся, после работает только через отладчик, через бутлодырь не видится. В даташитах читал, что для работы DFU, прошивка через USB, CAN на Connectivity line МК тактируется от внешенго кварца, и он должен быть на 8 либо 25 Мгц, при загрузке по уарт тактируется от внутреннего на 8, я уже от безвыходки и тот и другой попробовал, результат: ничего. Каким хуем это происходит?! Возможно ли, что при работе через SWD бутлодер затерся? Или же проблема в том что в основной программе тактируюсь я от HSE 12МГц, и UART от PLL?
1843 303836
>>303833
уебал в мануалы
скажи спасибо маче что похерила тот пост.
1844 303837
проблема в том что в основной программе тактируюсь я от HSE 12МГц, и UART от PLL?

кто тебе виноват что ты пишеш быдло код?
и твое понятие к битам контроллера сводица к вкл/вкл.
1845 303838
>>303836
Мануалы скурены уже. везде одинакого:
1. BOOT0 на VDD
2. Reset
3. Demonstrator
1846 303840
>>303838
схему нарисуй ка кты подключаеш
1847 303841
шизик за тебя пидора должен прощитывать защиту от дебила?
123.png15 Кб, 576x260
1848 303850
>>303840
Питание и кварц разрисовывать лень, все стандартно, на каждой ноге VDD по кондеру 100n, на кварце висят 2 кондера по 27pF.
1849 303872
>>303837
А по делу слабо, Мань?
1850 303873
>>300026
Понизь частоту и проверь осцилом, что у тебя генерится. Делов-то.
1851 303883
>>303833
А свд тоже не работает?
1852 303911
>>303883
Отладка по СВД работает, все шьется, отладка тоже функционирует.
1853 303915
>>303911
Зашей какую-нибудь мигалку и проверь после этого.
1854 303935
Есть тут те, кто сталкивался с SMBus протоколом на STM32 или вообще? Я делал связь между двумя STM по I2C, но там есть некоторые проблемы, с блокировкой шины слейвом, решил попробовать SMBus из-за наличия таймаута в режиме прерываний, по которому сбрасывается соединение + PEC и ALERT. Для мастера был пример и там впринципе все довольно просто (вызовы приема и передачи, как у I2C), но для слейва примера нету и вариант приема/передачи, как на I2C не работает: после подтверждения слейвом адреса он удерживает SCK до таймаута.
1855 303952
>>303915
Зашил, мигалку. В отладке все ок. Загрузчик не работает.
1856 303954
>>303833

>внешенго кварца, и он должен быть на 8 либо 25 Мгц, при загрузке по уарт тактируется от внутреннего на 8


Я понял не так. Делается попытка включить HSE, если включается то определяется относительно HSI к какой из стандартных частот ближе частота кварца. Если кварца нет, то загрузчик сначала подстраивает скорость UART по минимуму ошибок и только потом выдает готовность.
BOOT1 не забыл подключить?
1857 303955
>>303954
Сейчас отпаял кварц, залил проект из CUBEMX с мигалкой, где тактирование от HSI. BOOT1 нога PB2 припаяна к земле. Мигалка работает, делаю ресет зажимаю BOOT0, мигать прекращает. Парралельно смотрю в ком порт адаптера usb-ttl туда ничего не приходит.
1858 303958
>>303955

>Парралельно смотрю в ком порт адаптера usb-ttl туда ничего не приходит.


А разве бут-лоадер сам будет что-то слать?
1859 303959
>>303955

>туда ничего не приходит.


С чего бы должно что-то приходить пока оно не подстроит скорость? А скорость оно не подстроит пока не отправишь какую-то комбинацию достаточное количество раз.
Как вариант можно не ресет жать, а питание передергивать. Я только так и делал (но не с STM32), потому что кнопки на ресете не было.
1860 303967
>>303959
на 115200 подключился через putty, просто по клаве постучал, в ответ приходит всякий мусор. Попробовал на разных скоростях подключиться через Demonstrator ничего не вышло..
1861 303969
>>303967
Значит бутлоадер что-то отвечает, ищи проблему или в разводке или в подключении или в юсб-2-сериал
1862 304108
>>303969
Уже блять реально всё перепробовал. Если uart1 проинициализировать сообщения отправляются и принимеются. Уже реально всё варианты перепробовал.
1863 304116
Тред не читал, есть тут кто в техасовских TMS320 понимает? Пикколо или дельфино, например.
1864 304121
>>303833
Была как-то проблема с бутлоадером через usb.
Он при перезагрузке перебирает интерфейсы по-очереди, поэтому проверь входные линии остальных возможных интерфейсов, они должны быть подтянуты.
1865 304138
>>304121
Проблема решались. Макетку я питал от того же самого usb-ttl. Попробовал запитать отдельно с БП, от переходника только RX TX подключил, все определилось и заработало.
1866 304139
>>304138
лох
1867 304255
Анон, подмогни.
48МГц настройка дефолтная CMSIS, предделители 1/1/2, f103c8
int main(void)
{
//Set_System();
// USB_Interrupts_Config();
// Set_USBClock();
// USB_Init();

RCC_APB1PeriphClockCmd((RCC_APB1Periph_PWR|RCC_APB1Periph_TIM4), ENABLE);
RCC_APB2PeriphClockCmd((RCC_GPIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO), ENABLE);
GPIOA->CRL |= GPIO_CRL_MODE3;
TIM4->DIER |= TIM_DIER_UIE;
TIM4->PSC = 767;
TIM4->CR1 |= TIM_CR1_CEN;
NVIC_EnableIRQ(TIM4_IRQn);
while (1)
{
}
}

void TIM4_IRQHandler(void)
{
TIM4->SR &= ~TIM_SR_UIF;
GPIOA->ODR=GPIO_ODR_ODR3 & ~(GPIOA->IDR & GPIO_IDR_IDR3);
return;
Проблема в том, что ожидаю интервал между прерываниями в 768 тактов (16мксек, 48МГц/62500Гц), а получаю невменяемую хуйню. Где я проебался? Второй пик прямо на 0сек.
1867 304255
Анон, подмогни.
48МГц настройка дефолтная CMSIS, предделители 1/1/2, f103c8
int main(void)
{
//Set_System();
// USB_Interrupts_Config();
// Set_USBClock();
// USB_Init();

RCC_APB1PeriphClockCmd((RCC_APB1Periph_PWR|RCC_APB1Periph_TIM4), ENABLE);
RCC_APB2PeriphClockCmd((RCC_GPIO|RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO), ENABLE);
GPIOA->CRL |= GPIO_CRL_MODE3;
TIM4->DIER |= TIM_DIER_UIE;
TIM4->PSC = 767;
TIM4->CR1 |= TIM_CR1_CEN;
NVIC_EnableIRQ(TIM4_IRQn);
while (1)
{
}
}

void TIM4_IRQHandler(void)
{
TIM4->SR &= ~TIM_SR_UIF;
GPIOA->ODR=GPIO_ODR_ODR3 & ~(GPIOA->IDR & GPIO_IDR_IDR3);
return;
Проблема в том, что ожидаю интервал между прерываниями в 768 тактов (16мксек, 48МГц/62500Гц), а получаю невменяемую хуйню. Где я проебался? Второй пик прямо на 0сек.
1868 304273
>>304255
...в общем, стмка попросту не вывозила подтягивать пин с подвешенным к нему контроллёром.
1869 304637
>>187056 (OP)
Пагни, насобирал наконец денег на STM32L152, купил, возрадовался, а на сайте ST пишут NRND (нирикамендуют в общем). Как жыть дальше?
1870 304660
>>304637
Учи и работай то, что есть. Следующие поколения похожи на предыдущие, так что всё путём.
1871 304670
>>304637
Не рекомендовано для новых разработок.

Ты же не собираешься тиражировать?
1872 304683
>>304670

>Ты же не собираешься тиражировать?


Да тут хоть бы с одним совладать, а не закинуть в ящик.
1873 304685
>>304683
Это предупреждение в основном для тех, кто разрабатывает устройства для производства.

Чтобы не получилось так что для свежеразработанной хуитки не найти деталей.
1874 305571
Ананасы, тихо вкатываюсь в STM32, и сразу оно меня пытается наебать.

Простейшая хуйня без HAL - работает, всё кристально понятно.
Беру рантайм либы для 32F429 discovery, хочу ПРОСТО ПОДКЛЮЧИТЬ дисплей по SPI.

Оно вместе с дисплеем тянет кучу всякого говна, включая SPI (логично), DMA, DMA2D, RTOS и кучу прочей хуйни.

После добавления всего-всего попытка собрать проект, и сразу - хуй.

Получаю три десятка ошибок
RTE\Graphics_Display\STM32F429ZITx\LCDConf.c(556): error: #20: identifier "LTDC_PIXEL_FORMAT_ARGB4444" is undefined
Причина - дисплей опирается на либу LTDC (пикрил), которая подключена, в проекте файл есть (пикрил 2), определения констант там есть, толку - нет.

Что за хуйня. препятствующая вкатыванию? Это кривой HAL или мои кривые руки?
1875 305585
>>305571

Йохохо.

Отлично, нашел файл .h конфигурации HAL, там закомменчены модули DMA2D, LTDC и еще пару, несмотря на то, что в енвайронменте они есть.

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

Закомментил, закомментил, скомпилировался пустой проект. Залил - не работает нихуя, даже помигать светодиодом, лол.
Порты, помеченные как output в CubeMX таковыми не являются, например.
Потер тестовый проект, ушел спать. Нахуй такое говнокодие?
1876 305601
>>305585

> Нахуй такое говнокодие?


В стм32 своя атмосфера, ты просто еще не проникся. Я не стал проникаться и закинул девборду нахуй.
1877 305605
>>305571

>Это кривой HAL или мои кривые руки?


На счет HAL не знаю, т.к. не пробовал. Но сейчас проблемы явно не в нем, а с руками.

>в проекте файл есть (пикрил 2)


Что-то я никакого файла не вижу. Это на кейловский device pack похоже. Проблема может быть из-за того что в этом девайс паке старая версия библиотеки, либо этот девайс пак неправильно работает или он просто не рассчитан на использование с кубом. По моему кейловский девайс пак нельзя использовать вместе с кубом, хотя бы потому что могут не совпадать версии.

Если бы ты пользовался CMake или просто make, то таких проблем точно не было бы.
1878 305607
>>305585

скочай кейл потом крякой
1879 305611
>>305607
кря-кря-кря
ниработает!!!
Clipboard02.jpg69 Кб, 504x591
1880 305626
>>305605

С компиляцией разобрался, только толку мало (см. >>305585).

Есть еще вопрос - потянул рабочий пример работы дисплея, там довольно компактно всё и работает.

Пикрил:

Я уже выкупил, что пример они собирают с использованием Cube classic, где всё ручками.

Но повторить тот же набор модулей у меня не получается, тянет за дисплеем гору говна.

Как это превозмочь?
Про CMake слышал, но как-то ж блядь работают с кейлом?
1881 305637
>>305626

> Cube classic, где всё ручками.


Эт чо за хуйня?
1882 305638
>>305637

Это конфигурация процессора через RTE_Device.h, где руками правишь конфигурацию периферии.
Настраивать GPIO и таймеры там нельзя, но остальное - можно.
1883 305656
>>305626

Дисплей запустил на чистом проекте, ура, бля.

Как запустил - выяснил, что приложение падает в переполнение стека (дебаггер это хорошо), и скопировал RTE_Device.h с примера.
Разницы между ними я не очень то нашел, но блядь заработало.
1884 305660
>>305656
В шоке от ардуино-стиля осваивания новых железок
1885 305670
>>305607
Поддерживаю этого анона.

>>305626

>Про CMake слышал, но как-то ж блядь работают с кейлом?


На всякий случай скажу, что кейл использует компилятор http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472k/index.html Ничто не мешает использовать этот компилятор отдельно.
1886 305675
>>305660

Будь в шоке и дальше, но на сюда я пришел из божественно простого avrasm и avrc, из леса понятных даташитов, без пердуинских библиотек.

А в среде стм32 мне немного неприятно.

Но это не по теме. Инициализация дисплея проходит, он чернеет, и дальше - нихуя.

Установка цвета, вывод текста - не происходит ничего.

Ладно, перекидываю все исходники из примера в свой проект, включая мейн.с

И... Нет отображения на дисплее.

Как так то?

В ходе экспериментов выяснил, что мой проект компилируется и линкуется любым компилятором, в т.ч. и GCC11, а пример, который работает, НЕ линкуется в gcc11 с таким матюком:
.\Output\Example.axf: Error: L6242E: Cannot link object __gui_sprite.o__ as its attributes are incompatible with the image attributes.

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

>>305607
Вот это что означает? Да, сначала скачал, потом крякал.
p.jpeg5 Кб, 279x167
1887 305676
>>305675

это означает что ты ардуинщек
1888 305677
>>305571
>>305675
Ояебу, у самого где-то пылится 429я в блистере, никогда не возникало с ней проблем при использовании куба+кейла. Дисплей как по FSMC так и по SPI работал без проблем с HAL либами, подключал к ней разные камеры по DCMI - тоже никаких проблем, а DMA так это вообще дар божий после 8-битных AVR. Но я в итоге заказал у китайцев кучу разных F0 и F1 20/48/64 и пару 100-ногих , потому что оригинальные платы обвешаны дисплеями и датчиками, которые в большинстве ситуаций нахуй не нужны и проще их на проводках цеплять.
1889 305678
>>305675

>А в среде стм32 мне немного неприятно.


Видно, как ты разбираешься в документации, таская файлы мышкой туда сюда. Ардуинщик это навсегда.
1890 305682
>>305678
Для чего в Кейле кучка дополнительных файлов RHE? Костыль для кейлокомпилятора?
1891 305709
>>305682

>файлов RHE?


Где ты их увидел?

>кейлокомпилятора


>>305670
У них вроде как нет своего компилятора для армов. Хотя возможно какое-то участие в разработке armcc они принимают.
1892 305714
>>305709
https://en.wikipedia.org/wiki/Keil_(company)

Keil provides a broad range of development tools like ANSI C compiler, macro assemblers...

In October 2005, Keil (Keil Elektronik GmbH in Munich, Germany, and Keil Software, Inc. in Plano, Texas) were acquired by ARM

Тащемто armcc теперь их собственный компилятор, а вернее сказать keil это ide армовского компилятора.
1893 305719
>>305709
RTE, прошу прощения.
К примеру, здесь есть >>305626
Аттачится к любому проекту.

>The Run-Time Environment (RTE) in MDK Version 5 enables you to use validated Software Components in your project.


Я так и не смог понять, зачем мне этот рантайм.
1894 305737
>>305714
Это хорошо, но все равно непонятно кто именно теперь разрабатывает этот компилятор. Так то armcc можно скачать с arm.com отдельно от кейла.

>>305719
Это потому что >>305678 Так-то у них на сайте и в справке все это расписано.

>Software Packs may be added any time to MDK-Core or DS-MDK making new device support and middleware updates independent from the toolchain. They contain device support, CMSIS libraries, middleware, board support, code templates, and example projects.


И когда ты выбираешь в кейле свой микроконтроллер, автоматически подключается этот пак, как видно на твоих скриншотах.
Наверное единственный способ не использовать этот пак, это http://www2.keil.com/mdk5/legacy либо использовать armcc отдельно от кейла.
Тебе в:

>либу LTDC (пикрил), которая подключена, в проекте файл есть (пикрил 2)


ничего странным не показалось? Почему это библиотека вдруг подключается одной галочкой?
1895 305758
>>305737
Теперь arm == keil, у них даже в логотипах на сайте "arm" одинаковым шрифтом написано, ведь arm поглотил keil и сделал свой компилятор официальным для него со всей вытекающей поддержкой.
1896 305853
>>305737

Спасибо, анончик, с паками и либами на меня более-менее снизошло просветление, разобрался.

Основная проблема вкатывания (а я только вкатываюсь) в STM32 это, сука, три разных подхода к написанию всего. Первые пишут в Standart Perefireal Library, и не пишут, что подход устарел, и даже повторить за ними какой-то пердолинг сегодня невозможно, ибо SPL уже не входит в стандартный пак.

Другие говорят HAL - говно, не предлагая ничего взамен, дрыгают регистрами.

Третьи запускают CubeMX, тыкают мышкой, не публику при этом даже исходников.
1897 305871
CubeMX + HAL
Остальное от лукавого.
1898 305872
>>305853

> Первые пишут в Standart Perefireal Library, и не пишут, что подход устарел


Моё мнение, надо выбрать один подход. Но если ты работаешь с Кубом, будь готов дёргать регистрами, ибо прерывания надо писать короткими, а не как в HAL-е. Если же быстродействие тебе не нужно, и всё, что ты делаешь -- термостатируешь чайники, тогда бога ради, HAL -- это твоё всё. Быстро и удобно.
Моя практика показывает, что в более-менее серьёзных проектах приходится бороться за время выполнения, а значит придётся оптимизировать, т.е. отказываться от лишних абстракций в виде HALа, и даже SPLя, как ни странно.
1899 305873
>>305872

>отказываться от лишних абстракций в виде HALа, и даже SPLя, как ни странно


Я тебе больше скажу, чтобы понизить частоту с 24 до 16 МГц, при этом уверенно ловить событие, мне пришлось банальный опрос внешнего порта переписать на ассемблере. Такой пердолинг нужен не каждому. Мне был нужен, дабы снизить потребление контроллера. Был вариант использовать NVIC и EXTI, чтобы ловить событие, но тогда, во первых, снизить частоту с 48 (максимума) удалось только до 24... Во вторых, при одной и той же частоте, программный опрос без использования NVIC и EXTI оказался энергетически эффективнее, потребление контроллера что-то в районе 3мА на фоне 5мА (при включенных NVIC EXTI).
1900 306618
openstm32.org вообще легитимный сайт? Почему они вообще настолько открытые, что полсайта скрыто за логином?
1901 306623
>>306618

>openstm32.org



сам факт того что можно писать код лучше чем индусо-обезьяны, может стригерить арм-консорциум против них, а пока вроде норм всё
1902 306688
Накатил lwip, хочу сделать нормальную отправку json браузеру. Как это сделать, не меняя http_server.c? Разработчики сделали ssi, но это какое-то говно. Собираюсь передавать статусы устройств.
1903 306851
Народ, есть ли у использования realloc какие-либо нюансы? Маллок отрабатывает нормально до конца кучи, реаллок же выделяет пока мк в хардфолт не свалится.

Кейл 5, стм32, компилятор тоже пятой версии.

BuffArray->Pointer = malloc (5 + i + 1);

int l = 0;

for (int n = 5 + i; n != 0; n--)

{

BuffArray->Pointer[l] = l + 0x30;

l++;

if (n == 1)

{

char *k = BuffArray->Pointer;

k = realloc(k, (n + 5 + 1));

l--;

if (k)

{

BuffArray->Pointer = k;

n += 5;

l++;

}

}

}
1903 306851
Народ, есть ли у использования realloc какие-либо нюансы? Маллок отрабатывает нормально до конца кучи, реаллок же выделяет пока мк в хардфолт не свалится.

Кейл 5, стм32, компилятор тоже пятой версии.

BuffArray->Pointer = malloc (5 + i + 1);

int l = 0;

for (int n = 5 + i; n != 0; n--)

{

BuffArray->Pointer[l] = l + 0x30;

l++;

if (n == 1)

{

char *k = BuffArray->Pointer;

k = realloc(k, (n + 5 + 1));

l--;

if (k)

{

BuffArray->Pointer = k;

n += 5;

l++;

}

}

}
1904 306999
>>306851

>Народ, есть ли у использования realloc какие-либо нюансы? Маллок отрабатывает нормально до конца кучи, реаллок же выделяет пока мк в хардфолт не свалится.


>


>Кейл 5, стм32,



Расскажи ка мне, нахуя тебе там понадобилась динамическая память?
1905 307051
>>306999
Обработка ответов по юарту. Есть идеи получше?
1906 307086
>>307051

>Обработка ответов по юарту. Есть идеи получше?


Вообще, динамическая память, это плохой тон, ибо ресурсов отжирает кучу. Если у тебя не стоит более-менее нормальной ОСи, то в этом нет никакого смысла. Вангую, что у тебя не выше STM32F4xx, а значит и нормальной оси у тебя нет.
Размещай буфер статически такого размера, чтобы тебе хватало. Всё равно у тебя длина ответа не произвольная.
1907 307089
>>307051
Фрагментации кучи не боишься? Вроде как любой аллокатор не может гарантировать что память со временем не фрагментируется полностью.

>Есть идеи получше?


Без понятия что за ответы тебе нужно обрабатывать, но наверняка можно обойтись каким-нибудь FIFO или стеком.

>>307086

>не выше STM32F4xx, а значит и нормальной оси у тебя нет.


А на F7 значит есть? Там MMU есть что ли?
1908 307112
>>307086

>Всё равно у тебя длина ответа не произвольная


На некоторые команды я имею примерное представление о длине ответа. Некоторые команды выдают списки зависимого от внешних условий количества строк. И ещё ответ, у которого в начале прописана длина входящих данных, может выпасть в любое время после инициализации.
>>307089

>Фрагментации кучи не боишься?


Подолгу там залёживаться не будет ничего, запросил, получил кучку строк, вывел на экран, юзер выбрал одну, сформировал из неё запрос и очистил всё сразу.
1909 307166
>>307089

>А на F7 значит есть? Там MMU есть что ли?


На самом деле, вроде даже на 373 можно линух накатить (могу ошибаться), но на 4xx -- точно, у них уже имеется контроллер внешней памяти (а-ля твой MMU), встраивающий её адресно "внутрь" системы, что позволяет процессору не думать, что он работает с внешней памятью. Отсюда появляется возможность понавесить там туеву хучу оперативки и не заморачиваться с её выделением. Соответственно и какой-никакой бизибокс поставить, с менеджером памяти, планировщиком и куртизанками.
>>307112

>ответ, у которого в начале прописана длина входящих данных, может выпасть в любое время после инициализации.


Я вот что тебе скажу про передачу данных. TCP/IP придуман давно и не зря, так же как и RS-232. Я это к чему веду: длина пакета ограничена и не может превышать некоторого значения (это из TCP/IP), а так же существуют методы уведомления вашего собеседника о готовности к принятию новых данных (это от RS-232). Таким образом, всё же известна некоторая максимальная длина пакета. Вот её и надо статически выделить и использовать.
Тебе товарищ выше про фрагментацию кучи всё правильно сказал... Даже если ты программируешь в реальной "ПИсюковой" системе, за такими делами лучше следить.
Касательно "над UART" системой обмена сообщениями: ты сам определяешь протокол, или кто-то его за тебя определил. Невозможно не ограничивать размер сообщения практически, только теоретически. Поэтому проблема высосана из пальца.
Задавай вопросы, аргументируй, спорь, если не всё понятно, я буду рад тебе помочь, Бро! Люблю людей ДУМАЮЩИХ!
1910 307213

>у них уже имеется контроллер внешней памяти (а-ля твой MMU)


Ты все перепутал.
1) У STM32 (и других) контроллер внешней памяти есть почти во всех сериях, но только для многоногих (от 100 выводов) корпусов. Только со SDRAM они работают начиная с F4, но ничего не мешает приделать PSRAM хоть к стоногому STM32F103 и запускать там uclinux.
2) MMU не имеет никакого отношения к контроллеру внешней памяти. Это для организации виртуальной памяти, без которой нормальный линукс не работает. Почитай хотя бы википедию.
3) Хотя через контроллер внешней статической памяти можно цеплять память, чаще его используют для взаимодействия с периферией, например с дисплеем или ПЛИС.
1911 307214
1912 307264
>>307166
Отвечающее устройство - стороннего производства. RTS/CTS у него при должном подходе заводится, так что подумаю, как это можно использовать если вышестоящие согласятся использовать в проектах более чем 3 ноги, конечно, это разом решит чуть ли не половину проблем.
Тут даже не в длине дело. При большом желании девайс может засрать всю память мк и не пукнуть. Я бы с радостью не использовал аллокейт, но в моих знаниях дыра, а аллокейт предоставляет довольно простой метод выдачи массивов под строки без возни с десятком указателей за присест. Если выделить статику под 5 строк максимальной длины - выйдет 10кб памяти, которая будет пустовать большую часть времени, при этом под случай с выдачей 20 относительно коротких строк он на подходит. Если же готовиться к 20 строкам - это, простите, уже 40 килобайт просранного места, к тому же, столько не будет в мк.
Можно, конечно, парсить прямо в FIFO-буфере, отдавая указатели сторонним функциям, но тогда придется следить, чтоб сверху чего не прилетело.
Так что я дунно, подвязываешь в одном месте - коптишь в другом. Пара советов были бы хороши, конечно.
1913 307315
>>307264

>Если выделить статику под 5 строк максимальной длины - выйдет 10кб памяти


Ничоси! Это до 2048 символов в каждой строке??? С трудом представляю нахера такое кому-то надо (и, самое главное, нахера так убого сделано).
1914 307318
>>307315
Вот поэтому я все больше склоняюсь к применению управления потоком.
1915 307367
>>307318

>я все больше склоняюсь к применению управления потоком


Но вот что я тебе скажу. Скорость по UART вероятно небольшая, и тебе, вероятно, надо не всю строку? Если так -- можно DMA и кольцевой буфер с обработкой по мере заполнения, либо вообще налету обрабатывать прерываниями, но это не так красиво.
1916 307710
Всем здравия! Вопрос такой: кто-нибудь делал временную синхронизацию с помощью GPS приемника и Raspberry? То есть используя сообщения NMEA и интерфейс PPS. Суть в том, что я не смог найти информацию будет ли данная синхронизация (например с помощью ntpd) мешать записи самих сырых данных с приемника с помощью например RTKLIB?
1917 307712
>>307710
Если в Raspberry есть два UART, то почему бы не соединить их входы вместе? Если UART один, то наверное можно через socat, но это вопрос наверное для /s/.
1918 307720
>>307712
Там просто от приемника идет только один USB провод. Слушай, что-то я совсем туплю сегодня. Можно же обычный разветвитель поставить. Приказать ntpd использовать данные с USB1, а через разветвитель подавать сигналы приемника на USB2 и с него записывать на флеш-накопитель.

Пф.. Что-то совсем от постоянного переедания мозги не работают. Спасибо анон.
Аппаратная стабилизация оборотов 1919 308480
Приветствую Армчан!)
Чуть разобрался с таймерами STM32F030F4, pwm работает, но хочется большего. Можно без участия ядра застабилизировать частоту вращения допустим кулера получая от него период вращения с тахометра (1 или 2 имп на оборот) ?
И если да, то усложнить - когда на переключении тахометра по фронтам и спадам висит борода?
1920 308499
>>308480

>без участия ядра застабилизировать частоту вращения допустим кулера


Нет. Допустим один таймер в режиме ШИМ-выход формирует заполнение для питания, а другой в режиме PWM-input или CC-input, замеряет период вращения. То процессор, всё равно должен читать со входного таймера и корректировать выходной. Можно оптимизировать, обрабатывая это дело в прерывании по Update, а RepetitionCounter сделать таким, как вздумается, чтобы Update происходил не каждый Reset...
1921 308571
>>187056 (OP)
Парни, через сколько лет изучения ARM можно начинать подключать дисплей к stm32f429?
15135400808653.jpg72 Кб, 604x603
1922 308572
>>308571
Подключил дисплей спустя три дня ебли на ассемблере. Забил хуй и пошел учить Си.
1923 308574
>>308499
понял... не критично пока, но думалдля саморазвития покопать
1924 308681
>>308572

>спустя три дня ебли на ассемблере.


до этого ассемблерный институт закончил?
1925 308685
>>308681
Из ассемблерного садика сбежал в ассемблерный монастырь, постигать суть величия ассемблера.
Криворучка 1926 308712
Интересные вопросы в тред: я у мамы нищеброд, но мне нужен один из топовых чипов stm32, с частотами не ниже 200 мгц. как можно сэкономить?
1927 308727
>>308712
заказать у китайцев

МК F4 (180 МГц): 10-15$

отладочные платы с МК F4 (180 МГц): 27-37$

МК F7 (216 МГц): 14$ и больше, если получится найти поштучные лоты

отладочные платы с МК F7 (216 МГц): 26 и 38$ это 2 самые дешевые (платы для мультикоптера с барометром и еще всякими приблудами на них)
1928 308728
>>308727
а самая дешевая отладочная плата с приличным F7 без всяких дисплеев и прочего стоит 42$+

https://ru.aliexpress.com/item/Spot-NUCLEO-F767ZI-Nucleo-development-board-STM32F7-series-development-board-new-original-ST/32788206872.html
1929 308734
>>308571
Совсем больной...

Со стороны контроллера тебе понадобится в зависимости от интерфейса дисплея GPIO с таймером / i2c / FSMC или как там его, LED модуль есть какой-то на старших чипах.

Главное - очень внимательно прочитать доку на дисплей, особенно пример конфигурации. По опыту, большая часть проблем - от криво прочитанного описания интерфейса. Перепутана модель, подтип 8080, неправильное питание - вот это все.
1931 308767
>>308765
К такой плате надо отдельно отладчик покупать. А вообще правильно говорили про нуклео, за примерно 2,2к берешь почти топовый камень без лишней обвязки, только кварц, сетка и юсб.
1932 308775
>>308767
Когда-нибудь отдельный отладчик все равно понадобится, а пользоваться отломанным от той платы ст-линком без корпуса по моему неудобно. Тем более китайский J-Link стоит недорого и поддерживает не только стм.

>>308765
Там шаг между выводами вроде бы 2 мм, а не 2,54 — очень неудобно будет.
1933 309046
Использую под линупсом arm-none-eabi и openocd. GDB выполняет step/next хуеву тьму времени (несколько секунд иногда), при этом в IAR такой хуйни на том же камне с тем же отладчиком не наблюдал. Если в gdb ставить брейк на следующую строку или просто переходить к строке с указанным номером (> u 42 например), то выполняется быстро. Ещё при step или next я вижу как openocd выводит значение PC при его каждом изменении. Гуглить не помогло, нашел только на форуме без ответа тред с такой же проблемой. Что я делаю не так, как ускорить отладку? Заёбывает ждать по полчаса.
1934 309050
>>309046
Попробуй J-Link GDB server, у меня нормально работает, правда под виндой. Лет пять назад я пытался пользоваться openocd с эклипсом под виндой - тоже все тормозило.
Возможно неплохим вариантом будет https://www.segger.com/products/development-tools/ozone-j-link-debugger/
1935 309284
сап, раданы, такой вопрос, удалось организовать обмен данными между ПК и stm32 посредством создания виртуального последовательного порта на базе USB (USB CDC Virtual com port).

Какой самый простой способ организовать такой же обмен данными, но на базе ethernet, т.е. по витой паре? В дальнейшем допились обработчик и делать что-то при получении каких то команд.
Плата Nucleo-F767ZI, rj45 на борту.
1936 309296
>>309284
Самый простой способ это слать фреймы с собственным произвольным форматом. На компе для приема/передачи таких пакетов можно использовать pcap.
1937 309303
>>309284
Для начала тебе понадобиться сетевой стек.
Под контроллеры довольно популярные uip и lwip.
lwip мне нравится больше, под него есть годная документация и примеры, а также форум с баг-трекером и вопросами, очень выручал в свое время.
Также у ST есть апноты с использованием lwip в разных режимах, типа TCP-серврер, TFTP и т.д.

Если хочешь обмениваться простыми сообщениями с ПК, то на контроллере подними TCP-сервер, на ПК сделай клиент на удобном ЯПе, подключайся к контроллеру и шли на него свои пакеты.

Сразу хочу предупредить про алгоритм Нейгла. Это такая штука, которая повышает КПД работы сети. Для этого она ждет пока накопится некоторое количество данных на передачу и только потом передает. То есть если твои пакеты будут мелкого размера, то они:
а) не будут отправляться сразу;
б) когда отправятся, они будут склеены в один большой пакет.
Поэтому иногда его надо будет вырубать.
1938 309313
>>309296
спасибо, пошукаю в эту сторону
1939 309315
>>309303
Значит таки сервер поднять придется, хорошо, и да, я тоже смотрел в сторону LWIP.
Отдельное спасибо за напоминания алгоритма Нейгла, для моих задач как раз принципиальна моментальная реакция МК на получаемые с ПК команд. Команды как правило не более 20 символов.
Мог бы ты анончик, написать мне в телегу @krounis, дабы я не плодил треды и вопросы в дальнейшем?
1940 309324
>>309315
Для таких требований, кстати, лучше подходит USB hid. У него в отличие от CDC гарантированное время отклика, т.к. он работает на interrupt фреймах, при размере пакета от 32 байт - на USB fs
1941 309327
>>309315
Сорян, у меня нет телеги.
Насчет Нейгла - это просто мой вьетнамский флешбек.
1942 309348
>>309327

так блять кто сказал алгоритм Нейгла? это ёбаная хуета кототорую нужно постоянно отключать опцией nodelay? Нахуй это нужно применительно к микроконтролерам?
1943 309376
>>309324
согласен, но мне нужна передача именно по витой паре, т.к. пк и устройство на мк может находиться достаточно далеко друг от друга, USB такую длину не выдержит
1944 309377
>>309327
а на мыло напишешь?) gameforsp[vtrikerANUSgmaij3ylPUNCTUMcZK9om
1945 309382
1946 309383
>>309382
USART надо использовать для организации связи по интерфейсу RS485?
1947 309385
>>309383
UART-a хватит
1948 309386
>>309382
ТЗ обязывает организовать связь именно по сети
1949 309397
>>308765

> в чем-то подвох?


«2.0mm header pitch» Заебёшься искать подходящие ответные разъёмы. Плюс вставлять/вытаскивать их надо аккуратно — из-за трения оно получается очень тугое и можно легко ножки погнуть.

Мимовладелец похожих платок от WaveShare
1950 309768
Есть Orange pi zero на armbian, я к нему прицепил дисплей на чипе ili9325, инициализировал и в терминальном режиме все работает как надо. Но мне нужно выводить на него изображения.
Можно использовать утилиту fbi:
sudo fbi -d /dev/fb8 -T 1 -noverbose -a 1-img.jpg
А можно писать во фреймбуфер напрямую:
tail --bytes 153600 img.565 > /dev/fb8
только картинка должна быть 16-битной и в формате RGB565.
Но с цветами какая-то проблема, будто половина их съедается. Может проблема в битности, никто не знает?
Второй пик для сравнения с оригиналом.
1951 309781
>>305872
А что насчёт libopencm3? Выглядит на первый взгляд неплохо -- нет монструозных обработчиков с опросами регистров, кучи обёрток и прочих прелестей hal'а, там вроде даже и обработчики прерываний самому писать придётся. Но при этом функций для работы с периферией достаточно. Чем-то на spl старый похоже, по-моему. Мне пока не доводилось использовать.
1952 309783
>>309768
Может быть, нужно проверь другие варианты (например, 555)
1953 309802
Почему передача по spi/qspi (на остальных не проверял) может завершиться с ошибкой dma, если код исполняется из sram? То же самое из внутренней флешки работает, а если линковать на ram, копировать туда при старте и исполняться оттуда, то в какой-то момент hal дёргает errorCallback, а в коде ошибки стоит ошибка dma. В документации ничего такого не нашёл касательно использования dma при выполнении из оперативки, что я не так делаю? Проц stm32f7.
1954 309808
>>187056 (OP)
Начал ваять ЙОБУ на стм32а429 и ожидаемо обосрался. Подрубил SDRAM, LCD RGB666, собрался подрубать Ethernet, а тут вылезли конфликты пинов. Даже в RMII-режиме TX_EN либо конфликтует с В3-дисплея, либо с шиной данных SDRAM. Шо делать-тоооо?
1955 309818
>>309808

>Шо делать-тоооо?


Пробуй разрешить конфликты, используй STM32CubeMX. Если не удаётся разрешить в выбранном корпусе -- бери корпус с бОльшим количеством ног.
1956 309820
>>309818

>с бОльшим количеством ног.


Уже допер. 429ZIT уже лежит в коробке, а с большими ногами покупать надо. Захуярю пробу без Ethernet, подрублю ESP для сети. Следующую полоумную избу буду делать на более многоногом.
1957 309822
Аноны, кто-нибудь использует плюсы на микроконтроллерах? Почему-то часто слышал, что это не тру и вообще смерть мерзкая от них, а тут наткнулся на статью на embedded.com, там автор поясняет, что плюсов от плюсов больше, чем минусов, и вообще большую часть минусов можно обойти.
1958 309826
>>309822
Благодаря ардуино, плюсы нынче - самый популярный язык для мк, лол.
1959 309827
>>309826
Эка я отстал от жизни, на армы тоже распространяется?
1960 309837
>>309822
Основная проблема плюсов на мк - менеджмент кучи. А для этого хочется иметь мму и операционную систему.
1961 309838
>>309827
Да, ты и впрямь из криокамеры.
Гугли stm32 arduino.
1962 309856
ST для части своих железок предоставляет X-CUBE-* пакеты; их принципиально возможно подцепить к STMCubeMX (чтобы хотя бы Middlewares можно было галкой включать) или все нужно руками рассовывать по проекту?
1963 309861
>>309838
Да я просто сидел на пропёрженной кафедре и писал простое говно под совсем простые мк, а сейчас ушёл в другое место, а тут и железки другие, и задачи другие, а я блять как только что с пальмы слез.
1964 309909
>>187056 (OP)
Снова мудило с полоумной избой выходит на связь. Нашел два стула:
1. 180Махов, 176 пинов, 2Мб флеша
2. 216Махов, 208 пинов, но с 1Мб флеш
?
1965 309990
>>309909

>Нашел два стула


Да поставь ты ему внешнюю память уже, если тебя она напрягает...
1966 309992
>>309909
Не забудь про периферию, чтоб было нормальное колличество таймеров (хотя бы больше 8) и всего остального что тебе нужно.
1967 310002
>>309909

>176 пинов


>208 пинов


Нахуя? Вы чо тут, ебанулись?
мимоардуинщик_хватает_пинов_на_всё
1968 310004
>>310002

>Нахуя? Вы чо тут, ебанулись?


Не всё можно делать софтверно в определённых условиях, мой юный друг!
1969 310016
>>309990
Нашел третий: 400Мгц, 2Мб, 176 пинов. Думаю это то что надо для моей йобы.
1970 310042
>>310016
Охуеть, а расскажи, зачем тебе такая частота для избы? Ты там распознавание образов делать собираешься что ли?
1971 310045
>>310042

>тебе такая частота для избы?


RTOS шоб быстрый был. Есть еще материнка древнего промкомпа с РС/104, думаю может не ебать моск и на нем собрать. Спаять только дочерние платки, изучить х86 ASM + С++ и ну его нахуй эти контроллеры.
1972 310046
>>310045
Тебе для умного дома вайфик или блутус не нужен будет? Наверняка нужен будет. Почему не выбрал esp какой-нибудь новый? Там вроде весьма мощный камень, памяти на борту достаточно и прямо в чипе wifi и Bluetooth трансиверы. В библиотеках стек протоколов реализован даже, только там закрыто всё, как я понял.
1973 310047
>>310046

>Там вроде весьма мощный камень


Мне нужен LCD-контроллер для управления 7" дисплеем + тачскрином. Вайфик и блютус даром не надь. Мне его главное к свитчу домовой сети подрубить.
1974 310239
Сап, Анон, есть ESP8266
Нужно прицепить к нему 3 rgb светодиода, без внешнего блока питания. Напряжение максимум 5V (вообще 3,7 от аккумулятора, ну да пофиг, плата под всё это будет напечатана, но не сильно больше esp по размерам. Так что контроллерами напряжения можно обмазаться). Какие светодиоды брать и как подключать?
1975 310278
Анон, срочно. Я прошу прощения, что забиваю тред таким мусором, просто обстоятельства на меня давят как стенки влагалища на головку младенца.
Нужно сделать себе на коленке примитивный девайс, который будет играть роль ответной части при общении по эзернету через udp. То есть, я этот девайс подключаю к пекарне и оно может коннектиться и читать/писать в udp сокеты.
Заскочил в магаз, взял NUCLEO-F746ZG.
Я мог бы это сделать на ПЛИС, ибо есть какой-то милипиздрический опыт работы с LwIP под микроблейзом. Но разница в цене в 10+ раз.
В общем, сейчас у меня есть F746ZG и ноут с xubuntu. Все это люто интересно, но сейчас просто нету времени на эксперементы. Какой путь наикратчайший?
1976 310403
>>310278

>примитивный девайс



Ардуино? ESPxxx? Всяко проще, чем с голым армом ебаться.
photo2018-01-2212-08-01.jpg197 Кб, 960x1280
1977 310436
Привет, аноны. Я тут пытаюсь подключить дисплей с параллельным интерфейсом к Orange Pi. Но что-то мануалов я не нашел. Реально ли написать драйвер для дисплея самому? В электронике не сильно понимаю, поэтому задаю такие вопросы. На пике распиновка дисплея, достаточно ли будет задействовать 8 пинов зеленого цвета и clk (питание и земля учитываетс, само собой) чтобы залить экран зеленым цветом с помощью небольшой программы на c?
1978 310452
>>310436

>достаточно ли будет


NYET. Нужно будет задействовать цвета в режимах RGB 888 или 666 или 565, Vsync, Hsync, DOT_Clock, DE. Для попроще купи дисплей со встроенным контроллером.
1979 310453
>>310452
Есть дисплей на ili9325, он работает хорошо потому что под него были драйвера fbtft, но он маленький. Купил этот, думал раз интерфейс DPI, то он проще должен быть чем SPI. Но тут я обосрался.
Я вообще думал что чтобы закрасить экран одним цветом, зеленым например, нужно на пины G отправить единицы, на R и B нули. Отправить кратковременную единицу на CLK и в этот момент данные с пинов цветов должны считаться и закрасить первый пиксель в зеленый цвет. А потом просто повторить эту операцию 480x272 раз.
Я совсем далек от истины, да?
1980 310455
>>310453

> да?


Да. Там идет последовательность считывания данных с RGB. Типа для 565 R3 R4 R5 R6 R7 G2 G3 G4.... ну ты понел. Плюс еще сколько-то строк пропускается сверху и снизу, и сколько-то пикселей пропускается справа и слева от кадра. Короче нужно читать даташит на дисплей. Я кстати такой-же жду, буду подрубать к STM32F429IIT. Там проще.
1981 310503
>>310455
Понятненько. Ну ладно, спасибо за разъяснения.
1982 310656
>>309303
где взять документацию и примеры использования lwip? и вообще как его юзать
1983 310674
>>310656

>где взять документацию


На официальном сайте вестимо.
https://savannah.nongnu.org/projects/lwip/
1985 310966
Насоветуйте статей с рекомендациями и примерами использования концепций ООП в микроконтроллерах.
1986 310969
>>310966
Изучи ардуино библиотеки, там встречается много ооп, на крестах. А вообще, ооп на мк - зло, код раздувается и жрет много флеша, хотя в случае с стм32 - похуй, там и так флеша десятки-сотни кб, а то и несколько мб.
1987 310972
>>310966
Какие именно концепции ООП ты имеешь в виду?
И какие микроконтроллеры?
Маленькие или большие?
Если маленькие, то лучше C.

Алсо, полезно понимать, что "использование объектов и подходов ООП" != "ООП и кресты".
ООП можно делать на любом языке абсолютно.
Просто некоторые для этого больше подходят.

Алсо, поинтересуйся, почему ядро Linux это очень большая и сложная программа написано на C. И что сказал Линус Торвальдс, когда кто-то предложил ему делать это на крестах.
1988 310975
>>310972

>Алсо, поинтересуйся, почему ядро Linux это очень большая и сложная программа написано на C.



Потому что кривое говно, с насранной поверх него плеядой катях поменьше. Когда 15 лет стабильно ноудрайверс нихуя не работает и нужно танцы с бубном - это диагноз.

> И что сказал Линус Торвальдс, когда кто-то предложил ему делать это на крестах.



Это когда ему про гит писали? Включил свой пердак в режим максимального форсажа, как обычно.
1989 310976
>>310975

> овер 25 лет*

1990 310978
>>310972

>ООП можно делать на любом языке абсолютно.


Можно, но зачем изобретать велосипед? Хочешь ООП - бери язык с готовыми конструкциями под это. Ведь у ООП вся суть - готовая высокоуровневость. И да, ООП имеет смысл, если разрабатываешь какую-нить RTOS под жирный мк с периферией, а под мелочевку (8 битные мк и иже с ними) это во многих случаях нерациональный подход.
1991 310980
>>310975
Да, про Git, я перепутал, думал, что про ядро.

On Wed, 5 Sep 2007, Dmitry Kakurin wrote:

>


> When I first looked at Git source code two things struck me as odd:


> 1. Pure C as opposed to C++. No idea why. Please don't talk about portability,


> it's BS.



YOU are full of bullshit.

C++ is a horrible language. It's made more horrible by the fact that a lot
of substandard programmers use it, to the point where it's much much
easier to generate total and utter crap with it. Quite frankly, even if
the choice of C were to do nothing but keep the C++ programmers out,
that in itself would be a huge reason to use C.

Лолище, просто.

Ты, кстати, не Дмитрий Какурин?
1992 310994
>>310978

>у ООП вся суть - готовая высокоуровневость


Спешите видеть. Битоёбы рассуждают о высокоуровневости.

>ООП имеет смысл, если разрабатываешь какую-нить RTOS под жирный мк с периферией


RTOS и ООП, пиздец ты бредишь. Скорее ты хотел сказать, что без ОС нет смысла в ООП, ибо память туда сюда шатать надо, а для этого нужен контроллер пожирнее.

>под мелочевку (8 битные мк и иже с ними) это во многих случаях нерациональный подход


Как правило архитектура (разрядность, ага), объём ОЗУ, тактовая частота определяют применимость нормальной ОС и С++.
1993 311000
>>310972

> Какие именно концепции ООП ты имеешь в виду?


Ну в основном к микроконтроллерам наверно применимо просто грамотное структурирование данных и функций для работы с ними или типа того, всё остальное уже, я думаю, второстепенно.

>И какие микроконтроллеры?


STM32 everywhere от f2 и до весьма жирного f7.

>"использование объектов и подходов ООП" != "ООП и кресты"


Так я же специально написал про концепции ООП, а не про c++ на микроконтроллерах и использование всей парадигмы целиком.
>>310994

>Скорее ты хотел сказать, что без ОС нет смысла в ООП, ибо память туда сюда шатать надо


Аллокаторов отдельно от ртос не существует разве?

>архитектура (разрядность, ага), объём ОЗУ, тактовая частота определяют применимость нормальной ОС и С++


Насчет ос согласен, а плюсы можно использовать частично и обходить проблемы с динамическим выделением памяти. Во многом же реализация одного и того же на C и на плюсах после компиляции не сильно будет отличаться в объёме и в скорости выполнения. Но есть, конечно, и прямо противоположные вещи.
1994 311005
>>310966
>>311000

Вот книжка про ООП в Си:
https://www.cs.rit.edu/~ats/books/ooc.pdf

Вот на быдлохабре пишут:
https://habrahabr.ru/post/263547/

Можно ещё погуглить "oop in c"
1995 311036
>>311005
Неплохо, спасибо. Надо почитать. Но вот меня это интересует еще в контексте микроконтроллеров. Стоит ли, и, если стоит, то как правильно описывать работу с внешней периферией структурами, пытаясь максимально абстрагировать один слой от другого? Прихожу к выводу, что чем универсальнее код, тем он становится больше, сложнее и неповоротливее, зато куда проще в конечном использовании на уровне уже самого приложения, так сказать, но со своими минусами, разумеется. Где-то ведь должна быть золотая середина?
1996 311138
>>311036
Я дроблю так:
- хедер с макросами для дрыгания логическими сигналами в контексте схемы электрической принципиальной, типа PWR5V_ON, PWR5V_OFF
- модуль с функциями конфигурации профилей IO, например настройка шин I2C, конфигурации аналогового тракта. Тут же обязательно функция начальной инициализации всех IO
- набор модулей - протоколов. Например, 1wire, i2c (ненавижу ST-шный модуль, юзаю ногодрыг)
- набор модулей для работы с перифеийными микросхемами. Типа контроллер батареи, флешка, акселерометр и т.д.
- функциональные модули, соответствующие режимам работы прибора
- архитектурные модули - тут уже в концепции ОС или твой циклы со свитчами
1997 311259
>>310239
Вам в ардуино тред, молодой человек
1998 311397
>>311138
Ну и я примерно также стараюсь разбивать код в проекте. Но вот если с интерфейсами типа uart или spi более-менее всё понятно, то как написать универсальную структуру/класс для использования таймера? Чтобы и шим, и всё остальное было. Или нет смысла писать универсально, и отдельно описывать структуру для, например, шим, отдельно для чего-то ещё?
Алсо, вот если я на C пишу структуру, то тут всё понятно - в ней вместо некоторых методов будут указатели на функции, которые я буду подставлять уже в зависимости от реализации. Ну, например, для spi я в отдельных модулях пишу функцию, которая дрыгает нужным пином для CS, а сам модуль, в котором описана инициализация и остальная работа с spi про эти пины ничего не знает. Как быть в C++? Запихивать конкретные пины в реализацию класса явно плохая идея, а оставлять вместо методов указатели вроде как нарушает принцип инкапсуляции, если я правильно понимаю.
1999 311407
>>311397
Тебе же сказали, смотри ардуино-либы. Найдешь ответы на все свои вопросы.
2000 311412
>>311397

>Запихивать конкретные пины в реализацию класса явно плохая идея, а оставлять вместо методов указатели вроде как нарушает принцип инкапсуляции, если я правильно понимаю.



Не надо указатели в данном случае.
Это вообще хуета будет, а не ООП.
Надо либо полиморфные методы, либо конфигурировать экземпляр класса перед использованием (в конструкторе или factory-методе или в builder'е).
Либо применить паттерн "Template Method" (метод, использующий абстрактные методы данного класса, которые будут реализованы в производных классах).
Либо ещё как-то.

Алсо, мне вот этот вот момент:

>Ну, например, для spi я в отдельных модулях пишу функцию, которая дрыгает нужным пином для CS, а сам модуль, в котором описана инициализация и остальная работа с spi про эти пины ничего не знает.



кажется каким-то подозрительным. Можно пример?
Не надо полный код, дай интерфейс, в общих чертах.

Я бы, например, предложил сделать два класса:
SpIDevice(piny, huiny) и SpiController(new SpiDevice(...)).

Т.е. ты абстрагируешь пины-хуины в SpIDevice и передаёшь его (уже сконфигурированным) для использования в контроллер, который его и юзает, ничего не зная о пинах, и дёргая его "среднеуровневые" методы.
Т.е. Application --uses--> SpiController --uses--> SpiDevice --uses--> [hardware]

Алсо - нормальное ООП это не какие-то охуенные универсальные объекты, а наоборот - система хорошо структурированных специализированных объектов, использующих друг друга. Всё собирается как из кубиков, в том виде, в каком тебе надо в данном приложении.
Это называется агрегация или композиция (это несколько разные вещи).
И интерфейсы отдельно, а реализации - отдельно. Дальше - ты делаешь, например, серию factory-методов в каком-то классе, которые тебе возвращают один и тот же интерфейс, но с разными реализациями. Напр. ITimer с методами start() и onTick(...) и реализации YobaTimer, SukaTimer etc. А твой основной код юзает ITimer, и ему похуй на реализацию.

Алсо - делегирование очень полезный приём. Я бы сказал, один из основных. Погугли.
Это если тебе надо обернуть чужой класс (закрытый, ты не можешь его переписать) или несколько классов в свой интерфейс.

Короче, сначала задрачивай ООП как таковое, базовые концепции, а не в применении к контроллерам. К контроллерам оно само потом применится.
В качестве языка для подходов ООП как такового лучше всего использовать Java и материалы по ООП на Java.

Алсо, попробуй найди книжку "Объектно-ориентированный анализ и проектирование" Грейди Буча (это патриарх ООП).
Это старая книжка, середины 90-х. Очень толковая книга и примеры там на C++. И в качестве предметной области, как раз, используется управление всякой фигнёй типа теплиц или лифтов. Не смотря на то, что книга старая, она весьма годная, т.к. рассказывает о подходах а не о кодировании.
Есть ещё новая книжка с таким названием, продаётся сейчас. Но, там другой автор и я её не читал.
2000 311412
>>311397

>Запихивать конкретные пины в реализацию класса явно плохая идея, а оставлять вместо методов указатели вроде как нарушает принцип инкапсуляции, если я правильно понимаю.



Не надо указатели в данном случае.
Это вообще хуета будет, а не ООП.
Надо либо полиморфные методы, либо конфигурировать экземпляр класса перед использованием (в конструкторе или factory-методе или в builder'е).
Либо применить паттерн "Template Method" (метод, использующий абстрактные методы данного класса, которые будут реализованы в производных классах).
Либо ещё как-то.

Алсо, мне вот этот вот момент:

>Ну, например, для spi я в отдельных модулях пишу функцию, которая дрыгает нужным пином для CS, а сам модуль, в котором описана инициализация и остальная работа с spi про эти пины ничего не знает.



кажется каким-то подозрительным. Можно пример?
Не надо полный код, дай интерфейс, в общих чертах.

Я бы, например, предложил сделать два класса:
SpIDevice(piny, huiny) и SpiController(new SpiDevice(...)).

Т.е. ты абстрагируешь пины-хуины в SpIDevice и передаёшь его (уже сконфигурированным) для использования в контроллер, который его и юзает, ничего не зная о пинах, и дёргая его "среднеуровневые" методы.
Т.е. Application --uses--> SpiController --uses--> SpiDevice --uses--> [hardware]

Алсо - нормальное ООП это не какие-то охуенные универсальные объекты, а наоборот - система хорошо структурированных специализированных объектов, использующих друг друга. Всё собирается как из кубиков, в том виде, в каком тебе надо в данном приложении.
Это называется агрегация или композиция (это несколько разные вещи).
И интерфейсы отдельно, а реализации - отдельно. Дальше - ты делаешь, например, серию factory-методов в каком-то классе, которые тебе возвращают один и тот же интерфейс, но с разными реализациями. Напр. ITimer с методами start() и onTick(...) и реализации YobaTimer, SukaTimer etc. А твой основной код юзает ITimer, и ему похуй на реализацию.

Алсо - делегирование очень полезный приём. Я бы сказал, один из основных. Погугли.
Это если тебе надо обернуть чужой класс (закрытый, ты не можешь его переписать) или несколько классов в свой интерфейс.

Короче, сначала задрачивай ООП как таковое, базовые концепции, а не в применении к контроллерам. К контроллерам оно само потом применится.
В качестве языка для подходов ООП как такового лучше всего использовать Java и материалы по ООП на Java.

Алсо, попробуй найди книжку "Объектно-ориентированный анализ и проектирование" Грейди Буча (это патриарх ООП).
Это старая книжка, середины 90-х. Очень толковая книга и примеры там на C++. И в качестве предметной области, как раз, используется управление всякой фигнёй типа теплиц или лифтов. Не смотря на то, что книга старая, она весьма годная, т.к. рассказывает о подходах а не о кодировании.
Есть ещё новая книжка с таким названием, продаётся сейчас. Но, там другой автор и я её не читал.
2001 311413
>>311397
Вот, кстати, книжка:
http://vmk.ugatu.ac.ru/book/buch/index.htm
2002 311529
>>311407
Я посмотрю обязательно, но хотелось бы больше инфы собрать. Они действительно годно написаны по сравнению с hal от stm? У них вот тоже была попытка заключить всё в структуры, но вышло довольно хуёвенько как с точки зрения самих структур, так и с точки зрения реализации работы с периферией.

>>311412

> конфигурировать экземпляр класса перед использованием


Ты имеешь в виду непосредственно в реализации класса это задавать?

> метод, использующий абстрактные методы данного класса, которые будут реализованы в производных классах


Думал над этим, но тоже странно получается - ты описываешь работу с spi, но для spi1 у тебя один класс-наследник, для spi2 - другой, так?

> Можно пример?


Ну наверно как-то так: https://pastebin.com/S5cbr2bj
В таком случае получается нарушение инкапсуляции, но с другой стороны модуль не знает ничего про пины. С пинами пример не удачный, всё-таки, потому что пин можно передать в структуру. Ещё там нужен какой-то коллбек для сигнализации окончания передачи или ошибки, который уже может быть абсолютно разным в зависимости от наличия ОС и её реализации, вот как это организовать по-другому мне не понятно.

> абстрагируешь пины-хуины в SpIDevice и передаёшь его (уже сконфигурированным) для использования в контроллер


Ну, в принципе, можно их и объединить в один метод, один хуй spi связан неразрывно с CS, просто тогда эти пины будут храниться где-то в структуре самой, передаваться в виде аргументов в функцию инициализации, а знать про то, какие пины для этого используются, получается, будет уровень выше, который уже непосредственно с внешней периферией работает. Но это тоже странно выглядит, потому что чисто теоретически этому модулю вообще должно быть похрену по какому он интерфейсу подключен и вся эта кухня.

> Всё собирается как из кубиков, в том виде, в каком тебе надо в данном приложении.


Похоже, в этом и проблема, потому что у меня сложилось представление, что суть ООП в том, чтобы абстрагировать вещи друг от друга, но при этом написать их максимально гибкими и универсальными. То есть, на тот же таймер один класс как для измерения времени, так для периодических прерываний, так и для шим. Но когда я попытался продумать интерфейс, у меня закипела башка, потому что получается слишком сложно и дохуя всего. Выходит, лучше для каждого сценария использования лучше писать отдельную реализацию?

> Есть ещё новая книжка с таким названием, продаётся сейчас. Но, там другой автор и я её не читал.


Спасибо за совет, лучше возьмусь за неё, потому что плюсы и реализацию ооп в них я хотя бы немного знаю, а java видел одним глазом. На либгене нашёл аж три издания этой книги, и последнее 2008 года, но там помимо Буча есть другой автор. Второе лучше взять тогда?
2002 311529
>>311407
Я посмотрю обязательно, но хотелось бы больше инфы собрать. Они действительно годно написаны по сравнению с hal от stm? У них вот тоже была попытка заключить всё в структуры, но вышло довольно хуёвенько как с точки зрения самих структур, так и с точки зрения реализации работы с периферией.

>>311412

> конфигурировать экземпляр класса перед использованием


Ты имеешь в виду непосредственно в реализации класса это задавать?

> метод, использующий абстрактные методы данного класса, которые будут реализованы в производных классах


Думал над этим, но тоже странно получается - ты описываешь работу с spi, но для spi1 у тебя один класс-наследник, для spi2 - другой, так?

> Можно пример?


Ну наверно как-то так: https://pastebin.com/S5cbr2bj
В таком случае получается нарушение инкапсуляции, но с другой стороны модуль не знает ничего про пины. С пинами пример не удачный, всё-таки, потому что пин можно передать в структуру. Ещё там нужен какой-то коллбек для сигнализации окончания передачи или ошибки, который уже может быть абсолютно разным в зависимости от наличия ОС и её реализации, вот как это организовать по-другому мне не понятно.

> абстрагируешь пины-хуины в SpIDevice и передаёшь его (уже сконфигурированным) для использования в контроллер


Ну, в принципе, можно их и объединить в один метод, один хуй spi связан неразрывно с CS, просто тогда эти пины будут храниться где-то в структуре самой, передаваться в виде аргументов в функцию инициализации, а знать про то, какие пины для этого используются, получается, будет уровень выше, который уже непосредственно с внешней периферией работает. Но это тоже странно выглядит, потому что чисто теоретически этому модулю вообще должно быть похрену по какому он интерфейсу подключен и вся эта кухня.

> Всё собирается как из кубиков, в том виде, в каком тебе надо в данном приложении.


Похоже, в этом и проблема, потому что у меня сложилось представление, что суть ООП в том, чтобы абстрагировать вещи друг от друга, но при этом написать их максимально гибкими и универсальными. То есть, на тот же таймер один класс как для измерения времени, так для периодических прерываний, так и для шим. Но когда я попытался продумать интерфейс, у меня закипела башка, потому что получается слишком сложно и дохуя всего. Выходит, лучше для каждого сценария использования лучше писать отдельную реализацию?

> Есть ещё новая книжка с таким названием, продаётся сейчас. Но, там другой автор и я её не читал.


Спасибо за совет, лучше возьмусь за неё, потому что плюсы и реализацию ооп в них я хотя бы немного знаю, а java видел одним глазом. На либгене нашёл аж три издания этой книги, и последнее 2008 года, но там помимо Буча есть другой автор. Второе лучше взять тогда?
2003 311545
Про ООП вообще:

>суть ООП в том, чтобы абстрагировать вещи друг от друга, но при этом написать их максимально гибкими и универсальными.



Нет.
То, о чём ты пишешь, это, скорее, принципиальный подход к программированию вообще. А ООП - это способ реализации - того или иного подхода.
Так вот, такой подход (писать один универсальный класс/функцию/метод/структуру) - хуёвый и затратный. Так лучше не делать. И начинающих специально учат не валить всё в одну кучу, а разбивать большие функции на более мелкие, например.
Более того - ООП, как раз, и включает в себя инструменты, облегчающие написания узко-специализированного кода, но, без присущего использованию такого кода геморроя. Это - интерфейсы, наследование и полиморфизм.
Т.е. ты пишешь _разные_ реализации, которые _ведут_себя_ одинаково. И это поведеие описано в интерфейсе или абстрактном классе. Более того, вся эта магия может быть спрятана в библиотеке, и снаружи это выглядит как некая универсальная вещь. Но, внутри будет куча специализированных объектов. Смотри исходники.

Если в двух словах - движок (рантайм) ООП незаметно жонглирует указателями на функции и структуры, создавая у тебя иллюзию, что всё работает само, что есть какие-то "объекты" и прочее, в этом смысл ООП.

Ещё надо сказать, что "ООП" тоже бывает очень разное.
Раньше, в 90-е, был популярен подход "наследования". Использовалось множественное наследование (один класс наследует нескольким). Но, множественное наследование - зло (погугли, diamond problem etc). И когда появилась Java, то там специально отказались от него. Т.е. Java-класс может наследовать только одному классу, но, при этом, реализовывать несколько интерфейсов. Интерфейс в Java - это чистая абстракция поведения, без реализации. Вся реализация - в производных классах. Это сложнее писать, но, нет проблем, присущих множественному наследованию. Для упрощения используют делегирование - подход, облегчающий написание поддержки одним классом нескольких интерфейсов. Общий функционал выносят в отдельные классы, затем из внешних методов (реализующих интерфейс) дёргают внутренние экземпляры этих классов (делегируют им выполнение работы).

Так вот, классы-монстры, множественное наследование и т.п. - это подход 90-х.
Сейчас мир стал гораздо более сложным и быстро меняющимся, и писать один класс на все случаи жизни - это больше не работает. Просто невозможно стало так писать.
Сейчас - стараются писать "на интерфейсах" - чтобы можно было менять конкретные реализации, не трогая остальной код. Используют кучу мелких классов, работающих как кубики лего. Стараются, по возможности, делать методы "чистыми функциями" - без побочных эффектов. И т.д. Ключевые слова - "маленький", "лёгкий", "быстрый", "подвижный", "гибкий" и т.п. И при этом - используют несколько слоёв (уровней) абстракций. Т.е. код растёт не в "ширину", а в "глубину", как-то так.
Это и даёт универсальность, но это немножко не та универсальность о которой говоришь ты.

Ты, насколько я понял, сишник? И плюсы не знаешь?
Я бы, всё же, посоветовал (именно для тренировки) взять не C++, а Python, например.
Не на голом контроллере, а на пк или на Raspberry Pi.
Питон, по сути, это такой Си, но с ООП и динамический.
И идеально интегрируется с сишными либами, специально для этого и задуман. Ты сможешь сам легко писать биндинги к нужным тебе либам, если их ещё нет.
На контроллерах есть MicroPython, но, в продакшн его не используют, ибо сыроват, хотя х.з., может и начали уже.
А в плюсах - высокий порог вхождения. И придётся бодаться с кучей вещей, не имеющих отношения к ООП.
2003 311545
Про ООП вообще:

>суть ООП в том, чтобы абстрагировать вещи друг от друга, но при этом написать их максимально гибкими и универсальными.



Нет.
То, о чём ты пишешь, это, скорее, принципиальный подход к программированию вообще. А ООП - это способ реализации - того или иного подхода.
Так вот, такой подход (писать один универсальный класс/функцию/метод/структуру) - хуёвый и затратный. Так лучше не делать. И начинающих специально учат не валить всё в одну кучу, а разбивать большие функции на более мелкие, например.
Более того - ООП, как раз, и включает в себя инструменты, облегчающие написания узко-специализированного кода, но, без присущего использованию такого кода геморроя. Это - интерфейсы, наследование и полиморфизм.
Т.е. ты пишешь _разные_ реализации, которые _ведут_себя_ одинаково. И это поведеие описано в интерфейсе или абстрактном классе. Более того, вся эта магия может быть спрятана в библиотеке, и снаружи это выглядит как некая универсальная вещь. Но, внутри будет куча специализированных объектов. Смотри исходники.

Если в двух словах - движок (рантайм) ООП незаметно жонглирует указателями на функции и структуры, создавая у тебя иллюзию, что всё работает само, что есть какие-то "объекты" и прочее, в этом смысл ООП.

Ещё надо сказать, что "ООП" тоже бывает очень разное.
Раньше, в 90-е, был популярен подход "наследования". Использовалось множественное наследование (один класс наследует нескольким). Но, множественное наследование - зло (погугли, diamond problem etc). И когда появилась Java, то там специально отказались от него. Т.е. Java-класс может наследовать только одному классу, но, при этом, реализовывать несколько интерфейсов. Интерфейс в Java - это чистая абстракция поведения, без реализации. Вся реализация - в производных классах. Это сложнее писать, но, нет проблем, присущих множественному наследованию. Для упрощения используют делегирование - подход, облегчающий написание поддержки одним классом нескольких интерфейсов. Общий функционал выносят в отдельные классы, затем из внешних методов (реализующих интерфейс) дёргают внутренние экземпляры этих классов (делегируют им выполнение работы).

Так вот, классы-монстры, множественное наследование и т.п. - это подход 90-х.
Сейчас мир стал гораздо более сложным и быстро меняющимся, и писать один класс на все случаи жизни - это больше не работает. Просто невозможно стало так писать.
Сейчас - стараются писать "на интерфейсах" - чтобы можно было менять конкретные реализации, не трогая остальной код. Используют кучу мелких классов, работающих как кубики лего. Стараются, по возможности, делать методы "чистыми функциями" - без побочных эффектов. И т.д. Ключевые слова - "маленький", "лёгкий", "быстрый", "подвижный", "гибкий" и т.п. И при этом - используют несколько слоёв (уровней) абстракций. Т.е. код растёт не в "ширину", а в "глубину", как-то так.
Это и даёт универсальность, но это немножко не та универсальность о которой говоришь ты.

Ты, насколько я понял, сишник? И плюсы не знаешь?
Я бы, всё же, посоветовал (именно для тренировки) взять не C++, а Python, например.
Не на голом контроллере, а на пк или на Raspberry Pi.
Питон, по сути, это такой Си, но с ООП и динамический.
И идеально интегрируется с сишными либами, специально для этого и задуман. Ты сможешь сам легко писать биндинги к нужным тебе либам, если их ещё нет.
На контроллерах есть MicroPython, но, в продакшн его не используют, ибо сыроват, хотя х.з., может и начали уже.
А в плюсах - высокий порог вхождения. И придётся бодаться с кучей вещей, не имеющих отношения к ООП.
2004 311554
>>311529

Пример использования ООП для ввода-вывода (Java):

Допустим, нам нужно читать текстовые (символьные) данные из разных источников.
Например, с целью подсчёта количества символов.
Источники - файл, строка в памяти, массив байтов, последовательный порт.

В Java используется такая абстракция как Reader (абстрактный класс - с частичной реализацией).
И есть её реализации - FileReader, StringReader, InputStreamReader и т.д.
В программе есть метод calcSymCount(Reader reader).

Как это работает (упрощённо):

//Из строки:
int cnt = calcSymCount(new StringReader(myString));

//Из файла:
int cnt = calcSymCount(new FileReader(new File(path)));

//Из массива байтов:
int cnt = calcSymCount(new InputStreamReader(new ByteArrayInputStream(bytes), "utf-8"));

//Из порта:
SerialPort com = portId.open(...);
int cnt = calcSymCount(new InputStreamReader(com.getInputStream()));

Теперь, допустим, нам понадобилась буферизация.
Мы просто оборачиваем объект reader в BufferedReader и всё:

int cnt = calcSymCount(new BufferedReader(new FileReader(new File(path))));

Для вывода данных - ровно то же самое, просто слово Reader заменяем на Writer, а Input на Output, и всё.

Попробуй представить, можно ли всё это сделать на каком-то одном универсальном классе?

>То есть, на тот же таймер один класс как для измерения времени, так для периодических прерываний, так и для шим.


Так не делают, это же совершенно разные вещи. Смысл именно в том, что ты абстрагируешься от железяки, и смотришь на неё или как на измеритель времени или как на шим-контроллер. И классы отражают эти точки зрения.

Но, надо понимать, что ООП на контроллерах будет немножко не таким красивым, как на больших системах.
Слишком много железной специфики, которая в больших системах абстрагирована в ос и драйверах.
Соответственно, будет несколько коряво. И разбиение на компоненты надо делать несколько иначе и т.д.

>для spi1 у тебя один класс-наследник, для spi2 другой


Я не работал с стм, но, если там разница не только в пинах и адресах, т.е. нельзя сконфигурировать, то да.
Т.е. компоненты могут быть очень низкоуровневыми, и жёстко привязанными к конкретному контроллеру или семейству.

И, стоит подумать, нужно ли классическое ООП на контроллерах вообще?
ООП не единственный способ грамотно структурировать код, и не бесплатный.
Если набить в гугол "embedded oop development", то по первым трём ссылкам советуют не делать этого, лол.
Есть, правда, другие результаты - погугли.

Это я к тому, что если реально надо высокоуровневость, то, может быть, просто использовать [микро]питон для скриптования сишных либ? Х.з., правда, как там с этим на STM.

И, в любом случае, не стоит начинать с написания собственных библиотек. Надо сначала писать код, использующий чужие, потом - читать исходники чужих, потом - пытаться писать свои.
2004 311554
>>311529

Пример использования ООП для ввода-вывода (Java):

Допустим, нам нужно читать текстовые (символьные) данные из разных источников.
Например, с целью подсчёта количества символов.
Источники - файл, строка в памяти, массив байтов, последовательный порт.

В Java используется такая абстракция как Reader (абстрактный класс - с частичной реализацией).
И есть её реализации - FileReader, StringReader, InputStreamReader и т.д.
В программе есть метод calcSymCount(Reader reader).

Как это работает (упрощённо):

//Из строки:
int cnt = calcSymCount(new StringReader(myString));

//Из файла:
int cnt = calcSymCount(new FileReader(new File(path)));

//Из массива байтов:
int cnt = calcSymCount(new InputStreamReader(new ByteArrayInputStream(bytes), "utf-8"));

//Из порта:
SerialPort com = portId.open(...);
int cnt = calcSymCount(new InputStreamReader(com.getInputStream()));

Теперь, допустим, нам понадобилась буферизация.
Мы просто оборачиваем объект reader в BufferedReader и всё:

int cnt = calcSymCount(new BufferedReader(new FileReader(new File(path))));

Для вывода данных - ровно то же самое, просто слово Reader заменяем на Writer, а Input на Output, и всё.

Попробуй представить, можно ли всё это сделать на каком-то одном универсальном классе?

>То есть, на тот же таймер один класс как для измерения времени, так для периодических прерываний, так и для шим.


Так не делают, это же совершенно разные вещи. Смысл именно в том, что ты абстрагируешься от железяки, и смотришь на неё или как на измеритель времени или как на шим-контроллер. И классы отражают эти точки зрения.

Но, надо понимать, что ООП на контроллерах будет немножко не таким красивым, как на больших системах.
Слишком много железной специфики, которая в больших системах абстрагирована в ос и драйверах.
Соответственно, будет несколько коряво. И разбиение на компоненты надо делать несколько иначе и т.д.

>для spi1 у тебя один класс-наследник, для spi2 другой


Я не работал с стм, но, если там разница не только в пинах и адресах, т.е. нельзя сконфигурировать, то да.
Т.е. компоненты могут быть очень низкоуровневыми, и жёстко привязанными к конкретному контроллеру или семейству.

И, стоит подумать, нужно ли классическое ООП на контроллерах вообще?
ООП не единственный способ грамотно структурировать код, и не бесплатный.
Если набить в гугол "embedded oop development", то по первым трём ссылкам советуют не делать этого, лол.
Есть, правда, другие результаты - погугли.

Это я к тому, что если реально надо высокоуровневость, то, может быть, просто использовать [микро]питон для скриптования сишных либ? Х.з., правда, как там с этим на STM.

И, в любом случае, не стоит начинать с написания собственных библиотек. Надо сначала писать код, использующий чужие, потом - читать исходники чужих, потом - пытаться писать свои.
2005 311566
>>311529
Вот, кстати, про MicroPython на STM32:
https://www.edn.com/electronics-blogs/embedded-basics/4440447/Using-MicroPython-for-real-time-software-development

Это, оказывается, вообще референсная платформа для него, лол - PyBoard сделан на STM32.
Если не устраивают готовые абстракции железа - пиши свои биндинги через C API.
2006 311593
>>311529

>Ещё там нужен какой-то коллбек для сигнализации окончания передачи или ошибки, который уже может быть абсолютно разным в зависимости от наличия ОС и её реализации, вот как это организовать по-другому мне не понятно.



Это называется EventListener. По сути, это и есть callback, только в виде экземпляра класса. У тебя есть интерфейс или абстрактный класс SpiEventListener с абстрактным методом или методами, по числу нужных событий. Например onSpiTransmitEnd(), onSpiError() etc. Реализация этих методов будет разной в разных производных классах.
2007 311791
>>311545

>Ты, насколько я понял, сишник? И плюсы не знаешь?


Под мк я только на C писал, на пк маленькие вспомогательные программки накидывал пару раз на плюсах, но в основном пользовался питоном. Но они были настолько маленькие и простые, что углубиться в ооп особо не удавалось - максимум я описывал один какой-нибудь класс для моего кастомного usb-устройства с методами для приёма-передачи данных по разным эндпоинтам и всё. Но по плюсам и питону я ещё пару книг вводных прочёл, так что кое-что знаю, но опыта почти нет, к сожалению.
Под пеку не знаю, что писать, а вот на мк у меня есть пара задумок простеньких, которые я бы хотел реализовать постараться грамотно и неторопясь, а не быстрее-быстрее как получится, как обычно это на работе бывало.
Хотя, bt, wifi и gps можно через uart подключить к пеке и также накидывать слой приложения так, чтобы низ от контроллера потом можно было прицепить.

>MicroPython


Слышал про него, но показалось, что там либы под одну лишь плату их собственную. Побоялся, что не осилю хал переписывать под свой проц и свою железку (хотя, с процом более-менее повезло, у меня тоже f4). И я вообще не въехал как это работает, тем более не догнал как это всё потом отлаживать кроме как выводом в uart/cdc. Без дебаггера можно тоже, но это геморно по-моему.
>>311554

> Попробуй представить, можно ли всё это сделать на каком-то одном универсальном классе?


Наверно, проблемно. Но вот calcSymCount получается как раз универсальным, потому что он может работать с разными объектами. Ладно, я, кажется, более-менее понял на организационном уровне.

> абстрагируешься от железяки, и смотришь на неё или как на измеритель времени или как на шим-контроллер


Выходит, класс в контексте периферии мк стоит рассматривать исключительно с точки зрения выполняемых им задач и при этом не обращать внимание на используемую аппаратную часть? То есть, если у меня есть универсальный какой-то йоба-блок, который может выполнять 10 разных функций, то лучше описать 10 разных классов (ну, возможно, с какими-то абстрактными, не важно) и не важно, что они один и тот же железный блок используют, но с разными параметрами инициализации?

> Я не работал с стм, но, если там разница не только в пинах и адресах, т.е. нельзя сконфигурировать, то да.


Не, там как раз суть в том, что разница только в адресах, пинах (cs так вообще софтварно можно дёргать, он тогда любым может быть) и прерывании в векторе.

> Надо сначала писать код, использующий чужие


Для stm32 кроме их весьма корявых либ я находил только libopencm3, но там по-моему структурированию и концепциям ооп особо время не уделяли. Попробую по совету анона посмотреть код в либах для ардуино, но я железо в глаза не видел, не уверен, что не потрачу слишком много времени на то, чтобы разобраться в коде. А вот микропитон можно попробовать поковырять.
2007 311791
>>311545

>Ты, насколько я понял, сишник? И плюсы не знаешь?


Под мк я только на C писал, на пк маленькие вспомогательные программки накидывал пару раз на плюсах, но в основном пользовался питоном. Но они были настолько маленькие и простые, что углубиться в ооп особо не удавалось - максимум я описывал один какой-нибудь класс для моего кастомного usb-устройства с методами для приёма-передачи данных по разным эндпоинтам и всё. Но по плюсам и питону я ещё пару книг вводных прочёл, так что кое-что знаю, но опыта почти нет, к сожалению.
Под пеку не знаю, что писать, а вот на мк у меня есть пара задумок простеньких, которые я бы хотел реализовать постараться грамотно и неторопясь, а не быстрее-быстрее как получится, как обычно это на работе бывало.
Хотя, bt, wifi и gps можно через uart подключить к пеке и также накидывать слой приложения так, чтобы низ от контроллера потом можно было прицепить.

>MicroPython


Слышал про него, но показалось, что там либы под одну лишь плату их собственную. Побоялся, что не осилю хал переписывать под свой проц и свою железку (хотя, с процом более-менее повезло, у меня тоже f4). И я вообще не въехал как это работает, тем более не догнал как это всё потом отлаживать кроме как выводом в uart/cdc. Без дебаггера можно тоже, но это геморно по-моему.
>>311554

> Попробуй представить, можно ли всё это сделать на каком-то одном универсальном классе?


Наверно, проблемно. Но вот calcSymCount получается как раз универсальным, потому что он может работать с разными объектами. Ладно, я, кажется, более-менее понял на организационном уровне.

> абстрагируешься от железяки, и смотришь на неё или как на измеритель времени или как на шим-контроллер


Выходит, класс в контексте периферии мк стоит рассматривать исключительно с точки зрения выполняемых им задач и при этом не обращать внимание на используемую аппаратную часть? То есть, если у меня есть универсальный какой-то йоба-блок, который может выполнять 10 разных функций, то лучше описать 10 разных классов (ну, возможно, с какими-то абстрактными, не важно) и не важно, что они один и тот же железный блок используют, но с разными параметрами инициализации?

> Я не работал с стм, но, если там разница не только в пинах и адресах, т.е. нельзя сконфигурировать, то да.


Не, там как раз суть в том, что разница только в адресах, пинах (cs так вообще софтварно можно дёргать, он тогда любым может быть) и прерывании в векторе.

> Надо сначала писать код, использующий чужие


Для stm32 кроме их весьма корявых либ я находил только libopencm3, но там по-моему структурированию и концепциям ооп особо время не уделяли. Попробую по совету анона посмотреть код в либах для ардуино, но я железо в глаза не видел, не уверен, что не потрачу слишком много времени на то, чтобы разобраться в коде. А вот микропитон можно попробовать поковырять.
2008 311813
>>311791

>лучше описать 10 разных классов


Да, в этом и смысл.
Насколько это затратно и т.д. - зависит от ситуации.

>но там по-моему структурированию и концепциям ооп особо время не уделяли


Возможно, это потому, что чем больше ООП, тем оно дороже выходит в смысле ресурсов и производительности.
Ну, и написать элегантную либу - это дорого и долго. А эмбед слишком быстро меняется, и люди там работают немножко не те, которые ценят элегантное ооп.

Алсо, в своё время видел сравнение быстродействия под виндой микрософтовских плюсовых либ и джавы (причём, той ещё джавы, начала нулевых). Оно было одинаковым. И нахуй эти плюсы?

>Под пеку не знаю, что писать


Есть Raspberry PI и подобное - там вполне себе нормальный питон под линуксом.
Инфы куча.

Про микропитон я почитал - он сырой ещё. И нормальную отладку ещё только пытаются запилить.

Я ещё думал про это, и пришёл к выводу, что нормально под контроллеры писать можно только на си или на некотором подмножестве плюсов - как в Ардуино.
Так что тот, кто советовал читать исходники ардуино либ, был прав.

Ну, или уже под толстые контроллеры с линуксом - на чём хочешь.
General-ARM-Chip-Diagram1.jpg8 Кб, 290x293
2009 312149
Приветствую, господа. Хотелось бы изучить архитектуру ARM, программирование под нее и т.д, но не знаю с чего начать. В электронике и микроэлектронике тоже не силен, возможно начать стоит с этого. Можете предложить какие-нибудь книги или иные материалы по теме?
350.jpg147 Кб, 1200x1200
2010 312163
>>187056 (OP)
Анон, начались пары по работе микропроцессоров в перемешку с программирование микроконтроллеров на С. Препод сказал, что разбираться будем с AVRовским. Подскажите минимальный набор деталей, чтобы вручную что-нибудь собрать.
Пока в списке диоды, провода, программатор, atmega8a, датчики света, температуры и тд, макетная плата.
2011 312184
>>312149
Joseph Yiu - Definitive guide to the to the ARM cortex M0 рекомендовали где-то.
Еще есть Bertolotti, Ivan Cibrario Hu, Tingting - Embedded software development.
Можно ещё выборочно почитать digital design and computer architecture.
Но я первые две только листал, а последняя не совсем про мк, но выборочно почитать стоит точно, чтобы понять, как устроено и как работает простейшее ядро проца.
>>312163
Если не хочешь мудиться с usb-cdc, то советую ещё прикупить usb-uart на ft232. На али 250 рублей стоит, но при отладке бывает очень полезен в случаях, когда просто взять и поставить брейкпоинт нельзя. Есть bt/wifi/nfc модули, работающие на at-командах по уарту, если хочешь запилить беспроводную йобу.
Вообще, смотря что ты хочешь собрать. Можно и набор адресуемых светодиодов закупить и остановиться на этом. А дальше пилить какую-нибудь подсветку для задней стенки монитора/светомузыку.
2012 312195
>>311813

> И нахуй эти плюсы?


На ПК? Уже полно альтернатив на любой вкус и цвет, да, но тем не менее язык один из самых популярных до сих пор. А вот под мк кроме сырого micropython, javascript, закрытой java embedded, которую, как я понял, хуй получишь, кроме C и C++ ничего не остаётся больше. Может, именно в плюсах и смысла нет, потому что в контексте мк C++ - это C с классами, но я вроде изначально просто про концепции спрашивал, которые можно реализовывать на обоих языках.

> Есть Raspberry PI и подобное - там вполне себе нормальный питон под линуксом.


Из пушки по воробьям. Собрать макет - годится, но дальше уже нет (а тем более смысл собирать макет на питоне, если потом пилить то же самое на C/C++), тем более для устройства, работающего от батареи, а не от сети, точно не пойдёт. Ну и у пирога есть одна большая проблема - он быстро убьёт карточку, поэтому для начала придётся его пердолить, чтобы на карту записи почти не производилось во время работы. Да, статьи есть на эту тему, но желания обмазываться пока нет.

> толстые контроллеры с линуксом


В перспективе хотел бы, но пока что нет, к тому же цена у такой платы будет куда выше, да еще и придётся вкуривать линукс.
Ладно, спасибо большое за ответы, анон.
2013 312391
>>312184
Понятно, спасибо.
USB-CDC VCP STM32f105 2014 312409
Сап Анон. Есть железка на F105 STM'е, проект сгенерен кубом, работает как USB VirtualCOMPort-CAN-UART прозрачный адаптер. Есть гора старого софта, который работал с подобным адаптером собранным на AVR'ке+FT232, софт требует наличия сигнала CD (Carrier Detect) со стороны виртуального ком порта, иначе пакет закидывать в порт отказывается. Изучая кубовскую реализацию USB, стало ясно что поддержку нотификаций SERIAL_STATE нихуя не реализовали. Может кто мудохался, и дописывал в стеке от ST поддержку нотификаций?
2015 312441
Суп, котаны.

Поясните за Mbed - это зашквар или нет?
Хочу вкатиться в ARM на уровне хобби (профессия уже есть, лол).

Заодно, насоветуйте плату для знакомства.
Выше пишут, что вообще лучше начинать с STM32 F3. Это так?
Nucleo NUCLEO-F303K8 нормально?
Что насчёт Cortex M0?

Алсо, реально ли использовать Mbed с голым nRF51822, например (после некоторого знакомства с предметом вообще)?
2016 312463
Чисто из академического интереса - интегрированный бутлоадер в stm32 принципипиально можно заменить своим, чтобы окирпичивать камни вызывать его через BOOT-пины?
winstar.jpg13 Кб, 280x127
2017 312518
сап, МКшники

есть микроконтроллер stm32f767zi на плате NUCLEO-F767ZI и OLED дисплей winstar'овский WEH001602AGPP5N00001 с контроллером WS0010 аналог HD44780 вроде. Никогда дисплейчик не подрубал, как быть? с чего начать? Может есть какая то система команд для управления им и вывода на него информации? мне нужен только текстовый режим, рисовать рандом пикчи нет необходимости

на прикл сабж
2018 312552
>>312518
Юзай Mbed, тем более, что у тебя Nucleo.

https://os.mbed.com/platforms/
https://os.mbed.com/components/cat/display/
2019 312553
>>312441

> зашквар или нет


Почему зашквар-то? Ну, если ты петушила-ардуинщик, который вообще не имеет представления о том, что делает, и только лепит готовые либы и решения, то наверно зашквар. А если нормально делать, то норм. Но не в качестве профессии, потому что на хуй никому не нужен будешь.

> лучше начинать с STM32 F3


Я принципиальной разницы между f0/f1/f2/f3/f4/f7 не увидел, поэтому думаю, что начать можно с любого, это тебе не какой-нибудь многоядерный a15 с reference manual на 8к страниц.

> насоветуйте плату для знакомства


Чтобы меньше ебли было бери фирменную. Можешь взять с али китайщину, но ни схем не будет, нихуя вообще, но она дешевле (я на f4 с usb-разъемом, двумя кварцами, разъемом под microsd, и маленькой eeprom на борту взял за 700 с чем-то). Удобно еще когда на плате к самому мк заведён и распаян usb, на мой взгляд.
Можешь поискать подешевле что-нибудь с самым простым камнем и минимумом обвязки, а то вдруг не понравится.
2020 312593
>>312518
Купи модуль I2C интерфейса для таких дисплеев, чтоб не ебаться с ножками и вешать его на одну шину с другими I2C девайсами.

https://ru.aliexpress.com/item/1pcs-Serial-Board-Module-Port-IIC-I2C-TWI-SPI-Interface-Module-for-Arduino-1602-LCD-Display/32404454240.html
2021 312598
>>312593
а по i2c управлять проще чем по 4/8 битной шине с обычными GPIO?
2022 312600
>>312552
спасибо, но мбед для меня еще более непонятен чем работа в том же кубе) плюс мбедед приложения не знаю как дорабатывать, ведь по ТЗ у меня не только подцепить дисплей задача
2023 312613
>>312598
Проще и удобнее - полно готовых либ для этого модуля на любые контроллеры и всего 2 ножки МК используется.
2024 312637
Существует ли в природе нормальные библиотеки низкого уровня для 32ухбитных контроллеров от Atmel? Я имею в виду что-то на подобии CMSIS для STM32. Где тупо есть для каждой переферии по файлу .c и .h. Подключаешь их к проекту и не ебешься. Ну никакого желания мучаться с ASF нет, а тупо регистрами пользоваться это крайний случай.
2025 312802
>>306851
Использую realolc, да. Только на атмеге. Кагбэ у меня там просто класс запилен. Есть функция, которой я сообщаю сколько байтиков нужно выделить. А внутри неё уже этот реаллок. Если количество байт в аргумент я сообщаю положительное (ну там парочка байт), то эта функция к тому же возвращает мне указатель как раз на то место где начало этих новых выделенных байт. Что оче удобно. Ещё у меня конструктор и функция free, вызывающая, собственно free() и ещё обнуляющая указатель на начало массива. Проблема фрагментации у меня пока не стоит, так как объекты (локальные) удаляются в порядке, обратном их созданию, но, впринципе если потребуется, то я в массиве просто прописываю ссылочку на дополнительно созданные байтики в его конце.
>>307264
Нахуй это нужно? Кольцевой буфер запилил, та и всё. Плюс сигналы XOFF/XON можно отправить если он заполнится, до появления свободного места.
2026 313688
Сап, есть ли в треде люди шарящие в ARM чтоб поднять на нем некую систему складской автоматизации выдачи товара, по типу почтаматов но не совсем, есть некоторый проект реализовав который его можно успешно продавать. С меня все материальные затраты с вас помощь в программной составляющей проекта. Если есть авантюристы которые заинтересованы отпишитесь. Если че я в хохлоДС.
2027 313967
Господа, расскажите про JLink - можно ли брать вот это вот, например:
https://ru.aliexpress.com/item/1PC-JLI-V9-J-LINK-ARM-emulator-support-A9A8-V9-3-high-speed-download/32801920737.html

Что там с версиями - 8, 9.3, 9.4? Какая лучше?
Инфа в интернетах есть, но противоречивая.
Может быть, кто лично пользовался?

Цель - прошивка дешёвых китайских платок с nRF51822 и прочее.

На плате nRF51 DK стоит здоровенный чип Segger, я так понимаю, что это JLink и есть.
Видел инфу, что для прошивки достаточно JLink'а за 13 долларов, а то, что выше по ссылке - это нужно для отладки.

Короче - просветите что это вообще за хуйня, в чём разница, какие подводные камни.
2028 314012
>>313967
А чём тебя ST-Link 2.0 не устраивает?
2029 314043
>>314012
Если честно - я не знаю, ибо в этой теме я ньюфаг.
В тех примерах, которые я видел, nRF51 прошивали j-link'ом. Если его можно прошить st-link'ом с али, тогда j-link не нужен.
2030 314637
>>313967
подводные в том, что это говно
>>314005
en.bl475eiot01a.jpg3,2 Мб, 3543x2362
2031 314638
Анон, я правильно понимаю, что нужно заказывать B-L475E-IOT01A2 (а не B-L475E-IOT01A1) пушо частота 868Мгц в России нелицензируема?
WP20180306162418Pro.jpg1,3 Мб, 3264x1840
2032 314662
>>187056 (OP)
В ньюфажном треде затруднились ответить на мой вопрос. Есть ли в природе русскоязычная документация на STemWin, BSP-драйверы и т.п. для STM32F4? В поиске вылазят малопонятные, обрывочные примеры. Может быть есть, что-нибудь подобное "STemWin на селе", "Справочник молодого BSP-шника"?
2033 314674
>>314662
Чота тред не бампируется. Тяжелый слишком
14465523141310.jpg88 Кб, 1191x1131
2034 314839
Вечер в хату, качаны.

В общем, продолжаю неспешно клепать махарайки на армах (лол, когда дойдёт до чего-нибудь серьёзного, то в ходу уже будут квантовые компы).

Поясните, для чего нужны RTOS?
Юзал кто?

Предстоит ебля с ногодрыгом, вай-фаем, нанд памятью, шим и жк с тачскрином.
Эта хуйня (RTOS) мне будет полезна, чтобы ебли было как можно меньше?
1467691869195056643.jpg28 Кб, 480x360
2035 314882
>>314839
RTOS нужны для обеспечения многозадачности в основном.

В самом просто случае без RTOS, например, если ты захочешь поморгать светодиодом раз в секунду, без прерываний по таймеру, твой МК будет сидеть и курить бамбук, смотря как тикает время и нихуя не делая. Это не круто, так как за эту секунду он мог бы сделать тонну полезной работы.

С RTOS вместо одного суперлупа у тебя будет набор тасков, каждый из которых выполняет одну определенную функцию независимо от других, то есть его можно гасить, будить, грамотно управлять ресурсами с помощью примитивов синхронизации типа семафоров и вообще делать вещи красиво.

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

>Эта хуйня (RTOS) мне будет полезна, чтобы ебли было как можно меньше?



Как ты наверное уже понял, да.
Qx4gCpB.jpg162 Кб, 1795x1194
2036 314883
Продублирую пост из пограмача, да простит меня Сварог.

Аноны, а есть кто зарабатывает этим ремеслом?

Ищу работу эмбедером, предложений очень мало, а те которые есть, это 20к в НИИ Исследования Пердежа после 3 месяцев испытательного.

Не то что бы я этим брезговал. Как раз таки я уже в таких местах пару лет и проработал, хочу двигаться дальше и заниматься более интересными проектами, но пока даже не понимаю куда.
2037 315008
не совсем занимаюсь ARM в полноценном смысле. Не так долго пишу на стм32 без выебонов и поддерживаю чужой код на 8мибитных авр. Получаю правда в своем городке 27к что не особо делает из меня советчика
2038 315035
>>315008
27к это неплохие деньги в принципе.
Для меня дело то и не в деньгах скорее, а в интересной работе и нормальном отношении к сотрудникам.
2039 315127
>>315035
ну тут как повезет, думаю в этом плане пытаться залезть в компанию покруче. У меня начальство лояльное, а вот с разнообразием туговато. Только один чувак пытается добавлять новые фишки в проекте. И славу богу я работаю с ним
2040 316145
>>312163
Резисторы, конденсаторы, переменные резисторы, пачка каких-нибудь дешёвых транзисторов (PNP, NPN и MOSFETы), трангзисторы для моторчиков, всякие там сдвиговые регистры.

Да, знаю что слоу.
2041 316889
>>314883
Работаю не эмбедером, но связан с этим делом.

Пишу программные модули для взаимодействия с охранными устройствами. Не пишу для самих MK, но таки работаю с их интерфейсом. Ну а так же в принципе планирую переход на полный embedded. Планируем писать кастомные прошивки для ip-камер и тд.

Получаю 16к, ибо работаю на полставки.
Студент, мухосрань.
2042 318470
Не бейте по ебалу, но какие светодиоды покупать к STM32? Их напрямую коннектить к пинам?
JerryScript кто-нибудь упарывался?
2043 318471
>>318470
В догонку: как на инглише назыются пины и колодки?
25ma.PNG41 Кб, 555x222
2044 318647
>>318470
Не напрямую, а через резисторы.

Смотри на свои светодиоды forward voltage в даташите или у продавца если на али/ибее берёшь, потом подставляй в формулу.

R = (V1 – V2) / I

V1 = напряжение на пинах STM32 (смотри в даташит, но там вроде 3 вольта, у других микросхем может быть 5) V2 - forward voltage на диоде. Напряжение V1 будет зависеть от того, что ты на вход подашь, так что лучше заимей источник на 3 вольта.

И I это сила тока, смотри в даташите на микросхему какое ограничение на максимальный ток на пин, подставляй значение, получай, например 85 ом и бери ближайший резистор, который выше по сопротивлению, например 100 ом.

Вот, например даташит на STM32F103C8
http://www.st.com/en/microcontrollers/stm32f103c8.html

Короч, вот у меня LED с напряжением 2 вольта.

R = (3 - 2) / 0.025 = 40 Ом. У меня есть пак резисторов, там самое мелкое - 100 Ом, вот его и ебашим.

Правда я мог где-то объебаться, сам нуб
KURWA PULL UP.PNG34 Кб, 312x884
2045 318650
>>318470
Ах да, кнопки тоже ебашат через резисторы, причём джва. Пока кнопка выключена твой пин должен быть через резюк подключен к земле или напряжению (3/5 вольта). Иначе на твои ноги микроконтроллера прилетит любая наводка и поставит там сигнал какой придётся. Пока кнопка не нажата, то твой пин микроконтроллера подключён к земле и там 0 или к питанию и там 3 вольта, т.е. есть 1.

Когда ты её жмёшь, то замыкаешь пин на землю или 3 вольта через ещё один резистор, иначе короткое замыкание, гроб, кладбище, пидор.
2046 318653
>>318470
А светодиоды возьми у китайцев набор 100 штук разноцветных, там всё равно напряжение будет 2-3 вольта.
2047 318689
2048 320985
>>312441

>Cortex M0


Если у тебя уже есть задача, которую надо решить, то бери, может доставить оптимизация и прочтение даташитов. Хотя и просто так сойдет, они по 3 бакса стоят. Я пилю игровой контроллер, там 8 модулей одинаковых будет, 12 кнопок со светодиодами, линейный потенциометр и мотор. В итоге уместился в STM32F030F4P6, вся периферия на сдвиговых регистрах, которые управляются записью в BSRR через DMA, связь с ардуиной-конвертером для ПК через I2C, на который тоже DMA повесил, даже потенциометр им считывается, МК половину времени хуи пинает. Хотел еще быстрый синус сделать, чтобы изменять яркость светодиодов волнами, сначала через приближение полиномом Тейлора привет, вузовский матан, нахуя было давать в экзмене их формирование и погрешность, если все гуглится в два счета, но скорость не устраивала, в итоге пришел к поисковой таблице и числам с фиксированной запятой.
Тред утонул или удален.
Это копия, сохраненная 6 июля 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски