ARV, хватит уже бесполезные "советы" раздавать!
Абдуринщики пусть ногами дрыгают, а мне работать надо! Передавать по SPI три байта с паузами в 10мс можно и без DMA. Но вот если этих байт штук 30, а скорость передачи всего лишь 100кГц, то все, что МК сможет делать — это передавать данные!
Мужики знакомые пытались на абдурине ногодрыгом сделать. Получилось ужасно.
[offtop], кстати, а вы-то сами сколько убили на 1-wire, с нуля приступая к написанию кода? И как решили: на таймере с DMA или на UART с DMA?[/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ARV, опять флуд? Я все-таки жду чего-нибудь по теме, а не советов в стиле "ножками подрыгай, чо ты не как пацан?".
[offtop]Что такое "лунный календарь"? И при чем здесь астрофизика?[/offtop]
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Гуглил. Долго гуглил. Только подобное дерьмо — то на SPL, то на калокубе — и находилось...
Народ реально не хочет думать. А хочет решать проблемы не эффективным способом, а экстенсивным! По ссылке неудобная навигация по коду, поэтому я даже не нашел, где автор запрятал исходники!..
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ЧОрД! Опять я эти два слова перепутал. Надо усиленно лечить мозг ☺
В данном случае, естественно, интенсификация имелась в виду. Потому как вместо нормального адекватного подхода используется подход "[censored]-[censored] — и в продакшн!" — так любимый абдуринщиками и недотепами.
ПростоНуб писал(а):Eddy_Em, а чем SPL/SPI/DMA не устроило?
Во-первых, SPL == кал. Во-вторых, оно еще и deprecated!
Нет уж, если писать правильно, то только на голых CMSIS.
Ну, а вообще, понятно, что можно было бы даже из SPL выдрать нужный алгоритм. Был бы он. Когда я вижу код, разбросанный по 2-3 файла в туче директорий, я воспринимаю это как издевательство! И даже makefile отсутствует, чтобы посмотреть, что да как — это уж совсем ни в какие ворота не лезет...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Eddy_Em, оригинально. SPL предоставляет все необходимые определения во включаемых файлах и рабочие примеры, позволяя а любой момент работать с железом напрямую, чего не скажешь о CMSIS, предлагающий существенно более высокий уровень абстракции. Тогда понятно, почему 100КГц на STM32 вам кажется много, а до четырех мегагерц на Ардуине для анимации на LCD вполне нормален )))
ПростоНуб, жуть в полоску! Вам SPL кажется нормальным? Ну-ну...
Там ужасный оверхед. Одно дело - использовать эти функции на стадии инициализации (но ведь работа двойная: и даташит читать, и исходники SPL!), и совсем другое — во время работы. Я уже выше упоминал, как мучился с opencm3, не понимая, почему оно мне лишние импульсы на 1-wire дает. А все оказалось просто: библиотека "не успевала" вопремя сделать нужные присваивания. Напрямую все заработало прекрасно.
Посмотрите в код у меня на гитхабе: без SPL/калокуба/прочей дряни все получается намного эффективней + читать (а значит и поддерживать) это проще. Разве что USB не было — на основе набросков кода, которым поделился товарищ на mcu.goodboard.ru, я сделал USB-HID (эмуляция клавиатуры и мыши) и эмуляцию PL2303. Начал было делать классический USB ACM, но как-то все некогда добить его. Да и не нужен мне он: мне эмуляция pl2303 больше нравится, т.к. в системе появляется /dev/ttyUSBx, а не поганый /dev/ttyACMx (во втором случае в некоторых недоработанных дистрибутивах на появление этого устройства откликается modemd и "захватывает" его, не позволяя открыть порт напрямую).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Eddy_Em, я почти не пользуюсь функциями SPL, я пользуюсь ее включаемыми файлами и смотрю исходники функций, для лучшего понимания даташит. И очень часто это мне экономит уйму времени, так как какой-то ERRATA могу и пропустить. А вот с CMSIS есть смысл общаться только если важна кроссплатформенность (возможность переноса кода на другой МК, обычно, более производителный). Хотя исходники CMSIS изучаю так же с удовольствием )
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704006#p3704006"]я почти не пользуюсь функциями SPL, я пользуюсь ее включаемыми файлами и смотрю исходники функций, для лучшего понимания даташит.[/uquote]
Те кто совсем не пользуются SPL подключают один CMSIS хедер и все, что, кстати, не мешает им просматривать исходники функций чего угодно.
Reflector, а смысл? CMSIS более высокоуровневый, чем SPL. Поэтому в качестве примера работы непосредственно с аппаратными средствами МК он менее удобен, чем SPL. Дольше продираться до нужного кода. А включаемые файлы SPL меня вполне устраивают, занимая существенно меньший объем, чем включаемые файлы CMSIS, что только положительно влияет на время сборки.
Понятно, что зависит от проекта. На младших STM32 толку от CMSIS мало. На старших он вполне востребован. Но необходимость в старших STM32 возникает очень редко, а в младших - часто. А чаще всего необходимость возникает вообще в STM8/AVR )
ПростоНуб писал(а):А вот с CMSIS есть смысл общаться только если важна кроссплатформенность
Чегооо???
ПростоНуб писал(а):CMSIS более высокоуровневый, чем SPL.
Чегооо???
ПростоНуб писал(а):включаемые файлы SPL меня вполне устраивают, занимая существенно меньший объем, чем включаемые файлы CMSIS
Блин, ну просто перманентное деление на нуль! А ничего, что заголовки SPL включают (автоматом) еще и заголовки CMSIS?
ПростоНуб писал(а):На младших STM32 толку от CMSIS мало
Опять деление на нуль.
ПростоНуб писал(а):А чаще всего необходимость возникает вообще в STM8/AVR
Сейчас между STM32F030 и STM8S105 разница в цене столь несущественная, что для мелких серий проще ARM взять, чем восьмибитник. А аврки в наше время только уж совсем динозавры используют (т.к. у аврок слишком скудный набор периферии + они намного дороже тех же STM8).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
ПростоНуб, у меня нет потребности в изготовлении питающихся от батарейки устройств! Рядом всегда есть розетка, большой аккумулятор или генератор.
Но и STM32 бывают L-серии. Правда, дорогущие жутко. Здесь — да, выгодней может быть STM8 взять.
Ну а вам, дорогой, я советую-таки погуглить, что такое CMSIS. А то такое невежество показываете...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ