The problem of remapping of interrupt vectors table for STM32

Source: Internet
Author: User
Tags reset
1  why the interrupt vector table should be remapped.                COREM3 authoritative guide "However, for dynamic redistribution interrupts, CM3 allows vector table relocation-
-Start locating the exception vectors from other addresses.    the area corresponding to these addresses can be a code area, but it can also be a RAM area. The entry address of the vector can be modified in the Ram area. ”。             Puzzle:                                       1. If you do not remap, the address of the interrupt vector table should be this: 0X0000 0000 is SP
; 0X0000 0004 is the reset vector; 0X0000 0008 is NMI, followed by 4 increments in order of the interrupt number.           In this case, the interrupt vector table cannot be saved. Anyway, there are some function pointers, not much space, why do we have to re-map to other places??                                      2. If remapped, the entry address of the interrupt vector table becomes 0x0800 0000. But the part of the space that was opened at the beginning (0x0000 0000 ...) The interrupt vector table stored is not equal to useless.                                       Question one: to explain your doubts, first understand a few things. 1, regardless of whether the vector table has been remapped,

Both the SP and the reset entry are obtained from the 0-address vector table after the reset. The interrupt vector table at address 2, 0, is usually the ROM address.

Usually only by specifying a link address and then burning the rewrite. 3, in some products with upgrade features, usually divided into the boot and the app two parts.
Boot is usually not changed after the production, using the 0 address vector table, must be through a tool such as JTAG to be rewritten.

   boot with download function (USB, serial or SPI), users can download the app as needed. 4, note 2nd, the app usually needs its own design interruption service.
If you do not remap, only the boot design of the table program, through the boot jump, not high efficiency.    Erase 0 Address vectors, and boot will not boot if power is lost during the upgrade process.

Therefore, you need to go into the app and remap the vector table. Question two: Your understanding is right. However, the interrupt Vector table area at 0 addresses typically does not place code. Chip in the flash address allocation, there is very little flash address in a tight row after the vector table. Therefore, it does not affect. 

        

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.