Прот5

Как заставить линковщик Arduino IDE вшить USART1_IRQHandler

2 posts in this topic

Прот5    1

Всем привет!


Пытаюсь настроить прерывание на чтение USART1 без HAL/SPL напрямую обращаясь к регистрам в среде Arduino IDE и столкнулся с проблемой:
обработчик прерывания не цепляется по всей видимости при линковке, т.е. само прерывание срабатывает при отправке на ком-порт, и сразу начинает мигать индикатор ошибки у Blue pill (stm32f103c)... в остальном все работает нормально, не работает именно RX у МК... причем, если не использовать прерывание на чтение, то RX так же не работает, т.е. если просто выставить биты RE, TE и UE.. то TX работает, а RX нет:

...
void USART1_IRQHandler(void)
{
  if (USART1_BASE->SR & USART_SR_RXNE)
  {

  }
}
void setup(){
...
  RCC_BASE->APB2ENR  |= (RCC_APB2ENR_USART1EN);
  USART1_BASE->BRR = 0x1D4C; //baudrate 9600 @72Mhz
  USART1_BASE->CR2 = (USART1_BASE->CR2&0xFFFF80FF);//обнуляем LINEN STOP[1:0] CLK EN CPOL CPHA LBCL
  USART1_BASE->CR3 = (USART1_BASE->CR3&0xFFFFF804);// обнуляем CTSIE CTSE RTSE DMAT DMAR SCEN NACK HDSEL IREN EIE
  USART1_BASE->CR1 |= USART_CR1_UE | USART_CR1_RE | USART_CR1_TE | USART_CR1_RXNEIE;

  noInterrupts();
  NVIC_BASE->ISER[37/32] = BIT(37%32); // 37 - USART1 из Reference Manual'a
  interrupts();// вызывает внутри __enable_irq(), напрямую почему-то не определено и хрен знает какой хидер цеплять
...
}
...

Кто-нибудь сталкивался с подобным? Как без HAL SPL все это дело напрямую запилить, а точнее, чтобы линковщик обработчик USART1_IRQHandler вшил? Пробовал добавлять extern "C" { void USART1_IRQHandler(void){...} } ... тоже не помогло, причем если поставить после всех хидеров сразу с описанием внутренностей функции, то линковщик ругается "conflicts with new declaration with 'C' linkage".... а если перед setup(), то линкуется без ошибок, но видать выкидывает эту функцию.... не могу заставить его подхватить обработчик.

Share this post


Link to post
Share on other sites
Прот5    1

все, вопрос снят.... если кому интересно - вместо USART1_IRQHandler надо использовать __irq_usart1(void), тогда все ок.

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Я писал выше. 1. 100% падает сигнал шум. Не сказать что намного но падает. 2. При подключении источника, а он включен пусть даже в туже розетку что и УМ. На экране кабеля (сигнальной земле) будет наводка эта наводка с кабеля попадает в сигнальную землю УМ в том числе на холодный конец R1 и катод первой лампы. Ну и всё это дело усилится в 20 с лишним дБ. Хочу добавить падение С/Ш с этим резистором для меня было значительным при Rвх УМ 48кОм по этому пришлось отказаться от него. При более высоком входном сопротивлении думаю шум будет поболее.  
    •        Морской устав Петра статья  116, третьей книги: «Аще кто девицу изнасильничает, да сказнен будет смертию». За этою статьей следует такое толкование: «При суждении о сих делах судья должен поступить с великим рассуждением: где и когда сие учинено, кричала она или не кричала, есть ли у нее ссадины или кровоподтеки, когда она на то жалобу принесла, тотчас же или промедлив день или два... тогда часто по всему видимому видно бывает, что и она к тому немалую охоту имела. Некоторые, правда, полагают, что публичная девка изнасилована быть не может, но сие неправильно, ибо насилие всегда есть насилие и надо на самое дело и обстоятельства смотреть невзирая на персону, над коею учинено». Не юмор, но поучительно.
    • Это если нагрузка  индуктивная
    • вопрос по пушпульному преобразователю. Собран по этой схеме http://cxem.net/sound/amps/amp146.php с чем связана такая осциллограмма на затворе Сток - исток осциллограмма следующая пока нет снаббера по первичке, надо подбирать. На хх потребление 170мА, кольцо 40х24х16, первичка 4+4, частота 42кГц.
    • Он одинаково комфортно варит и на 140А и на 40А ? Я сильно сомневаюсь. 
    • Я так понимаю, мои ролики ни кто не смотрит, тогда может послушаете, всего часовой ролик, который вам всё объяснит.
      Включили, и слушаете, а в другой вкладке браузера форум шарьте.   Уважаемый Марк! Боюсь, нам достаточно просто осознать, кто мы есть. И тогда всякие разговоры про СССР, и прочее- канут в лету.
      По гражданству- безусловно, мы все граждане СССР, и ни кто не сможет этого оспорить.
      А по факту- мы живые люди. И именно для нас РФ подписала Декларацию, о правах человека? Не так ли?
      А она стоит выше всех законов РФ! Посмотрите, она в свободном доступе пока ещё.