Lecture 9: Interrupts

Поделиться
HTML-код
  • Опубликовано: 5 фев 2025

Комментарии • 115

  • @iliassfe
    @iliassfe 7 лет назад +39

    For the last two months I'm trying to understand the logic behind ARM MCUs, so I ran across many tutorials. By far you have the best presentations!
    Thank you my friend!

  • @omar-shukrimcintosh9097
    @omar-shukrimcintosh9097 11 месяцев назад +4

    Thank you robot for the clear explanation, using an almost dead, emotionless voice.

  • @rileystewart9165
    @rileystewart9165 3 года назад +5

    Although the voice in the video is not perfect, it's surprisingly good for a robot, and considering the content and explaination was excellent, I'm very happy with the final product! Subscribed.

  • @Cpu-w5f
    @Cpu-w5f Месяц назад

    This is a pure gold .

  • @krish2nasa
    @krish2nasa 8 лет назад +8

    Excellent Explanation, Thank you very much Prof Yifeng

  • @longwang3271
    @longwang3271 2 месяца назад

    Thanks! Very well explained!

  • @КонстантинМатвеев-д8ц

    Voice like a melted butter

  • @footballCartoon91
    @footballCartoon91 2 года назад

    @16:18
    so the process of preserving environment variable(by pushing the aforementioned registers onto the stack)
    cost the CPU 32-bits of addresses..
    while unstacking, does it cost cpu 32-bits of address line too?
    And also does ISR only do two instructions? (BX and LR)..
    How much address the CPU need for this?..
    So why does we need to offset 64bits of address when we want to determine the address of program ISR? (64+4xn)
    From what I understand, stacking environment variables cost 32bits of
    address, which corresponds to 4 bits of address is used to push a value from a register to the stack..
    Does this means BX and LX
    cost the CPU 4 bits of address each?
    If that the case to find the next address of ISR program would be
    32+4+32+4xn.
    if not then,
    32(for stacking)+32(for unstacking)+4(for BX and LX or any other ISR operations that might require only 4bits of address)*n(nth element of an array of ISR)

  • @suseelkousic6787
    @suseelkousic6787 Год назад

    In the interrupt handler function why are we setting the Bit in PR register at last ?

  • @footballCartoon91
    @footballCartoon91 2 года назад

    @15:41
    why he is saying that the program ISR (Interrupt Service Routine) or Interrupt Handler has the size of 32 bytes but demonstrate it in 32 bits?
    if 1 opcode is one byte(8bits), and 1 data line is 64 bits..
    1 bit of address line can have an instruction(opcode) + data =64 bits
    4 bits of address line= 4*64 =256 bits or 1 byte..
    8 bits of address line= 2 bytes
    if 32 bits of address line= 8 bytes..
    oh ok so i understand this ISR program requires 8 bytes of address line..
    Or 32 address space

  • @creedo8301
    @creedo8301 2 года назад +2

    10:48 why in the address 0x00000064 does it contain the address 0x0800030D and not 0x0800030C ?
    can anyone help please

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  2 года назад +2

      The least significant bit must be 1 to indicate that the processor is to run in Thumb mode. ARM Cortex-M only support Thumb instructions.

  • @mohangovind700
    @mohangovind700 7 лет назад +1

    Excellent Presentation about NVIC i have ever seen...............................

  • @ngocmanprocoder
    @ngocmanprocoder 9 месяцев назад

    64 + 4 *n , could you clarify the formula in more details, please? Thanks a million.

  • @zoya3396
    @zoya3396 6 месяцев назад

    Thank you! very clear and helpfull!

  • @Ulbert86
    @Ulbert86 4 года назад +1

    What a great presentation! Excelent work!

  • @eestop2978
    @eestop2978 7 лет назад +9

    can we get the slides please? thank you for the video.

  • @coolwinder
    @coolwinder 4 года назад +1

    9:10 - Interrupt Vector Table & Example

  • @victorial5141
    @victorial5141 Год назад +2

    this channel is underrated

  • @abnass8559
    @abnass8559 5 лет назад +2

    Thank you Dr. Zhu

  • @vishnuchittapu8459
    @vishnuchittapu8459 7 лет назад +1

    when dma interrupt is performing whether exti3 is in active state or pending state

  • @paulg.3067
    @paulg.3067 4 года назад +2

    What robot software reads that text? It has an amazing natural pronunciation

  • @jashielp.estrada7163
    @jashielp.estrada7163 4 года назад +3

    Wow. Now I understand interrupts for my job interview XD.

    • @da_druuskee7709
      @da_druuskee7709 4 года назад +1

      did you get the job?

    • @jashielp.estrada7163
      @jashielp.estrada7163 3 года назад +2

      @@da_druuskee7709 yes I got it. :)

    • @kennyecheverry5684
      @kennyecheverry5684 3 года назад

      i'm reviewing for that right now! Any advice? XD

    • @ashwin372
      @ashwin372 2 года назад

      are you on LinkedIn. i sent you a request please accept i am From India

  • @ulysses_grant
    @ulysses_grant 6 лет назад +17

    Man, I owe you a beer. Really.

  • @richardqqq176
    @richardqqq176 7 лет назад +3

    you make the ARM architecture story sound so clear

  • @hubert_c
    @hubert_c 3 года назад

    Very good analogy for polling vs interrupt.

  • @shiningmickey
    @shiningmickey Год назад

    Thanks for the nice video. In the nested interrupt example, why isn't Pending Register for EXTI3 becomes 1 again when it is stacked and waited for DMA1_Channel2 interrupts to be finished?

  • @caioheitor3181
    @caioheitor3181 7 лет назад +7

    Very good class with several amazing details !!!

  • @DanielBaluta
    @DanielBaluta 2 года назад

    at 1:23 the phone analogy doesn't really work. If you pick up the phone before a call arrives then the sender will get a busy tone.

  • @kingfalconkhan
    @kingfalconkhan 4 года назад

    Wahuuuu amazing video Prof. Zhu... Thanks a lot..!

  • @messiweltmeista
    @messiweltmeista 3 года назад +1

    Outstanding video, thank you very much

  • @parthshinde5966
    @parthshinde5966 4 года назад

    13:46 Isn't Stack Last-in-First-out? According to explanation here, it looks like registers are stacked inversely because top of the stack is popped first.

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  4 года назад +1

      Cortex-M4 uses full descending stack by default.

    • @parthshinde5966
      @parthshinde5966 4 года назад +1

      @@embeddedsystemswitharmcort9051 yes that is true. You are correct. I had lack of conceptual knowledge

  • @coderhex1675
    @coderhex1675 4 года назад

    in 17:21 there shuldn't be a pending state. I observed in my program. If you are pointing that this pending bit is flipping 1 to 0 so quickly when we enter ISR12 that we cannot observe this case, again there is no 1 to 0 switch. Could you provide me your proof?

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  4 года назад

      This is an interesting question. The "Interrupt Set-pending Registers" and "Interrupt Clear-pending Registers" works in pairs to set or clear the pending state of an interrupt. You can find more information in Cortex -M4 Devices Generic User Guide.

    • @coderhex1675
      @coderhex1675 4 года назад

      @@embeddedsystemswitharmcort9051 sorry for my bad english but did you completelly understand what i am tying to tell you? If i couldnt, i can tell with other sentence. I appriceate your videos so i respect you a lot. Could you provide me the exact sentence in the document?

  • @Dads_Crown
    @Dads_Crown 2 года назад

    in intrupt calculation
    what is mean by 64

  • @hakuhakuji
    @hakuhakuji 3 года назад

    15:38 When an interrupt is done, a BX LR instruction is executed? But how does LR register receives the value of PC before the interrupt? Does it happen automatically? Or we need to get it from the stack thst was previously saved?

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  3 года назад +1

      The hardware automatically preserves LR value onto the stack, and sets LR to a new value to indicate which stack is used. This happens automatically.

    • @hakuhakuji
      @hakuhakuji 3 года назад

      @@embeddedsystemswitharmcort9051 Thank you for the fast answer. I think saying that exceptional return value EXC_RETURN is stored there during the interrupt handling is better. Loading this value by BX will automatically start unstacking and subsequently load the right value to PC. I've done some research on my own :)

  • @VAXHeadroom
    @VAXHeadroom 4 года назад

    There is a key piece of information here which the ARM documentation on the NVIC does NOT answer: Is a higher priority number more or less urgent? Thank you for including the answer in this video!

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  4 года назад

      Great to know that.

    • @Molnihun96
      @Molnihun96 3 года назад +1

      Lower value means higher priority. Configurable values range from 0 to 15, while non-configurable high-priority interrupts can even have negative values. -3 being the highest priority. You can check these informations in the RM0090 reference manual under "table 61." ("External interrupt/event controller (EXTI)" section).

  • @axela.9247
    @axela.9247 3 года назад

    Great video

  • @גלרייפן
    @גלרייפן 3 года назад

    Does NVIC clear the icpr register by itself? Or is it the responsability of the interrupt handler?

  • @mortenlund1418
    @mortenlund1418 7 месяцев назад

    Great explanaition. Thank you for your effort and great teaching skills. Best wishes.

  • @VitaminVS
    @VitaminVS 7 лет назад +1

    These are great videos. Is the book having similar explanation?

  • @nancywangeci8189
    @nancywangeci8189 7 лет назад

    A very good lesson .... you explain so well ... thanks and GOD bless.

  • @OverlordNibble
    @OverlordNibble 7 лет назад +16

    perfect movie for a rainy day

    • @paulg.3067
      @paulg.3067 4 года назад +2

      yes, with a girlfried in the arms, on the sofa and a cup of potatochips, fine selection of cheese and a bottle Chateau Lafite 1936...

    • @lmaooo4759
      @lmaooo4759 Месяц назад

      @@paulg.3067

  • @Caffeine_Addict_2020
    @Caffeine_Addict_2020 4 года назад

    incredible explanation

  • @Jarrod_C
    @Jarrod_C 6 лет назад

    wait is there an error at 11:42 because the address of the pointer to the ISR is 30D but the address of the ISR is 30C? What is going on here?

    • @chimeraSTEM
      @chimeraSTEM 6 лет назад +1

      The slide is correct. The address to jump to must have the least significant bit of the least significant bite set to 1 to indicate the processor is executing in THUMB mode. The video does explain this.

  • @ShivamGupta-qe1me
    @ShivamGupta-qe1me 4 года назад

    Thanks sir for making this video. keep uploading more.

  • @debajyotichatterjee5863
    @debajyotichatterjee5863 5 лет назад

    17:30 -- Is it possible to disable Interrupt nesting in the ARM Cortex-M Microcontrollers? Is it required to be performed in software? Or is there a way to configure the NVIC to be able to block the other IRQs once a IRQ is being serviced?

    • @jerrysundin8425
      @jerrysundin8425 4 года назад +1

      There is never a reason for this as long as you sort priorities according to needs.

    • @LubosMedovarsky
      @LubosMedovarsky 3 года назад +1

      Priority vs. subpriority depth is a compromise at cost of subpriority bit depth, and is configurable in most Cortex-Ms.

  • @emilyhuang2759
    @emilyhuang2759 3 года назад

    So what is preemption

  • @TheSoundofSilence01
    @TheSoundofSilence01 4 года назад

    In explain sram mapping, it states stack going down, heap up. That,s only one stack. When in MSP and PSP, how sram is configured?

  • @Wyvernnnn
    @Wyvernnnn 5 лет назад

    Ah; $67 without shipping for the book. You should publish an epub version Pr. Shu

  • @孫文良-f5c
    @孫文良-f5c 3 года назад

    very good tutorial!

  • @haideralam1
    @haideralam1 2 года назад +7

    Only complain with you is Robo voice, please upload same video in your original voice

  • @manhtieu6569
    @manhtieu6569 4 года назад

    Can you explan that why stacking and unstacking take 12 cycle , again tail chain take 6 cycle? Please ...

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  4 года назад +1

      community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/beginner-guide-on-interrupt-latency-and-interrupt-latency-of-the-arm-cortex-m-processors

    • @manhtieu6569
      @manhtieu6569 4 года назад

      thank you very much

  • @tomhyhlik1788
    @tomhyhlik1788 4 года назад

    thank you for such great explanation.

  • @mukundhanamshet935
    @mukundhanamshet935 4 года назад

    Awesome video thank you

  • @ningben7161
    @ningben7161 Год назад

    Excellent Explanation, Thank you very much Prof Yifeng~~~

  • @rindaman9151
    @rindaman9151 4 года назад

    Can I Get The PPT?

  • @nelsoncastillo4506
    @nelsoncastillo4506 6 лет назад

    very good tutorial video!!!

  • @himmelblau1906
    @himmelblau1906 4 года назад

    awesome lecture! thanks!

  • @igoragoli
    @igoragoli 3 года назад

    Please consider narrating the videos instead of using an automatic voice. Other than that, great video!

  • @MrKaviraj75
    @MrKaviraj75 7 лет назад +39

    Is a robot reading the text?

    • @superiorphi5778
      @superiorphi5778 6 лет назад +21

      yes, its to eliminate people potentially complaining about Prof Yifeng Zhu's accent

    • @romandavydov8684
      @romandavydov8684 5 лет назад +1

      Robots everywhere these days....

    • @BillCipher1337
      @BillCipher1337 5 лет назад +3

      @@superiorphi5778 his accent isnt even that bad ... :/

    • @tomhyhlik1788
      @tomhyhlik1788 4 года назад

      better robot than strong accent

    • @embeddedsystemswitharmcort9051
      @embeddedsystemswitharmcort9051  4 года назад +1

      RUclips does not allow voice over an existing video. Do you folks know a good solution?

  • @kaviyathangaraj8242
    @kaviyathangaraj8242 2 года назад +1

    what is meant by 64 in interrupt calculation (64+4*n)?

  • @TheRojo387
    @TheRojo387 Год назад

    That Cortex M-4 system must be big-endian, no doubt!

  • @battellone
    @battellone 6 лет назад

    excellent

  • @KirstaRunner
    @KirstaRunner 6 лет назад

    Watch the video at 1.5 or 2.0 speed.

  • @venkatanagateja3072
    @venkatanagateja3072 5 лет назад

    thank u

  • @petros4225
    @petros4225 6 лет назад +1

    Sciencephille the AI? what are you doing here?

  • @Jonathan-ru9zl
    @Jonathan-ru9zl 2 года назад

    The automatic voice is unbearable
    please replace the audio

  • @mahmutbostan6080
    @mahmutbostan6080 5 лет назад

    hi bro What is the maximum interrupt speed for stm32f767zi?

  • @saturdaysequalsyouth
    @saturdaysequalsyouth 5 лет назад +1

    Can't listen to this synthesized voice...

  • @dontaskiwasbored2008
    @dontaskiwasbored2008 2 года назад

    downvote for robot voice

  • @khaledhumood7987
    @khaledhumood7987 6 лет назад

    what was he saying??