Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: STM32 новичку в ARM что к чему

Сб янв 14, 2023 23:35:03

доживут до последнего года 21 века…
Очередной конец времени, вообще-то в 2038 году. Ты time_t на 64 бита уже перевёл?

а есть ли смысл на эти WCH переходить,
Тебе с твоими потребностями и скоростью разработки однозначно нет.

пока STM32 еще есть в большом количестве
В промышленных масштабах их нет. И не только для нас.

и по сравнительно невысокой цене
Это только для амёб.

но разве у китайцев есть аналоги дешевле и круче)?
Есть всяко разно. И будет больше. В СВЧ они запад уже перегнали, в цифре тоже не за горами.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 00:19:53

Ты time_t на 64 бита уже перевёл?

Разрабы glibc это за меня сделали:
Код:
#ifdef __USE_TIME_BITS64
typedef __time64_t time_t;
#else
typedef __time_t time_t;
#endif

Пока что, правда, по дефолту оно 32-битное, но это ненадолго - так, для обратной совместимости (как раньше с максимальным размером файлов было).
Ан нет, по дефолту таки уже 64 бита:
Код:
cat 1.c
#include <sys/types.h>
#include <sys/stat.h>

#include <stdio.h>
#include <unistd.h>

int main(void)
{
    struct stat sb;

    printf("sizeof time_t: %zu\n", sizeof(time_t));
    printf("sizeof stat timestamp: %zu\n", sizeof(sb.st_atime));

    return 0;
}
> gcc 1.c && ./a.out
sizeof time_t: 8
sizeof stat timestamp: 8

В промышленных масштабах их нет.

Это сколько? Миллион штук за раз? Потому как по 5000 штук тоже на али продают вполне себе.
Это только для амёб.

Ну, тогда буду амебой, если для людей они на порядок дороже =D
Последний раз редактировалось Eddy_Em Вс янв 15, 2023 00:25:27, всего редактировалось 2 раз(а).

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 00:20:47

Eddy_Em писал(а):[offtop]COKPOWEHEU, ты чего так кричишь?[/offtop]
Э?
Eddy_Em писал(а):Это - единственно верный путь инициализации. Легко читаемый, малый объем кода...

Ну да, последовательность явных вызовов это наиболее читаемый способ инициализации. Уж точно лучше, чем в массиве кодировать все подряд, а потом парсить кодом.
Eddy_Em писал(а):А у SSD1306 все намного проще. Жаль, там нужно ногами дрыгать: CS/DC

Это же I2C-шный OLED, где команды отличаются от данных адресом, а не отдельной ногой. Нога CD у SPI-ЖК дисплеев обычно.
VladislavS писал(а):Тоже никаких проблем. Компилятор и IDE те же. WCH-Link с OpenOCD работает. Пили не хочу.
Какие-то у вас странные приоритеты...
На IDE так-то вообще плевать. А вот то, что кроме как с WCH-link и патченным OpenOCD эта штука не работает - проблема. Ну нет у меня wch-link, и не нужен. Да, и команды патченного openocd завязаны на специфичные команды wch-link. Что им мешало реализовать хоть какой-то стандарт?!
Впрочем, если вы считаете подобное элементарной задачей, я могу организовать удаленный доступ к CH32V307, переходнику SWD на FT4232 и отладчику на нем же (почему нет, он все равно четырехканальный, а под JTAG/SWD всего один канал нужен).

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 00:28:43

COKPOWEHEU писал(а):Э?

Размер шрифта гигантский.
COKPOWEHEU писал(а):Уж точно лучше, чем в массиве кодировать все подряд, а потом парсить кодом.

Не все подряд, а макросами. И все будет хорошо. Если нужны миллисекундные задержки, то вообще можно это конечным автоматом реализовать (я выше пример инициализации мелкого экранчика приводил, там после reset надо выждать какое-то время - реализовано в КА).
COKPOWEHEU писал(а):Это же I2C-шный OLED

Не, конкретно этот был SPI'ным.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 02:19:26

На IDE так-то вообще плевать.
Как можно плевать на инструмент? Я с ней непосредственно взаимодействую. Написание кода и отладка должны быть удобными.

А вот то, что кроме как с WCH-link и патченным OpenOCD эта штука не работает - проблема.
Отладчик есть и работает. В чём проблема то? Вот если бы не было, тогда проблема.

Ну нет у меня wch-link, и не нужен.
А чего тогда жалуетесь? Не нужен - просто проходите мимо.

Да, и команды патченного openocd завязаны на специфичные команды wch-link. Что им мешало реализовать хоть какой-то стандарт?!
И что такого? Вы вообще видели какой зоопарк адаптеров в OpenOCD? Одним больше, одним меньше - ничего не меняет. Даже исходники есть. Вот реально, совершенно фиолетово по какому он там протоколу работает. Я при от ладке этого не вижу.

Впрочем, если вы считаете подобное элементарной задачей, я могу организовать удаленный доступ к CH32V307,
Зачем? У меня свой есть.

переходнику SWD на FT4232 и отладчику на нем же (почему нет, он все равно четырехканальный, а под JTAG/SWD всего один канал нужен).
Меня и WCH-Link устраивает. Он ещё и дешевле в несколько раз.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 08:42:31

COKPOWEHEU писал(а):Э?

Размер шрифта гигантский.

Наверное, это у вас какой-то баг, я со шрифтом ничего не делал. Только выделил полужирным буквы f и vf.
Eddy_Em писал(а):Если нужны миллисекундные задержки

Мы про инициализацию говорим, какие еще миллисекундные задержки?
Задержки при инициализации будут критичны только если мы делаем малопотребляющее устройство, которое должно часто выходить из сна и перерисовывать дисплей. Хм, а ведь довольно стандартная задача...
VladislavS писал(а):Как можно плевать на инструмент? Я с ней непосредственно взаимодействую.

Ну а я не пользуюсь. А вообще, IDE это всего лишь оболочка вокруг текстового редактора, файлового браузера, программатора и отладчика. Если заработают они, с IDE неразрешимых проблем тоже не будет.
VladislavS писал(а):Отладчик есть и работает. В чём проблема то? Вот если бы не было, тогда проблема.

Если бы работал, я бы ничего не сказал. В том-то и дело, что со стандартным софтом и железом оно НЕ работает.
VladislavS писал(а):А чего тогда жалуетесь? Не нужен - просто проходите мимо.
Так мне ж не программатор тамошний нужен, а контроллер!
VladislavS писал(а):Меня и WCH-Link устраивает. Он ещё и дешевле в несколько раз.

Еще не хватало под каждого производителя контроллеров покупать новый программатор.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 09:13:07

Если бы работал, я бы ничего не сказал.
Ну так работает.
СпойлерИзображение
ch32v307.jpg
(235.34 KiB) Скачиваний: 33


В том-то и дело, что со стандартным софтом и железом оно НЕ работает.
Софт OpenOCD и GDB работает. Куда уж стандартней? А железо. Какое вы считаете стандартным? По мне так всё что через USB подключается - стандартное.

Еще не хватало под каждого производителя контроллеров покупать новый программатор.
Зажрались. Если бы мне 20 лет назад сказали, что вместо J-Link за $150 (позднее его клона за $25) я смогу пользоваться WCH-Link за $3 я бы рыдал от счастья.

У меня другие претензии к WCH: очень слабая низкоуровневая часть (стартап, линкерскрипт) и RISC-V код (полностью переписывать надо). Слабая документация - тот же USB только названия регистров и бит описаны, а архитектуры и поведенческой модели нет. Приходится по примерам кода разбираться. Вот это реально затрудняет работу, а не WCH-Link.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 09:49:27

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

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 09:52:13

COKPOWEHEU, на компе у меня от включения питания для появления окна логина sddm проходит аж 15 секунд. Это ОЧЕНЬ много!
А если какая-то железка будет аж секунду что-то думать, прежде чем включиться, то нафиг она такая нужна?

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 10:11:33

Если бы работал, я бы ничего не сказал.
Ну так работает.

А что вы хотели продемонстрировать непонятным скриншотом?
Лучше покажите, как запустите контроллер с другим программатором, не wch-link и не j-link.
VladislavS писал(а):Если бы мне 20 лет назад сказали, что вместо J-Link за $150 (позднее его клона за $25) я смогу пользоваться WCH-Link за $3 я бы рыдал от счастья.

А если бы вам сказали, что вообще не надо ничего покупать? Речь-то именно об этом, что нормальные средства УЖЕ есть, какой смысл покупать вендор-лоченные?
Eddy_Em писал(а):COKPOWEHEU, на компе у меня от включения питания для появления окна логина sddm проходит аж 15 секунд. Это ОЧЕНЬ много!

Хотите сказать, это время уходит на инициализацию дисплея что ли?! Что, кроме него там других процессов нет?
Причем экономить время загрузки на компьютере это вообще какое-то извращение. Даже если его раз в день включать - что 15 секунд, что 15 минут. Не говоря уж о режиме сна, когда "включение" мгновенное.
И, кстати, если я правильно помню, именно для распараллеливания загрузки придумывали systemd.
Eddy_Em писал(а):А если какая-то железка будет аж секунду что-то думать, прежде чем включиться, то нафиг она такая нужна?

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

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 10:28:57

COKPOWEHEU, не надо про systemd! За этот высер поцтерингу желает самой мучительной смерти большинство вменяемых линуксоидов!
А чтобы МК не тупил в огромных миллисекундных паузах, и нужно инициализацию как КА реализовывать.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 11:23:30

А что вы хотели продемонстрировать непонятным скриншотом?
И что вам там непонятно? На скриншоте отладка CH32V307 в SRAM в Visual Studio. Я же не виноват, что вы не знаете как выглядит отладка.

Лучше покажите, как запустите контроллер с другим программатором, не wch-link и не j-link.
Зачем? Какие дополнительные возможности в отладке я от этого получу?

А если бы вам сказали, что вообще не надо ничего покупать?
А ещё лучше приплатили бы :)

Речь-то именно об этом, что нормальные средства УЖЕ есть, какой смысл покупать вендор-лоченные?
Можно сидеть и о смыслах рассуждать, а можно решать задачу доступным инструментом.

Добавлено after 36 minutes 10 seconds:
нужно инициализацию как КА реализовывать.
Кстати, ни разу не видел в твоём коде реализацию КА.

Re: STM32 новичку в ARM что к чему

Вс янв 15, 2023 13:08:35

Кстати, ни разу не видел в твоём коде реализацию КА.

Да ладно! У меня много какой логики на КА и построено. Вот, тот же код инициализации экранчика, что я выше бросал:
Код:
void ssd1306_process(){
    switch (state){
        case ST_UNINITIALIZED: // reset screen
            //SEND("ST_UNINITIALIZED\n");
            state = ST_RSTSTART;
            Tloc = Tms;
            // high CS, low RST
            CS_HI(); RST_LO();
        break;
        case ST_RSTSTART: // reset procedure is over
            //SEND("ST_RSTSTART\n");
            if(Tms - Tloc > RST_PAUSE){
                state = ST_RESETED;
                RST_HI();
                Tloc = Tms;
            }
        break;
        case ST_RESETED: // initialize screen
            //SEND("ST_RESETED\n");
            if(Tms - Tloc > BOOT_PAUSE){
                ssd1306_init();
                state = ST_IDLE;
            }
        break;
        case ST_NEED4UPDATE:
            //SEND("ST_NEED4UPDATE\n");
            ssd1306_UpdateScreen_();
            state = ST_IDLE;
        break;
        case ST_IDLE:
        default:
        break;
    }
    ;
}

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 10:37:53

А чтобы МК не тупил в огромных миллисекундных паузах, и нужно инициализацию как КА реализовывать.

Но в фанатизм впадать тоже не надо. Если все время старта так и так незаметно невооруженным взглядом, то и на усложнении алгоритма вы ничего не выиграете.
VladislavS писал(а):Я же не виноват, что вы не знаете как выглядит отладка.
Вам показать как выглядит отладка? В смысле белые буквы в черной консоли.
VladislavS писал(а):Зачем? Какие дополнительные возможности в отладке я от этого получу?

Универсальность, например. У того же ft2232 / 4232 каналов несколько, можно параллельно программированию еще и отладку проводить, или обычный обмен.
Ну и в ограничениях китайцев убедитесь своими глазами, раз на слово не верите.
VladislavS писал(а):Можно сидеть и о смыслах рассуждать, а можно решать задачу доступным инструментом.

Вот только доступным инструментом задача, как видите, не решается, надо покупать какой-то специфичный.

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 12:13:34

Вам показать как выглядит отладка? В смысле белые буквы в черной консоли.
Eddy_Em покусал? Бывает :) Только не отладка это ни разу.

Универсальность, например. У того же ft2232 / 4232 каналов несколько,
Что за универсальность? У меня за годы эмбеддерства всяких разных отладчиков (среди которых нет ft2232, ибо не отладчик это вовсе) несколько тумбочек наберётся. Мне запустить туда руку, вытащить первый попавшийся и причитать какие WCH негодяи не сделали его поддрежку?

можно параллельно программированию еще и отладку проводить, или обычный обмен.
Прямо таки параллельно программирование, отладку и обмен? Да ещё в командной строке GDB? Извините, не верю :)

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

Вот только доступным инструментом задача, как видите, не решается, надо покупать какой-то специфичный.
У меня, как видите, задача как раз решается доступным инструментом. Если для вас WCH-Link недоступен, тогда сожалею.

СпойлерЯ тебя полюбил, я тебя научу (с) Кин-дза-дза.
За то время, что ты тратишь на подобное
Изображение
Можно на несколько десятков нормальных заработать. Ещё и дешевле выйдет, чем россыпь.
Изображение

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 12:27:41

Только не отладка это ни разу.

А вы что, думали, что отладка это когда мышкой в GUI тыкаешь, да исходный код строчка за строчкой проходишь? Отладка это гораздо более широкое понятие, в него в первую очередь входит отладочный вывод и логи.
VladislavS писал(а):Прямо таки параллельно программирование, отладку и обмен? Да ещё в командной строке GDB? Извините, не верю

Что-то вы все в одну кучу смешали.
VladislavS писал(а):Это у вас в голове ограничение. А кому надо работать - отлаживают и не придумывают проблем там где их нет.

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

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 12:46:20

А вот мне все VladislavS про gdb рассказывал-рассказывал, я в итоге и сдался, пару-тройку месяцев назад таки попробовал. И ворвался… Я теперь некоторые вещи, которые невнятно в мануале рассказаны, прямо в gdb проверяю. Так и с тем же RTC, когда не совсем понял, нужно ли его разблокировать каждый раз, когда дату/время подкорректировать хочешь — взял, проверил так и эдак в gdb, вынес вердикт, внес в код.
Понятно, что тот же USB невозможно пошагово отладить, зато можно watch добавить на переменную или точку останова где-нибудь, где не сильно критично..

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 12:55:38

А вы что, думали, что отладка это когда мышкой в GUI тыкаешь, да исходный код строчка за строчкой проходишь? Отладка это гораздо более широкое понятие, в него в первую очередь входит отладочный вывод и логи.
Отладка это возможность получить полную информацию о состоянии и поведении системы во времени в любой момент времени. Применительно к микроконтроллерам это возможность смотреть и изменять состояние множества регистров и памяти, наблюдать и изменять ход выполнения программы. Отладочный вывод и логи не позволяют делать это оперативно, а зачастую и вообще не позволяют.

Что-то вы все в одну кучу смешали.
Я? Это вы там что-то параллельно программируете и отлаживаете. И ещё обмен ведёте. Прямо пару сообщений выше.

Угу, и изучают новую IDE под каждый контроллер.
Это где так?

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

а не так, как хотят незнакомые китайцы
Держу пари, китайцы про вас знать не знают и слыхать не слыхивали.

или работодатель.
Работодателя волнуют только деньги и результат работы в нужный срок.

Добавлено after 5 minutes 27 seconds:
пару-тройку месяцев назад таки попробовал.
Когда в мире наступит глобальный голод? Когда китайцы научатся есть вилками! :)

В GUI одновременно доступно намного больше информации, плюс взаимодействовать с ней и менять что-то сильно удобней.

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 13:27:31

А вот мне все VladislavS про gdb рассказывал-рассказывал, я в итоге и сдался, пару-тройку месяцев назад таки попробовал. И ворвался…

Еще чуть-чуть, и до С++ дойдете :)
А если серьезно, я ж не против внутрисхемной отладки, это хороший инструмент, который позволяет и некоторые баги быстрее выловить, и железо, вон как у вас, проверять.
Просто не надо ставить знак равенства между отладкой и JTAG. Внутрисхемная отладка это лишь частный случай, без которого прекрасно можно обойтись. А вот без возможности написать исходный код, скомпилировать его и прошить, обойтись нельзя.
VladislavS писал(а):Отладка это возможность получить полную информацию о состоянии и поведении системы во времени в любой момент времени.
Разумеется, нет. Зачастую отладка это анализ записи последних действий, или состояния памяти, или еще что-то. И всегда - вдумчивое курение исходников.
VladislavS писал(а):Судя по всему, не можете, раз у вас глобальную проблему банальный WCH-Link вызывает.
В отличие от вас, я не отворачиваюсь от проблемы, а хотя бы признаю ее. Возможно, когда-нибудь удастся решить, возможно даже по-человечески.

Re: STM32 новичку в ARM что к чему

Пн янв 16, 2023 14:13:07

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