Я думал вы умнее меня ...ARV писал(а):вот такое работает с кубом?
За чем вам куб? О чем вы? Кнопочки нет.
Куб дает огромный код, как раз время к VladislavS обратится, все стремятся минимум к CMSIS.
Я думал вы умнее меня ...ARV писал(а):вот такое работает с кубом?
Я думал вы умнее меня ...ARV писал(а):вот такое работает с кубом?
Код: Выделить всё
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 канала ДМА или вызов колбэка----
}
}Даже в AVR имена обработчиков прерываний заданы жестко. Впрочем, что там чудит кодогенератор в ST понятия не имею. Пару раз я его пытался тыкать, натыкал какие-то странные баги и плюнул: на регистрах проще.ARV писал(а):я наивно полагал, что кодогенератор у меня просто спросит имя функции обработчика и сделает пустышку...
...занимают около килобайта, а то и меньше.КРАМ писал(а):Стартап, инициализация осциллятора, таблица векторов прерываний.
Только обычно вектора объединяются по общей периферии. Скажем, все прерывания, относящиеся к USART1, или все, относящиеся к I2C2.КРАМ писал(а):Да, контроллер прерываний в любом STM32 имеет сгруппированые вектора прерываний.
Код: Выделить всё
; 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Та самая привычка, которая возникает, когда понимаешь, что ту же задачу можно было решить куда проще. И понимаешь, почему разработчики сделали именно так.КРАМ писал(а):Что за привычка оценивать чужой труд
Вы с чем вообще спорите? Что-то я не увидел ни одного оправдания зачем нужно было вешать на прерывания TIM1 еще и другие таймеры.КРАМ писал(а):Первый таймер, являясь more advanced, вполне целесообразно имеет РАЗДЕЛЬНЫЕ для своих разных флагов вектора.
То есть вы считаете логичным смешивать в одном векторе UART1_TX, SPI3 и ADC1, во втором UART2_RX, I2C1 и DMA1?КРАМ писал(а):И уж точно, аргумент о группировании векторов по типу периферии выглядит как тупая вкусовщина.
Ваше право.ARV писал(а):что касается "на регистрах проще", то я пока намерен следовать собственным представлениям о том, зачем мне нужен ARM. и пока я формулирую это так: избыток ресурсов позволит мне меньше напрягать голову. поэтому, если я не вижу регистров, то на данном этапе считаю это плюсом.
То есть вы предлагаете ардуинщику копаться в стартап-файлах?КРАМ писал(а):Но могу подсказать где находится компактно размещенный список имен векторов. В стартап файле.КРАМ писал(а):Очевидно по имени колбэка и очевидно в обработчике. Обнаружив имя в обработчике, легко найти и само тело колбэка.
А в документацию посмотреть перед "абиснением"? Векторов там 60 штук, причем сам NVIC поддерживает куда больше. Плюс еще 7 помечены как reserved.КРАМ писал(а):Абисняю. Чтобы не увеличивать общее количество векторов (IVT). Компромисс, так сказать...
Вы спрашиваете в каком stm32 наблюдается следование вашим противоестественным фантазиям? Мне-то откуда знать, это же ваши фантазии смешивать в одном векторе разную периферию.КРАМ писал(а):В каком STM32 сие наблюдается? Мне лично ни разу не попадалось.
Да понятно-понятно. Великий и всезнающий КРАМ сам не знает где в ST-HAL посмотреть базовую информацию, и потому предлагает чуть ли не результирующий файл дизассемблировать. Вот это я понимаю, антиреклама HAL! Сначала назваться профессионалом, втереться в доверие, а потом утверждать, что нормального решения простейшей задачи не существует, и надо обязательно извращаться.КРАМ писал(а):Размер стартапа столь мал, а содержимое в части имен обработчиков столь очевидно, что не требуется знать АСМ от слова совсем.
То есть ответа так и не будет...КРАМ писал(а):Не вашего - точно.Учитывая, сколько бесполезного текста вы написали вместо ответа на вопрос о совмещении разных таймеров, даже не буду спрашивать, ради чьего удобства предлагаете вот это извращение.
Вы спрашиваете в каком stm32 наблюдается следование вашим противоестественным фантазиям? Мне-то откуда знать, это же ваши фантазии смешивать в одном векторе разную периферию.[/uquote]КРАМ писал(а):В каком STM32 сие наблюдается? Мне лично ни разу не попадалось.
не столько страшным, сколько представляется не обязательным, если надеяться на помощь тех, кто уже знает.COKPOWEHEU писал(а):открыть документацию и посмотреть таблицу кажется настолько страшным?!
в одной из других тем я озвучивал своё мнение о том, откуда берутся большие камни и для чего. мнение это пока не поколеблено ничем и никем. учитывая, насколько просто сегодня можно решать сложные вещи на компьютере, я ожидаю близкого подобия и для больших камней - задачи мои, как были примитивными, так и останутся наверняка. но, если для отправки почтового сообщения на AVR мне требуется огромная куча усилий, то на ARM я ожидаю чего-то близкого к такому:COKPOWEHEU писал(а):с появлением более мощного камня захочется и более сложные задачи ему поручать
это вряд ли, учитывая дружелюбие профессионалов, которые всегда готовы прийти на помощьCOKPOWEHEU писал(а):А переучиваться с графических конфигурялок на человеческое программирование зачастую оказывается сложнее, чем учиться с нуля.
ну, что на наших форумах всем, кто задаёт вопросы, объясняют, что он мудак, это я давно знал. алаверды: хреновый ты гуру, раз начинающему помочь не можешь!Eddy_Em писал(а):хреновый ты начинающий