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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV писал(а):вот такое работает с кубом?
Я думал вы умнее меня ...
За чем вам куб? О чем вы? Кнопочки нет.

Куб дает огромный код, как раз время к VladislavS обратится, все стремятся минимум к CMSIS.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4350143#p4350143"]Куб дает огромный код.[/uquote]
Куб, о котором идет речь, никакого кода вообще не дает. Отладчик работает со средой, а не с кодогенератором.
Последний раз редактировалось КРАМ Сб янв 07, 2023 23:53:02, всего редактировалось 1 раз.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4350143#p4350143"]
ARV писал(а):вот такое работает с кубом?
Я думал вы умнее меня ...
За чем вам куб? О чем вы? Кнопочки нет.

Куб дает огромный код, как раз время к VladislavS обратится, все стремятся минимум к CMSIS.[/uquote]был бы умнее, продолжал бы с AVR ковыряться... все эти CMSIS, HAL и иже с ними мне пока глубоко до лампы, поскольку я полный 0 во всех аспектах. и размер меня пока не волнует. зато блинк вчера я сделал из трех строк, не имея понятия, что и как оно там в аппаратуре делает. да, 5,6К прошивочка...

хотел так же с наскока через прерывания от таймера помигать, но не понял 2 вещи:
- у этого f100 что, тим1 и тим15 имеют общий вектор прерываний? и в обработчике надо разбираться, кто его вызвал?
- как в сгенерированном коде найти место, куда добавить надо свои действия в обработчике прерываний? я наивно полагал, что кодогенератор у меня просто спросит имя функции обработчика и сделает пустышку... ан нет, и тут моя логика не совпадает с "профессиональной"...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ARV",url="/forum/viewtopic.php?p=4350255#p4350255"]5,6К прошивочка...[/uquote]
Стартап, инициализация осциллятора, таблица векторов прерываний. Ну и разрядность совсем не 8...
Это общая для любого проекта часть.
[uquote="ARV",url="/forum/viewtopic.php?p=4350255#p4350255"]хотел так же с наскока через прерывания от таймера помигать, но не понял 2 вещи:
- у этого f100 что, тим1 и тим15 имеют общий вектор прерываний? и в обработчике надо разбираться, кто его вызвал?
- как в сгенерированном коде найти место, куда добавить надо свои действия в обработчике прерываний?[/uquote]
Да, контроллер прерываний в любом STM32 имеет сгруппированые вектора прерываний. Флагов прерываний очень много. Поэтому такая организация выглядит вполне обоснованно.
В обработчике разбор "кто?" выглядит примитивно просто (в примере обработчики по одному вектору для 4 и 5 канала ДМА контроллера AT32F421 - в STM32 все почти идентично, только нет битовых структур):

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

void DMA1_Channel5_4_IRQHandler(void)
{
	if(DMA1->sts_bit.fdtf4&&DMA1_CHANNEL4->ctrl_bit.fdtien)
	{
		DMA1->clr_bit.fdtfc4=true;
            ----тут тело обработчика 4 канала ДМА или вызов колбэка----
	}
	if(DMA1->sts_bit.fdtf5&&DMA1_CHANNEL5->ctrl_bit.fdtien)
	{
		DMA1->clr_bit.fdtfc5=true;
            ----тут тело обработчика 5 канала ДМА или вызов колбэка----
	}
}
HAL генерирует колбэки, CMSIS представлен в примере и он написан руками.
То есть в обработчике примитивный семафор с проверкой (флаг&&разрешение) по каждому источнику прерываний для данного вектора.

[uquote="ARV",url="/forum/viewtopic.php?p=4350255#p4350255"]тут моя логика не совпадает с "профессиональной"...[/uquote]
Прекратите смешно и наивно ёрничать. Не может быть логики у человека в теме, где он 0.
Реклама
Эиком - электронные компоненты и радиодетали
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, я вам в личку отправил архивчик, проект от CoIDE, проверил - собирается, весь код умещается в 16 кило, целевой МК stm32f100rb, даже протеус работает, в консоле поставите CNT=16, иначе долгая песня пока он все переберет. Здесь нет последних правок DMA ШИМ таблицы генератора случайности. Могу внести эти правки.
На реальном чипе не проверял, скорее всего должно работать, если хотите могу проверить.
Вот и разбирайтесь.
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

[uquote="ARV",url="/forum/viewtopic.php?p=4350255#p4350255"]у этого f100 что, тим1 и тим15 имеют общий вектор прерываний? и в обработчике надо разбираться, кто его вызвал?[/uquote]
Там еще интереснее: у TIM1 не один вектор прерываний, а 4 на разные случаи, и конфликтует он соответственно с разными таймерами: TIM15, TIM16, TIM17. А вот прерывание по сравнению у него вроде бы персональное.
ARV писал(а):я наивно полагал, что кодогенератор у меня просто спросит имя функции обработчика и сделает пустышку...
Даже в AVR имена обработчиков прерываний заданы жестко. Впрочем, что там чудит кодогенератор в ST понятия не имею. Пару раз я его пытался тыкать, натыкал какие-то странные баги и плюнул: на регистрах проще.
Тем более когда возникает желание пощупать контроллеры не от ST, пусть и с похожей периферией. Вот, например, что у меня получилось для RISC-V контроллера gd32vf103.
КРАМ писал(а):Стартап, инициализация осциллятора, таблица векторов прерываний.
...занимают около килобайта, а то и меньше.
КРАМ писал(а):Да, контроллер прерываний в любом STM32 имеет сгруппированые вектора прерываний.
Только обычно вектора объединяются по общей периферии. Скажем, все прерывания, относящиеся к USART1, или все, относящиеся к I2C2.
А объединение разных таймеров выглядит просто как костыль.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

вопрос остался открытым: где искать (и по каким признакам) коллбэки или что там автоматически генерирует куб, если задействованы прерывания периферии?

Добавлено after 3 minutes 17 seconds:
что прерываний больше одного, это и так понятно, да и ковыряния в кубе и хале позволили мне это понять. но вот манера именования сущностей пока не усвоена, и не очень понятно, что из нагенерированного нужно, а что нет, и где своё дописывать. догадки есть, но лучше конкретно для начала, дальше буду углубляться

Добавлено after 3 minutes 6 seconds:
что касается "на регистрах проще", то я пока намерен следовать собственным представлениям о том, зачем мне нужен ARM. и пока я формулирую это так: избыток ресурсов позволит мне меньше напрягать голову. поэтому, если я не вижу регистров, то на данном этапе считаю это плюсом.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350356#p4350356"]А объединение разных таймеров выглядит просто как костыль.[/uquote]
:facepalm:
Что же это такое?
Что за привычка оценивать чужой труд, НЕ ИМЕЯ ПРЕДСТАВЛЕНИЯ О ЧУЖИХ РЕЗОНАХ, да и просто не являясь специалистом в вычислительных архитектурах...
А как вам простой такой, лежащий прямо на поверхности аргумент? Первый таймер, являясь more advanced, вполне целесообразно имеет РАЗДЕЛЬНЫЕ для своих разных флагов вектора. Что дает очевидное преимущество выравнивания латентности обработчиков по разным флагам. И это дает возможность создавать сигналы с более высокой когерентностью, нежели у других таймеров.
И уж точно, аргумент о группировании векторов по типу периферии выглядит как тупая вкусовщина. И эта вкусовщина имеет место быть, когда кончаются иные аргументы. То есть в последнюю очередь.

Добавлено after 2 minutes 18 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4350402#p4350402"]вопрос остался открытым: где искать?[/uquote]Очевидно по имени колбэка и очевидно в обработчике. Обнаружив имя в обработчике, легко найти и само тело колбэка.

Добавлено after 3 minutes 15 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4350402#p4350402"]избыток ресурсов позволит мне меньше напрягать голову. поэтому, если я не вижу регистров, то на данном этапе считаю это плюсом.[/uquote]
Извращенный вкус и банальная лень обычно удивительно кумулятивно грузят ноги...
Любители HAL традиционно учат не только HAL, но и регистры. Или просто танцуют на граблях разные народные танцы.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

видимо, я слишком примитивно формирую вопросы, что профессионалы меня не понимают...

еще раз: логику построения имен сущностей в коде я пока не усвоил, и мне надо конкретно указать, где (в каком из файлов) и что (конкретное имя функции) надо искать для прерываний тим1?

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

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ARV",url="/forum/viewtopic.php?p=4350466#p4350466"]где (в каком из файлов) и что (конкретное имя функции) надо искать для прерываний тим1?[/uquote]
Поразительно... :facepalm:
А найти где в Кубе поиск по проекту не судьба?
Но могу подсказать где находится компактно размещенный список имен векторов. В стартап файле. И он традиционно написан на АСМе.
Могу точно сказать какие кнопки и в какой последовательности давить на клаве для Кейла. Для Куба - не знаю. Но почему то уверен, что найду за одну минуту....

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

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                    [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler              [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                    [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler                 [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler                [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler                [WEAK]
                EXPORT  RTC_IRQHandler                 [WEAK]
                EXPORT  FLASH_IRQHandler               [WEAK]
                EXPORT  RCC_IRQHandler                 [WEAK]
                EXPORT  EXTI0_1_IRQHandler             [WEAK]
                EXPORT  EXTI2_3_IRQHandler             [WEAK]
                EXPORT  EXTI4_15_IRQHandler            [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler       [WEAK]
                EXPORT  DMA1_Channel2_3_IRQHandler     [WEAK]
                EXPORT  DMA1_Channel4_5_IRQHandler     [WEAK]
                EXPORT  ADC1_IRQHandler                [WEAK]
                EXPORT  TIM1_BRK_UP_TRG_COM_IRQHandler [WEAK]
                EXPORT  TIM1_CC_IRQHandler             [WEAK]
                EXPORT  TIM3_IRQHandler                [WEAK]
                EXPORT  TIM14_IRQHandler               [WEAK]
                EXPORT  TIM16_IRQHandler               [WEAK]
                EXPORT  TIM17_IRQHandler               [WEAK]
                EXPORT  I2C1_IRQHandler                [WEAK]
                EXPORT  SPI1_IRQHandler                [WEAK]
                EXPORT  USART1_IRQHandler              [WEAK]
 

WWDG_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_1_IRQHandler
EXTI2_3_IRQHandler
EXTI4_15_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_3_IRQHandler
DMA1_Channel4_5_IRQHandler
ADC1_IRQHandler 
TIM1_BRK_UP_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM3_IRQHandler
TIM14_IRQHandler
TIM16_IRQHandler
TIM17_IRQHandler
I2C1_IRQHandler
SPI1_IRQHandler
USART1_IRQHandler

                B       .

                ENDP
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

[uquote="ARV",url="/forum/viewtopic.php?p=4350402#p4350402"]что прерываний больше одного, это и так понятно, да и ковыряния в кубе и хале позволили мне это понять.[/uquote]
А что, открыть документацию и посмотреть таблицу кажется настолько страшным?!
КРАМ писал(а):Что за привычка оценивать чужой труд
Та самая привычка, которая возникает, когда понимаешь, что ту же задачу можно было решить куда проще. И понимаешь, почему разработчики сделали именно так.
КРАМ писал(а):Первый таймер, являясь more advanced, вполне целесообразно имеет РАЗДЕЛЬНЫЕ для своих разных флагов вектора.
Вы с чем вообще спорите? Что-то я не увидел ни одного оправдания зачем нужно было вешать на прерывания TIM1 еще и другие таймеры.
КРАМ писал(а):И уж точно, аргумент о группировании векторов по типу периферии выглядит как тупая вкусовщина.
То есть вы считаете логичным смешивать в одном векторе UART1_TX, SPI3 и ADC1, во втором UART2_RX, I2C1 и DMA1?
Учитывая, сколько бесполезного текста вы написали вместо ответа на вопрос о совмещении разных таймеров, даже не буду спрашивать, ради чьего удобства предлагаете вот это извращение.
ARV писал(а):что касается "на регистрах проще", то я пока намерен следовать собственным представлениям о том, зачем мне нужен ARM. и пока я формулирую это так: избыток ресурсов позволит мне меньше напрягать голову. поэтому, если я не вижу регистров, то на данном этапе считаю это плюсом.
Ваше право.
Могу только напомнить, что с появлением более мощного камня захочется и более сложные задачи ему поручать, для которых у AVR физически не хватало мощности. А переучиваться с графических конфигурялок на человеческое программирование зачастую оказывается сложнее, чем учиться с нуля.
КРАМ писал(а):
КРАМ писал(а):Очевидно по имени колбэка и очевидно в обработчике. Обнаружив имя в обработчике, легко найти и само тело колбэка.
Но могу подсказать где находится компактно размещенный список имен векторов. В стартап файле.
То есть вы предлагаете ардуинщику копаться в стартап-файлах?
"Пользуйтесь нашей мега-конфигурялкой, и вам все равно придется изучать ассемблер даже для такой банальности, как прерывания!"
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350494#p4350494"]Что-то я не увидел ни одного оправдания зачем нужно было вешать на прерывания TIM1 еще и другие таймеры.[/uquote]
Абисняю. Чтобы не увеличивать общее количество векторов (IVT). Компромисс, так сказать...
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350494#p4350494"]То есть вы считаете логичным смешивать в одном векторе UART1_TX, SPI3 и ADC1, во втором UART2_RX, I2C1 и DMA1?[/uquote]
В каком STM32 сие наблюдается? Мне лично ни разу не попадалось.
Но я догадываюсь с чем вы спутали... :wink:
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350494#p4350494"]То есть вы предлагаете ардуинщику копаться в стартап-файлах?[/uquote]
Размер стартапа столь мал, а содержимое в части имен обработчиков столь очевидно, что не требуется знать АСМ от слова совсем.
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350494#p4350494"]Учитывая, сколько бесполезного текста вы написали вместо ответа на вопрос о совмещении разных таймеров, даже не буду спрашивать, ради чьего удобства предлагаете вот это извращение.[/uquote]
Не вашего - точно. Но вы можете себе представить, что ваши "удобства" маргинальны? Или вы даже мысли такой не допускаете? :wink: :roll: :tea:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

КРАМ писал(а):Абисняю. Чтобы не увеличивать общее количество векторов (IVT). Компромисс, так сказать...
А в документацию посмотреть перед "абиснением"? Векторов там 60 штук, причем сам NVIC поддерживает куда больше. Плюс еще 7 помечены как reserved.
Перевожу специально для вас: технических возможностей сделать не по-костыльному было предостаточно.
КРАМ писал(а):В каком STM32 сие наблюдается? Мне лично ни разу не попадалось.
Вы спрашиваете в каком stm32 наблюдается следование вашим противоестественным фантазиям? Мне-то откуда знать, это же ваши фантазии смешивать в одном векторе разную периферию.
КРАМ писал(а):Размер стартапа столь мал, а содержимое в части имен обработчиков столь очевидно, что не требуется знать АСМ от слова совсем.
Да понятно-понятно. Великий и всезнающий КРАМ сам не знает где в ST-HAL посмотреть базовую информацию, и потому предлагает чуть ли не результирующий файл дизассемблировать. Вот это я понимаю, антиреклама HAL! Сначала назваться профессионалом, втереться в доверие, а потом утверждать, что нормального решения простейшей задачи не существует, и надо обязательно извращаться.
КРАМ писал(а):
Учитывая, сколько бесполезного текста вы написали вместо ответа на вопрос о совмещении разных таймеров, даже не буду спрашивать, ради чьего удобства предлагаете вот это извращение.
Не вашего - точно.
То есть ответа так и не будет...
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350556#p4350556"]Векторов там 60 штук, причем сам NVIC поддерживает куда больше. Плюс еще 7 помечены как reserved.[/uquote]
Это вы серьезно???!!!!1111 :))) :))) :)))
Уже даже и не очень то смешно. Это примерно тоже, что утверждать, что размер ОЗУ ограничен только разрядностью шины адреса...
То есть вы всерьез уверены, что куча разных вендоров тупа до безобразия против COKPOWEHEU&Co и не понимает, что лучше всего и побольше? У кого тут надут ЧСВ, милейший?
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350556#p4350556"]
КРАМ писал(а):В каком STM32 сие наблюдается? Мне лично ни разу не попадалось.
Вы спрашиваете в каком stm32 наблюдается следование вашим противоестественным фантазиям? Мне-то откуда знать, это же ваши фантазии смешивать в одном векторе разную периферию.[/uquote]
Ну то есть с ответа тихо съехали, обнаружив, что бездарно перепутали реквесты ДМА с векторами прерываний... Нучобывает... :)))
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350556#p4350556"]Да понятно-понятно. Великий и всезнающий КРАМ сам не знает где в ST-HAL посмотреть базовую информацию[/uquote]
То есть стартапа в проекте с HAL не существует? :dont_know: Или просто нужно поболтать ерундой?
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350556#p4350556"]То есть ответа так и не будет...[/uquote]
Так я уже ответил. Причем с самого начала. Повторю для непонятливых. Первый таймер дает возможность выровнять латентность обработчиков по разным флагам для приложений с критически важными временными диаграммами.
Или у вас нет сигнальных проектов? :dont_know:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

COKPOWEHEU писал(а):открыть документацию и посмотреть таблицу кажется настолько страшным?!
не столько страшным, сколько представляется не обязательным, если надеяться на помощь тех, кто уже знает.
COKPOWEHEU писал(а):с появлением более мощного камня захочется и более сложные задачи ему поручать
в одной из других тем я озвучивал своё мнение о том, откуда берутся большие камни и для чего. мнение это пока не поколеблено ничем и никем. учитывая, насколько просто сегодня можно решать сложные вещи на компьютере, я ожидаю близкого подобия и для больших камней - задачи мои, как были примитивными, так и останутся наверняка. но, если для отправки почтового сообщения на AVR мне требуется огромная куча усилий, то на ARM я ожидаю чего-то близкого к такому:
1. подключили какой-то модуль
2. вызываем функцию, которой передаем адрес "кому", тему письма и указатель на буфер с письмом
3. всё.
если это не реализовано на уровне "встроенных в IDE" (утрирую, не ругайтесь) возможностей - нафига мне тот ARM сдался?! гемороя я могу поиметь и с AVR, да и вообще по жизни хватает.
COKPOWEHEU писал(а):А переучиваться с графических конфигурялок на человеческое программирование зачастую оказывается сложнее, чем учиться с нуля.
это вряд ли, учитывая дружелюбие профессионалов, которые всегда готовы прийти на помощь :))) пока я ковыряюсь с тем, где там этот злосчастный обработчик прерывания ТИМ1 в HAL-е запрятан, я попутно узнаю много интересного о регистрах, функциях и т.п. так что если вдруг приспичит лезть в регистры, я к тому времени уже буду не совсем нулем, и справлюсь как-нибудь. хотя манера разделять документацию на стопицот файлов меня не воодушевляет, но уж более-менее читать по аглицки я умею...

Добавлено after 5 minutes 59 seconds:
и вообще, я тут подумал, что знаю ответ на вопрос почему у нас самые крутые программисты, а 99% программного обеспечения сделано не ими? потому, что у нас 99% желающих научиться чему-либо сразу бьют в лоб заявлениями "пока не научишься в голове из семиричной системы переводить в девятеричную, программистом не станешь, и даже не приставай", а у них каждому желающему сразу говорят "ты это можешь! вот прямо сейчас и можешь - бери вот это и это, соединяй так и этак, и получишь результат". и пофиг, что "это" и "это" - графические системы с нулем кода, написанного вручную - все мышкой наделано.
те, кто стал программистом на таких условиях, на форумах даёт конкретные ответы, а не объясняет, почему автор вопроса мудак. ну и программы такими людьми создаются проще и быстрее, чем из-под кровавых слез российских программистов...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 26079
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ARV",url="/forum/viewtopic.php?p=4350574#p4350574"]на ARM я ожидаю чего-то близкого к такому:
1. подключили какой-то модуль
2. вызываем функцию, которой передаем адрес "кому", тему письма и указатель на буфер с письмом
3. всё....[/uquote]
Это формулировка задачи для ОС общего назначения, а не для контроллера реального времени.
Передача такого письма в Кортексе потребует бОльших усилий хотя бы по причине бОльших возможностей периферии и более сложной архитектуры.
Вы неверно сделали выбор.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

ну что, господа профессиональные гуру, от вас ровно 0% пользы для начинающего, ибо вы все хором и соло твердили мне, что невозможно использовать отладку в кубе с моим устаревшим st-link... а я таки запустил отладку!
Изображение
если кому-то из начинающих будет интересно, как я это сделал, не спрашивайте здесь - пишите мне в ЛС.

понятное дело, это не очень разумное решение, просто от безысходности - чтобы не простаивать тот месяц, пока с алика придет "нормальный" ST-Link V2.

кстати, для любителей отлаживать в командной строке: посмотрите на скриншот - это я просто навел курсор на переменную в коде во время остановки на брейкпоинте. повторяю: просто навел, даже не нажимал!
Вложения
arm-dbg.png
(81.68 КБ) 355 скачиваний
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

КРАМ, размер ОЗУ ограничен исключительно шиной данных и карманом заказчика. Как и количество векторов прерывания ограничено карманом заказчика. Хотим дешевые микроконтроллеры — приходится экономить на мультиплексорах. То-то G0 значительно дороже, чем F0, т.к. много лишних мультиплексоров появилось. А фактически лично для меня плюс лишь в том, что те несчастные 7 каналов DMA, что есть в G070 (а в G030 их вообще 5 всего) можно переключить между периферией (когда каналы жестко привязаны, бывает так, что тебе приходится выбирать: либо на SPI DMA повесить, либо на USART). В остальном - ну, скажем, аппаратный модбас, но это говнище вообще нужно каленым железом изгонять и чмырить всех дебилов, которые в новые разработки модбас суют! Короче, прямо таких супер-пупер преимуществ у G над F нет. А, учитывая разницу в цене, ну их вообще нафиг (G с USB стоят, как F407 или F303)!!!

P.S. Вчера бился с записью в I2C через DMA, пока не получилось. Сегодня попробую чтение из I2C посредством DMA. Странно, что счетчик CNDTR уходит в нуль, однако, прерывание по окончанию передачи не вызывается (что-то насчет этого я в мануале читал). И, судя по отсутствию реакции "той" стороны, не генерируется сигнал STOP, хотя про это ничего в мануале нет (у F103 хоть явно писали, что по окончанию передачи нужно явно STOP забульбенить в прерывании DMA TC).

Добавлено after 45 seconds:
ARV, хреновый ты начинающий: начинающий начинает с чтения даташита и мануала! А путь абдуринщика — это не про нас!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18819
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):хреновый ты начинающий
ну, что на наших форумах всем, кто задаёт вопросы, объясняют, что он мудак, это я давно знал. алаверды: хреновый ты гуру, раз начинающему помочь не можешь!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «ARM»