This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

in arm7tdmi, when FIQ and RIQ occures at same time so how both are executed sequentially,first FIQ and thenIRQ?

in arm7tdmi, suppose instruction is being executed and at same time FIQ and IRQ both occur  at same time.now according to priority FIQ will be handled then IRQ  but my question is that how it will handled IRQ after  return from FIQ

i means what will be process done  at return of FIQ and how control will be transferred to IRQ  handler after return statement of FIQ handler ?

example    :

                                  address                  =>     instruction

                                0x00000100              :      MOV R0,R1

                                0x00000104              :      MOV R0,R1

   ==>                      0x00000108              :      MOV R0,R1   ; suppose this is instruction being executed and FIQ and IRQ  are raised at same time

                                0x00000110              :      MOV R0,R1

                                0x00000114              :      MOV R0,R1

                                0x00000118              :      MOV R0,R1

Parents
  • thank you very much for solving my problem

    and sorry for asking you same thing again and again but i wanted to be

    quite sure.

    actually i am firmware engineer and i have interest in ARM architecture so

    i want to learn it literally and then i want to develop my own RTOS based

    on ARM platform.so i need clear picture at ARM isa and ARM processor  level

    and how it works.

    it is just  that i am crazy about ARM.

    again thank you,

    nirav

Reply
  • thank you very much for solving my problem

    and sorry for asking you same thing again and again but i wanted to be

    quite sure.

    actually i am firmware engineer and i have interest in ARM architecture so

    i want to learn it literally and then i want to develop my own RTOS based

    on ARM platform.so i need clear picture at ARM isa and ARM processor  level

    and how it works.

    it is just  that i am crazy about ARM.

    again thank you,

    nirav

Children
  • Hi,

    I am glad we got that clarified.

    Also glad to hear of your interest in ARM. I would recommend, though, that you consider developing for a more modern processor tan ARM7TDMI. As far as we are concerned, that is very old technology these days and we would recommend using a more modern processor such as Cortex-M3 (for microcontrollers) or one of the Cortex-A series (for application processors).

    Do let us know if there is anything else we can help with.

    Best wishes

    Chris

  • thank you sir,

    so as you know i will have to start development form scratch with assembly and c langugae  so can you suggest me any cortex-A sires processor development board with which i can get full software tool support and debugging and emulation support at very low level programming.

    some known development boards are there but those are good for application programming on top of some kernel but while developing rots i need to do bare-metal coding and need good support of software and debugging and emulation

  • The Raspberry Pi Model B uses a quad core Cortex-A7 processor. Tools availability is excellent and bare-metal development is well supported and there is a lot of literature about this online.

    Chris

  • Though I don't have a RasPi myself, I second chrisshore's suggestion. The Raspberry Pi is an excellent platform, which allows you to start from scratch or develop parts of your system under Linux and when you've finished enough components, you can put them together in a 'stand-alone' O/S.

    In addition to the above, you might benefit from getting a WD PiDrive, which was developed specifically for the Raspberry Pi. -It's no coincidence that it's 314 GB either.

    In case your development system is a PC, you could attach the PiDrive there, then move the drive to the Raspberry Pi for booting (or testing modules).