Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
1

IDE или консоль?

16.06.2020, 17:23. Просмотров 712. Ответов 42
Метки нет (Все метки)

Цитата Сообщение от locm Посмотреть сообщение
тоже как вы ругает IDE и отладчики и предпочитает makefile и отладку выводом строк в USART
Не знаю как он, а я IDE не ругаю. Местами это довольно удобная штука. Особенно если программисту хватило любопытства залезть под капот и посмотреть как именно происходит магия превращения исходного кода в исполняемый.
Пользоваться или нет IDE, makefile'ами, разными видами отладки пусть каждый решает сам. Но для этого надо сначала попробовать.
Цитата Сообщение от locm Посмотреть сообщение
Ядро компании ARM. Периферия от ST.
При работе с контроллерами ядро от периферии неотделимо. Осваивать придется и то и другое, причем одновременно.
Цитата Сообщение от locm Посмотреть сообщение
Ну вот вы посмотрели и что вычитали?
Я уже писал об этом.
Возможно, я недостаточно внимательно читал ваши посты, но кроме бреда про 72 МГц со старта ничего подходящего не припомню.
Цитата Сообщение от locm Посмотреть сообщение
Я об этом пишу что способ не самый лучший из-за это вы думаете что STM32 сложные, не это не так.
Вы пишете о своих впечатлениях, основанных на опыте, либо на том, что разработчики прячут эту сложность за библиотеками и конфигураторами.
Я же говорю про объективные различия.
Можете просто сравнить количество регистров, отвечающих за какую-нибудь периферию. Можете объем прошивки "Helloworldа". Да даже ваш Blink гораздо менее прост и очевиден, чем его аналог на AVR. Да любой объективный критерий возьмите и попробуйте сравнить объективно и без фанатизма.
Цитата Сообщение от locm Посмотреть сообщение
Никто не говорит что makefile плох, но он не для начинающих, а для тех у кого есть некоторый опыт и желание возиться с ручным созданием проекта.
Никто не мешает взять сторонний makefile, будет ничуть не сложнее, чем в IDE. Ну вместо кнопки "собрать и прошить" то же самое придется набирать в консоли. По сути никакой разницы.
Цитата Сообщение от locm Посмотреть сообщение
Мигает. Ссылка на проект в начале сообщения.
Осталось разобраться как его собрать, потому что напрямую оно ожидаемо не работает.
Чтож, буду экспериментировать чего ему не хватает.
 Комментарий модератора 
тема вынесена отсюда
Программирование микроконтроллеров на языке С
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2020, 17:23
Ответы с готовыми решениями:

IDE vs Консоль. Java
Разгорелся тут спор во вверенном мне разделе. Посему переношу всю полемику сюда. Оригинал темы:

Как заставить IDE выводить программу в консоль?
Есть программа на паскале, генерирующая лабиринт. Переписал на Java, но компилятор выводит только...

obj\Debug\IDE.o||In function `Z11OpenProjectv':| C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|2 36|undefined reference to `GetOpenFileNam
obj\Debug\IDE.o||In function `Z11OpenProjectv':|...

Вывод warning в консоль IDE с указанием откуда вызывалась функция
#define STRING2(x) #x #define STRING(x) STRING2(x) #define PRINT_WARNING(description) ...

42
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
16.06.2020, 17:45 2
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
При работе с контроллерами ядро от периферии неотделимо.
Что подразумеваете под осваиванием ядра?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Никто не мешает взять сторонний makefile, будет ничуть не сложнее, чем в IDE.
Набор файлов будет разным и все равно править придется прописывая каждый файл.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну вместо кнопки "собрать и прошить" то же самое придется набирать в консоли. По сути никакой разницы.
Вместо одного клипа мышкой нужно ввести многобукаф в консоль и ни разу не ошибиться. Сейчас не времена DOS!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Осталось разобраться как его собрать, потому что напрямую оно ожидаемо не работает.
Работает. Если собираете с оптимизацией добавьте __ASM("nop") в цикл for.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
16.06.2020, 18:54  [ТС] 3
Цитата Сообщение от locm Посмотреть сообщение
Что подразумеваете под осваиванием ядра?
Как минимум, вся та магия, что нужна для сборки хоть какого-то проекта, система прерываний.
Цитата Сообщение от locm Посмотреть сообщение
Набор файлов будет разным и все равно править придется прописывая каждый файл.
В IDE то же самое делается через менюшки. И что?
Цитата Сообщение от locm Посмотреть сообщение
Вместо одного клипа мышкой нужно ввести многобукаф в консоль и ни разу не ошибиться. Сейчас не времена DOS!
Вы имеете хоть малейшее представление о возможностях консоли? Подумайте, почему ей продолжают пользоваться.
Я намекну: она быстрее, чем GUI. Естественно, это не единственная причина.
Цитата Сообщение от locm Посмотреть сообщение
Работает. Если собираете с оптимизацией добавьте __ASM("nop") в цикл for.
Так я сразу поверил что работает, проблема была в том чтобы воспроизвести.
В общем, если кому-то будет интересно, выложил исправленный проект под обычный makefile.
Правда, получаемый файл получается чуть больше: 56 байт вместо 48. Возможно, не хватает каких-то флагов или просто особенность gcc.
0
Вложения
Тип файла: zip Blink_56_bytes.zip (1.84 Мб, 5 просмотров)
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
16.06.2020, 19:30 4
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Как минимум, вся та магия, что нужна для сборки хоть какого-то проекта
Понятнее не стало...

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
система прерываний.
Она такая сложная? Не нудны вложенные прерывания - не пользуйтесь.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В IDE то же самое делается через менюшки. И что?
Нет, можно указать папку и из нее будут разом добавлены все исходные файлы. Это гораздо проще чем вручную добавлять по одному в makefile.

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

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Я намекну: она быстрее, чем GUI. Естественно, это не единственная причина.
Быстрее набрать в консоли 100 символов ни разу не ошибившись вместо того чтобы раз кликнуть мышкой?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Правда, получаемый файл получается чуть больше: 56 байт вместо 48.
Не все ли равно? Отличия не такие существенные.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
16.06.2020, 20:46  [ТС] 5
Цитата Сообщение от locm Посмотреть сообщение
Понятнее не стало
Хорошо, начнем с начала. Вы говорите что у любых ARM одно ядро на многих производителей, из-за чего, якобы, его изучать проще. Но ведь периферия все равно отличается, то есть от общего ядра изучение проще не становится.
Цитата Сообщение от locm Посмотреть сообщение
Нет, можно указать папку и из нее будут разом добавлены все исходные файлы. Это гораздо проще чем вручную добавлять по одному в makefile.
А что мешает в makefile прописать целую папку? Более того, там несложно сделать чтобы компилировались вообще файлы, которые находятся в папке, даже если добавлены позже. Многие так и делают, я предпочитаю подключать только то что нужно.
Цитата Сообщение от locm Посмотреть сообщение
В винде без нее прекрасно обходятся. Визуальное представление данных информативнее.
И именно поэтому они сейчас пытаются продвигать свой powershell. Единственное преимущество графического представления - низкий порог входа. Там можно попытаться натыкать решение интуитивно. Но сложность разработки GUI здорово ограничивает функционал, поэтому новый функционал добавляется сначала в виде ключа запуска и только потом, если повезет, в виде кнопки.
Впрочем, данный тред - не место еще и срачу GUI/CLI
Цитата Сообщение от locm Посмотреть сообщение
Быстрее набрать в консоли 100 символов ни разу не ошибившись вместо того чтобы раз кликнуть мышкой?
Быстрее нажать 5 клавиш на клавиатуре ("make" + <enter>, а после единственного ввода "вверх" - "энтер") чем целиться мышкой по кнопке. Это просто в винде консоль ущербная, а нормальная консоль гораздо лучше.
Цитата Сообщение от locm Посмотреть сообщение
Не все ли равно? Отличия не такие существенные.
Для меня эта разница несущественна, просто любопытно откуда она берется.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
16.06.2020, 21:32 6
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы говорите что у любых ARM одно ядро на многих производителей, из-за чего, якобы, его изучать проще.
Что подразумеваете под изучением ядра? Изучение асма?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но ведь периферия все равно отличается, то есть от общего ядра изучение проще не становится.
Изучаем периферию. Ядро для чего изучать?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А что мешает в makefile прописать целую папку?
А если нужно не все файлы добавить, или в зависимости от цели сборки те или иные?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Но сложность разработки GUI здорово ограничивает функционал
В чем сложность разработки GUI? Для этого есть визуальные дизайнеры форм.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
поэтому новый функционал добавляется сначала в виде ключа запуска и только потом, если повезет, в виде кнопки.
Зачем делать двойную работу? Все мои проги графические (GUI). Консольных как таковых нет - не нужны.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Впрочем, данный тред - не место еще и срачу GUI/CLI
Кто к чему привык, но большинство предпочитает GUI.
В начале 90-ых когда появилась винда про DOS забыли потому что визуальное представление данных намного удобнее. Если вы напишите консольную прогу для винды, мало кто ней будет пользоваться. Или если прога нужная к ней прикрутят графический интерфейс как это было с дудкой (AvrDude) потому что 1500 раз вводить текст в консоль ни разу не ошибившись никто не хочет.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Быстрее нажать 5 клавиш на клавиатуре ("make" + <enter>, а после единственного ввода "вверх" - "энтер") чем целиться мышкой по кнопке.
Проще нажать F7 на клаве с которой связана функция сборки в IDE.

С make все не так радужно как пишите. Если в файле несколько целей сборки, нужно указать цель, а это еще некоторое число нажатий кнопок... В IDE будет собрана цель по умолчанию, которую при необходимости можно сменить 2 кликами мышкой.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Для меня эта разница несущественна, просто любопытно откуда она берется.
Разные ключи сборки, разные версии компилятора, разные уровни оптимизации. Если добавили __ASM("nop") в цикл, это также увеличит размер.
Асм листинг такой.
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(15)      RCC->APB2ENR = RCC_APB2ENR_IOPCEN; // Вкл. тактирование порта GPIOC.
08000008    ldr r3, [pc, #28]   ; (0x8000028 <Reset_Handler+32>)
0800000A    movs    r2, #16
0800000C    str r2, [r3, #24]
(16)      GPIOC->CRH = GPIO_CRH_MODE13;      // Настройка вывода PC13 как выхода.
0800000E    sub.w   r3, r3, #65536  ; 0x10000
08000012    mov.w   r2, #3145728    ; 0x300000
08000016    str r2, [r3, #4]
(17)  
(18)      while(1)
(19)      {
(20)          GPIOC->ODR ^= (1<<13);         // Инвертирование состояния вывода PC13.
08000018    ldr r2, [r3, #12]
0800001A    eor.w   r2, r2, #8192   ; 0x2000
0800001E    str r2, [r3, #12]
08000020    ldr r2, [pc, #8]    ; (0x800002c <Reset_Handler+36>)
(21)          for (uint32_t i=0; i<1000000; i++);
08000022    subs    r2, #1
08000024    bne.n   0x8000022 <Reset_Handler+26>
08000026    b.n 0x8000018 <Reset_Handler+16>
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
17.06.2020, 01:19  [ТС] 7
Цитата Сообщение от locm Посмотреть сообщение
Что подразумеваете под изучением ядра? Изучение асма?
Это вы начали разговор про одинаковые ядра, зачем меня спрашивать?
Цитата Сообщение от locm Посмотреть сообщение
А если нужно не все файлы добавить, или в зависимости от цели сборки те или иные?
А если не искать проблем на ровном месте? Вы же сами понимаете что изобретаете сейчас какие-то безумные условия, в которых ваша точка зрения будет обладать преимуществом.
Цитата Сообщение от locm Посмотреть сообщение
В чем сложность разработки GUI? Для этого есть визуальные дизайнеры форм.
У вас есть другое объяснение?
Цитата Сообщение от locm Посмотреть сообщение
Зачем делать двойную работу?
Вот именно. Зачем геморроиться с графикой, когда консоль покрывает большую часть потребностей и намного проще в программировании.
Цитата Сообщение от locm Посмотреть сообщение
Кто к чему привык, но большинство предпочитает GUI.
Большинство непрофессионалов. И я уже описал почему: в GUI возможно найти решение методом тыка. По мере освоения инструмента роль клавиатуры возрастает. Уже много кому предлагал простой эксперимент: ввод формулы в Word, Writer и Tex. Лично у меня разница была, кажется, в 3 раза.
Цитата Сообщение от locm Посмотреть сообщение
потому что 1500 раз вводить текст в консоль ни разу не ошибившись никто не хочет.
Еще раз: речь про НОРМАЛЬНУЮ консоль, а не про виндовую. Но даже в виндовой я не представляю насколько криворуким надо быть чтобы не суметь один раз набрать make, один раз make prog, а потом повторять эти команды стрелкой "вверх".
И каким мазохистом надо быть чтобы каждый раз запускать графический прошивальщик и попадать мышкой по кнопке "прошить". А уж какое веселье у них начинается при переходе между контроллером и компьютером или между двумя контроллерами. Когда одно и то же действие в одной IDE делается так, в другой сяк а в третьей разэдак.
Кстати, вот вам еще одно преимущество консольных программ: их можно встраивать в другие программы. Насколько я слышал, в новых AtmelStudio можно повесить запуск произвольной программы на горячую клавишу. Так что там удобнее: нажать одну кнопку чтобы запустилась консольная программа со всеми ключами и молча отработала или чтобы просто открылось окно, в котором еще надо нажать кнопку? Ах да! Еще в графических программах частенько забывают про аргументы командной строки, так что еще надо проверять не остался ли прошиваемый файл с прошлого запуска совсем другого проекта. Еще от кого-то тут на форуме слышал что та же Студия не имеет специальной переменной для имени контроллера. Вот для имени прошивки имеет, а для имени контроллера - нет. Так что все равно приходится лазить в настройки.
Цитата Сообщение от locm Посмотреть сообщение
С make все не так радужно как пишите.
Да неужели? Хорошо. В одном из проектов у меня есть три основные цели: рабочая под Linux, тестовая под win32 и финальная под обе предыдущие плюс очистка временных файлов:
Код
make
make arch=arch_win32
make release
Только что замерил: все 3 команды я набрал меньше чем за 10 секунд. Так сколько времени у вас займет две смены цели компиляции?
Вообще, очень странно программисту, то есть человеку, активно использующему клавиатуру, настолько ее бояться.
Цитата Сообщение от locm Посмотреть сообщение
Если добавили __ASM("nop") в цикл
Я ведь выложил свой вариант, могли бы и посмотреть. Там использован asm(""); вообще без команд. Только что перепроверил: asm("nop"); ведет себя точно так же, объем не возрастает. Еще обмануть компилятор можно добавив счетчику модификатор volatile, тогда объем вырастет на 12 байт.
Цитата Сообщение от locm Посмотреть сообщение
Асм листинг такой.
Из того что я пока вижу, отличие только в настройке тактирования.
Вот оно в чем дело! Я по привычке использовал битовые операции (|=) а вы - прямое присваивание (=). Если заменить в моем варианте модификацию на присваивание, получаются те же 48 байт.
Все, теперь все в порядке, причина различий обнаружена.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
17.06.2020, 12:52 8
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это вы начали разговор про одинаковые ядра, зачем меня спрашивать?
При чем тут одинаковые ядра. Разговор начался с того что вы написали что нужно изучать ядро.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
При работе с контроллерами ядро от периферии неотделимо. Осваивать придется и то и другое, причем одновременно.
Вот объясните что вы подразумеваете под изучением ядра? Учитывая что пишем на Си, т. е. асм знать ну нужно.


Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
А если не искать проблем на ровном месте? Вы же сами понимаете что изобретаете сейчас какие-то безумные условия, в которых ваша точка зрения будет обладать преимуществом.
Это не проблемы на ровном месте, а реальность. В одном проекте может быть несколько целей сборки отличающихся набором файлов находящихся в одной и той же папке. В зависимости от цели сборки может собираться под разные модели МК. В моих проектах это не редкость и IDE позволяет быстро и эффективно решать эту задачу. Просто ставим или снимает галочку возле файла и это определит будет ли он использован в сборке. Это отображается в дереве проекта и сразу видно какие файлы задействованы в сборке.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот именно. Зачем геморроиться с графикой, когда консоль покрывает большую часть потребностей и намного проще в программировании.
Вы не поняли. Зачем делать консольную прогу, а после переделывать в графическую?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Большинство непрофессионалов.
Большинство людей вообще ничего не знают о программировании. Именно они - большинство пользователей прог.
Вам нужно решить будут вашей прогой пользоваться 10 человек или 100 тысяч. Отсюда выбор платформы и метод представления информации (консоль или GUI). Но это обсуждение вообще не по теме.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
чтобы каждый раз запускать графический прошивальщик и попадать мышкой по кнопке "прошить".
Лучше каждый раз запускать консоль и писать текст в ней?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так что там удобнее: нажать одну кнопку чтобы запустилась консольная программа со всеми ключами и молча отработала
Причем здесь ключи запуска проги? Они к консоли не имеют никакого отношения и могут быть у GUI проги или у проги вообще без интерфейса.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В одном из проектов у меня есть три основные цели
Мало. В многих моих проектах цели сброрки для релиза, релиза в озу, отладки, отладки в озу и так для нескольких типов МК, т. е. может быть до 10 и больше целей сборки, т. к. код универсальный под разные МК.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Так сколько времени у вас займет две смены цели компиляции?
Смена цели в 2 клика мышкой. Они в списке на панели инструментов. Первый клик открывает список, второй выбирает цель.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вообще, очень странно программисту, то есть человеку, активно использующему клавиатуру, настолько ее бояться.
Дело не в этом. В разных проектах цели могут по разному называться и намного проще кликнуть по списку и выбрать в нем чем открывать makefile и смотреть как называется цель.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Я ведь выложил свой вариант, могли бы и посмотреть.
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Из того что я пока вижу, отличие только в настройке тактирования.
Я тоже выложил в архиве https://www.cyberforum.ru/atta... 1540203354 Могли бы и посмотреть.
0
Модератор
8199 / 6070 / 810
Регистрация: 14.02.2011
Сообщений: 21,057
17.06.2020, 13:06 9
COKPOWEHEU, locm, вы тему не забыли?
ТС хочет научится программировать, а не выяснять что лучше консоль или IDE
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
17.06.2020, 14:21  [ТС] 10
Цитата Сообщение от locm Посмотреть сообщение
При чем тут одинаковые ядра. Разговор начался с того что вы написали что нужно изучать ядро.
Где?
Цитата Сообщение от locm Посмотреть сообщение
Просто ставим или снимает галочку возле файла и это определит будет ли он использован в сборке. Это отображается в дереве проекта и сразу видно какие файлы задействованы в сборке.
Ну так пользуйтесь IDE если не хотите делать то же самое на makefile. Зачем вы мне-то, или ТСу, к примеру, это навязываете?
Цитата Сообщение от locm Посмотреть сообщение
Вы не поняли. Зачем делать консольную прогу, а после переделывать в графическую?
А почему вы мня спрашиваете зачем вы делаете графическую программу? Мне для своих нужд всегда хватало консольных. Для клиентов - другое дело: если "сделать и забыть" то можно и чисто графическую накидать. А если и сам пользоваться буду, то скорее гибрид. Либо ядро + оболочка, либо хотя бы внятная обработка аргументов командной строки.
Цитата Сообщение от locm Посмотреть сообщение
Лучше каждый раз запускать консоль и писать текст в ней?
А, так вот почему вы боитесь консоли! Ну, если ее насиловать использовать таким способом - естественно будет неудобно. Вы бы еще с экранной клавиатуры текст вводили - страдать так по полной.
Цитата Сообщение от locm Посмотреть сообщение
Мало. В многих моих проектах цели сброрки для релиза, релиза в озу, отладки, отладки в озу и так для нескольких типов МК, т. е. может быть до 10 и больше целей сборки, т. к. код универсальный под разные МК.
Это, конечно, хорошо, что вы пытаетесь быть объективным, но хорошо бы быть еще и последовательным. Итак, у вас десяток целей. Вбить имя нужной текстом явно быстрее, чем шариться по менюшкам, выискивая нужную. Таким образом вы подтвердили что для вашего случая консоль удобнее. А вопрос-то в чем?
Цитата Сообщение от locm Посмотреть сообщение
Смена цели в 2 клика мышкой. Они в списке на панели инструментов. Первый клик открывает список, второй выбирает цель.
Время-то назовите. Пока откроете менюшку, пока наведете на нужную кнопку из десяти похожих.
Цитата Сообщение от locm Посмотреть сообщение
Я тоже выложил в архиве https://www.cyberforum.ru/atta... 1540203354 Могли бы и посмотреть.
То есть мой вариант вы не смотрели. Еще раз предлагаю посмотреть. По крайней мере, тогда не будете выдавать дурацких догадок.
Для тех кто все еще не осилил
Мой вариант сделано именно на основе варианта locm. Только заставил этот вариант хоть как-то компилироваться, исправил баг с оптимизацией цикла и переместил мигалку на PB6.
Кроме того, в отличие от locm я не стал удалять *.elf файл, который можно дизассемблировать если понадобится.

Цитата Сообщение от ValeryS Посмотреть сообщение
ТС хочет научится программировать, а не выяснять что лучше консоль или IDE
Так пусть задает вопросы. Варианты с чего начать ему озвучили, литературу тоже.
Теперь мы можем чистой совестью заняться любимым делом - холиварами.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
17.06.2020, 15:16 11
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Где?
Здесь Программирование микроконтроллеров на языке С
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
При работе с контроллерами ядро от периферии неотделимо. Осваивать придется и то и другое, причем одновременно.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну так пользуйтесь IDE
Что я и делаю.
На мой взгляд это намного удобнее чем makefile. Но вы имеете право не согласится, т. к. на вкус и цвет...

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Зачем вы мне-то, или ТСу, к примеру, это навязываете?
Ну а вы зачем malefile навязываете?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Итак, у вас десяток целей. Вбить имя нужной текстом явно быстрее, чем шариться по менюшкам, выискивая нужную.
Я же написал.
Цитата Сообщение от locm Посмотреть сообщение
Смена цели в 2 клика мышкой. Они в списке на панели инструментов. Первый клик открывает список, второй выбирает цель.
Вот простейший случай с двумя целями, но их может быть гораздо больше.
Название: Target.png
Просмотров: 49

Размер: 4.3 Кб

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Время-то назовите.
Сколько у вас занимает пара кликов? В среднем 2 секунды.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
17.06.2020, 16:47  [ТС] 12
Цитата Сообщение от locm Посмотреть сообщение
Здесь Программирование микроконтроллеров на языке С
Это был ответ на ваше сообщение, так что ищите начало дискуссии выше. Хотя бы сюда: Программирование микроконтроллеров на языке С
Упс! Там ведь ответ на ваш вопрос.
Цитата Сообщение от locm Посмотреть сообщение
Ну а вы зачем malefile навязываете?
Где?!
Хватит мне уже всякую чушь приписывать!
Цитата Сообщение от locm Посмотреть сообщение
Сколько у вас занимает пара кликов? В среднем 2 секунды.
Рекомендую все-таки замерить. Двух секунд там не будет точно.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
17.06.2020, 16:59 13
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Это был ответ на ваше сообщение, так что ищите начало дискуссии выше.
Это ответ на вопрос?
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
В отличие от AVR, здесь придется лезть в ядро хотя бы для настройки тактирования.
То есть вы считаете что настройка тактирования относится в процессорному ядру ARM Cortex-M?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Где?!
Там же где
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ну так пользуйтесь IDE если не хотите делать то же самое на makefile. Зачем вы мне-то, или ТСу, к примеру, это навязываете?
Если вы считаете что я навязываю IDE, то вы навязываете makefile. Если вы не считаете что я навязываю IDE, то о чем вообще речь?

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Хватит мне уже всякую чушь приписывать!
Не я начал.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Рекомендую все-таки замерить. Двух секунд там не будет точно.
Да вы правы. Замерил. За 0.5 секунды успел. 2 секунды это если не спеша кликать.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
17.06.2020, 19:44  [ТС] 14
Цитата Сообщение от locm Посмотреть сообщение
То есть вы считаете что настройка тактирования относится в процессорному ядру ARM Cortex-M?
Честно? Даже не пытался интересоваться что там от лицензированного ядра ARM, а что накрутил производитель. Вы считаете что для изучения данного семейства это важно? Тогда поясните эту позицию более развернуто.
Цитата Сообщение от locm Посмотреть сообщение
Если вы считаете что я навязываю IDE, то вы навязываете makefile.
Вот не надо тут строить защитную реакцию. Вы зачем-то начали нападки на консоль, на Makefile и другие традиционные средства разработки. Я на это ответил, причем неоднократно уточнял что большая часть - мой личный подход.
Цитата Сообщение от locm Посмотреть сообщение
Да вы правы. Замерил. За 0.5 секунды успел. 2 секунды это если не спеша кликать.
Жаль. Я надеялся, обойдетесь без подтасовок. Ни в 2 секунды, ни тем более в 0.5 я не поверю.
0
Почетный модератор
11088 / 4059 / 389
Регистрация: 12.06.2008
Сообщений: 11,779
17.06.2020, 19:57 15
Как же... холивар и без меня Позволю себе не согласиться с вами обоими.

STM32 не на много сложнее, чем старинные МК. С AVR я не работал, но работал с PIC10 - PIC18 (думаю, они похожи на AVR). Так вот PIC проще только тем, что там настройки PLL зашиваются в специальную область памяти и выполняются аппаратно перед стартом основной программы. Настроить PLL в STM32 не очень сложно и код настройки есть в фирменной библиотеке. Работа с периферией по сложности не отличается. Работа с процессором тоже (такой же Си'шный код)... даже если писать на ассемблере, то трудно сказать, где сложнее - везде свои плюсы и минусы (на ARM'е больше разных инструкций, а на PIC'ах всего один регистр и сложнее делаются некоторые операции).

А если вам не нравится консоль, значит вы её не распробовали. Я тоже раньше пользовался только всякими IDE и не мог жить без GUI. Но сейчас не хочу даже смотреть в их сторону. Всё тормозит, интерфейс сложный и запутанный, никакой свободы действий и частенько подглючивают. В консоли команда набирается меньше одного раза (по табу консоль сама дополняет команду, поэтому целиком вводить не нужно), а потом просто кнопкой вверх выбираешь предыдущие команды. При этом ничего не тормозит, ничего не глючит и вы контролируете весь процесс. В конечном счёте IDE тоже запускает консольные утилиты, но делает это непрозрачно и отображает их вывод в маленьком окошке. Многие IDE даже не выделяют предупреждения от компилятора, которые могут указывать на ошибки в коде.

Цитата Сообщение от locm Посмотреть сообщение
Замерил. За 0.5 секунды успел. 2 секунды это если не спеша кликать.
Это если заранее её найти и потом на скорость ткнуть? На то, что бы разобраться в перегруженном интерфейсе тоже время уходит немалое.
1
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
17.06.2020, 20:34 16
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Даже не пытался интересоваться что там от лицензированного ядра ARM, а что накрутил производитель.
То есть вы даже не открывали даташит на МК с которым работали?
Там ведь есть блок-сехма устройства МК.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы считаете что для изучения данного семейства это важно?
Прежде чем писать нужно изучить предмет вопроса. Ну как же так? Я думал вы имеете представление о STM32 и хотя бы по диагонали смотрели даташит! Как можно было пропустить эту картинку на первых страницах?
Специально для вас я сделал скрин и обозначил ядро красной стрелкой, а систему тактирования зеленой. Все еще считаете что система тактирования входит в состав ядра?
IDE или консоль?


Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот не надо тут строить защитную реакцию.
Это не защитная реакция. Я указываю на политику двойных стандартов которую вы пытаетесь вести!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вы зачем-то начали нападки на консоль, на Makefile и другие традиционные средства разработки.
Никаких нападок. Я всего лишь написал что визуальное представление данных проще понять большинству людей. Массовый переход с DOS на Windows 95 в 90-ых годах тому подтверждение.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Ни в 2 секунды, ни тем более в 0.5 я не поверю.
Вы не верите что два клика мышкой можно сделать за 2 секунды? Вы мышку когда в последний раз в руках держали?

Цитата Сообщение от Humanoid Посмотреть сообщение
Я тоже раньше пользовался только всякими IDE и не мог жить без GUI. Но сейчас не хочу даже смотреть в их сторону. Всё тормозит, интерфейс сложный и запутанный, никакой свободы действий и частенько подглючивают.
IDE бывают разные и как инструмент их нужно выбирать. Все что на базе Eclipse втопку, т. к. тормозит. Из бесплатных и не тормозящих хорошо себя показал Code::Block и IDE основанные на нем.

Цитата Сообщение от Humanoid Посмотреть сообщение
Это если заранее её найти и потом на скорость ткнуть? На то, что бы разобраться в перегруженном интерфейсе тоже время уходит немалое.
Я же писал, выпадающий список находится на панели инструментов под строкой меню. Он всегда перед глазами и его искать не нужно. Скрин выше. Программирование микроконтроллеров на языке С
0
Почетный модератор
11088 / 4059 / 389
Регистрация: 12.06.2008
Сообщений: 11,779
17.06.2020, 23:37 17
Цитата Сообщение от locm Посмотреть сообщение
Я же писал, выпадающий список находится на панели инструментов под строкой меню. Он всегда перед глазами и его искать не нужно.
Когда отвлекаете внимание на что-то другое, то всё равно потом глаза начинают искать.
0
2513 / 1558 / 335
Регистрация: 09.09.2017
Сообщений: 6,293
18.06.2020, 12:58  [ТС] 18
Цитата Сообщение от Humanoid Посмотреть сообщение
Работа с периферией по сложности не отличается.
Не знаю что там в PIC, но если сравнивать с AVR на примере включения PB6:
AVR:
C
1
2
DDRB |= (1<<5);
PORTB |= (1<<5);
STM32F103:
C
1
2
3
RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;
GPIOB->CRL |= 0b0011 <<(6*4);
GPIOB->ODR |= (1<<5);
Особое внимание рекомендую уделить регистровой паре CRH:CRL и умножению номера порта на 4. Ну и включение тактирования, естественно, но это достаточно один раз запомнить.
Другая периферия тоже вроде бы не сложная, но содержит кучу регистров, что по началу просто сбивает с толку. Как минимум, надо понять какие из них нужные, а какие лучше не трогать.
Цитата Сообщение от Humanoid Посмотреть сообщение
А если вам не нравится консоль, значит вы её не распробовали.
Типичная проблема. У консоли довольно большой порог входа, зато если его преодолеть, возвращаться в GUI не захочется. Вот locm пока не преодолел. И да, в разных программах консоли бывают разными и каждую приходится осваивать отдельно. Скажем, навык работы в bash не поможет при вводе формул в tex.
Цитата Сообщение от locm Посмотреть сообщение
То есть вы даже не открывали даташит на МК с которым работали?
Конечно не открывал, я же с контроллером через регистры работаю. Очевидно что я буду предпочитать делать это методом тыка: потыкал в один бит регистра, не сработало, в другой - сработало. Я правильно понимаю вашу логику?
Цитата Сообщение от locm Посмотреть сообщение
Это не защитная реакция. Я указываю на политику двойных стандартов которую вы пытаетесь вести!
Нет, вы опять пытаетесь приписать мне что-то, что я не говорил. Это вы себе где-то нафантазировали двойные стандарты и пытаетесь повесить это на меня.
Цитата Сообщение от locm Посмотреть сообщение
Я всего лишь написал что визуальное представление данных проще понять большинству людей.
Разумеется, GUI проще и понятнее! С этим никто не спорит. Но расплата за это - скорость выполнения многих операций, скорость разработки и скорость ее работы. Не считая потребляемых ресурсов.
Обратите внимание, я написал "скорость выполнения многих операций". Не всех. Скажем, с графической информацией в консоли работать неудобно. Хотя возможно.
Цитата Сообщение от locm Посмотреть сообщение
Вы не верите что два клика мышкой можно сделать за 2 секунды?
Отчего же не верю. Вон, в Старкрафте некоторые сотни кликов в минуту делают. Правда, большая часть из них в одну точку...
Но нужно как минимум перенести руку с клавиатуры на мышку, найти глазами курсор, попасть им в кнопку выбора, дождаться пока список появится, прочитать названия (ладно, можно запомнить какое оно там по счету) и попасть еще и туда.
Цитата Сообщение от locm Посмотреть сообщение
Я же писал, выпадающий список находится на панели инструментов под строкой меню. Он всегда перед глазами и его искать не нужно. Скрин выше.
Проблема в том, что помимо этого списка там еще куча нужных и ненужных элементов.
0
2573 / 1165 / 152
Регистрация: 28.10.2011
Сообщений: 4,135
Записей в блоге: 6
18.06.2020, 13:23 19
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Особое внимание рекомендую уделить регистровой паре CRH:CRL и умножению номера порта на 4. Ну и включение тактирования, естественно, но это достаточно один раз запомнить.
Пишите на SPL. Будет проще и логичнее.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Другая периферия тоже вроде бы не сложная, но содержит кучу регистров, что по началу просто сбивает с толку.
SPL в помощь.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот locm пока не преодолел.
Я виндой пользуюсь. Линукс хороша на сервере или на малине, а не на домашнем компе!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Конечно не открывал, я же с контроллером через регистры работаю.
А так и не скажешь учитывая что ядро с периферий перепутали. Как можно было не заменить в даташите блок схему МК и не изучить ее? Разработчик должен знать устройство МК.

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Нет, вы опять пытаетесь приписать мне что-то, что я не говорил. Это вы себе где-то нафантазировали двойные стандарты и пытаетесь повесить это на меня.
Не нужно включать защитную реакцию (зеркальный ответ вам). Вы даже в этом ответе применили двойные стандарты!

Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Проблема в том, что помимо этого списка там еще куча нужных и ненужных элементов.
Список самый большой среди них и находится всегда на одном и том же месте экрана когда окно развернуто. Курсор на него наводится машинально, как на кнопку "Пуск" или "Свернуть все окна" на панели задач.
0
Почетный модератор
11088 / 4059 / 389
Регистрация: 12.06.2008
Сообщений: 11,779
18.06.2020, 14:13 20
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Особое внимание рекомендую уделить регистровой паре CRH:CRL и умножению номера порта на 4
Просто там 16 пинов, а т.к. у пинов много возможностей, то их настройки в один регистр не умещаются. Поэтому для пинов 0...7 предусмотрен один регистр, а для 8...15 - другой. А т.к. для каждого пина может быть много разных режимов, поэтому для каждого пина отведено по 4 бита. Я не понимаю, что тут нелогичного или сложного. Могу предположить, что в AVR пин изначально находится в режиме GPIO PushPull (или у него других режимов просто нет), поэтому ему достаточно только указать направление и состояние. Да, STM32 имеет гораздо больше возможностей, поэтому у него и настроек больше. В любом случае, без чтения даташита ни с каким даже самым простым МК работать не получится.
Например, сейчас решил вспомнить PIC18 и заглянул в даташит. Там все регистры, влияющие на пины, размазаны тонким слоем по всему документу. На сколько я помню, изначально почти все пины заняты АЦП и перед настройкой пинов нужно перенастроить АЦП. И при этом каждый пин уникален (на сколько помню на PORTA есть пины, которые работают только в Open-Drain).

А клоки можно сразу все включить. Просто это будет необоснованное увеличение энергопотребления. Кстати, ток при всех включенных клоках примерно такой же, как у PIC18. Например, у PIC18F2450 на 48МГц ток заявлен 25...50 мА (глава 28.2 в документе DS39632E). Для STM32F103C8 на частоте 48МГц при полностью включенной переферии ток заявлен 36.1 мА (таблица 13 в документе DocID13587 Rev 17).
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2020, 14:13

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

каким образом пожна подключить на мать с 2 IDE выходами и 2 SATA 3 жестких диска IDE и 2 CD-ROM IDE?
Доброго вам времени суток Можете подсказать каким образом пожна подключить на мать с 2 IDE...

Новая мать не видит ide ЖД и ide привод, проблема в Sata - Ide контроллере?
на оч старом компе решил заменить мать, ОЗУ, проц, видео. идешный HDD и привод оставил, купил 2...

C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|1 5|error: 'InitApplication' was not declared in this scope|
//=================================================================================================...

C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|3 9|undefined reference to `GetStockObject@4'|
C:\tsserver\Projects\cpp\codeblocks\MyComp\IDE\IDE\IDE.cpp|39|undefined reference to...

IDE или Sata
Как узнать какой интерфейс у жесткого диска IDE или Sata?

Python 2 или 3? IDE?
Всем привет. Хочу поколупаться в питоне, в целом дно в программировании. Встал вопрос с какой же...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.