TI中文支持网
TI专业的中文技术问题搜集分享网站

关于TM4C中断向量表映射 .intvecs: > 0x00000000,是只能放到Flash地址吗?放到0x20000000好像不能进中断

    .intvecs:   > 0x00000000这个位置是Flash的首地址(tm4c123ah6pm),中断向量表的位置是不是固定在此处呢?谢谢各位!

tanson tang:

回复 xyz549040622:

谢谢你的回答。

我查阅了相应期间的内存映射表如下:

 * * Revisions: *  June-10-2014 3rd revision * * This is derived from revision 12770 of the TivaWare Library. * */

menuitem "StartUp"

hotmenu StartUp(){    /* Load the CortexM3_util.gel file */    GEL_LoadGel("$(GEL_file_dir)/CortexM3_util.gel");

    GEL_MapOff();    GEL_MapReset();    GEL_MapOn();    memorymap_init();}

OnTargetConnect(){}

memorymap_init(){    /*     * Syntax for GEL_MapAddStr.     * GEL_MapAddStr(address, page, length, "attribute", waitstate);

    Basic Attribute Types           Derived Attribute Types    String      Description         String      Description    R           Read                NONE        No memory/protected    W           Write               RAM         Read and write    P           Port                ROM         Read only    EX          External            WOM         Write only    EM          Emulator            INPORT      Port read only    PR          Programmable        OUTPORT     Port write only    ER          Erasable            IOPORT      Port read and write    DA          Dual access         SARAM       Single access RAM    ASn         Access size         DARAM       Dual access RAM    SHnC        Shared              FLASH       Flash ROM    CACHE       Cache               EXRAM       External RAM    TX          Text                EXROM       External ROM    MN          Monitor             EPROM       Erasable write-able EPROM    SA          Single access       MONITOR     Monitor ROM    FL          Flash               PRAM        Program RAM    MR          Memory mapped       PROM        Program ROM    NULL        NULL                NULL        NULL

    */

    GEL_MapAddStr(0x00000000, 0, 0x00100000, "R", 0);  /* Flash */    GEL_MapAddStr(0x01000000, 0, 0x00008c00, "R", 0);  /* ROM */    GEL_MapAddStr(0x20000000, 0, 0x00040000, "R|W", 0);  /* SRAM */    GEL_MapAddStr(0x40000000, 0, 0x00001000, "R|W", 0);  /* WATCHDOG0 */    GEL_MapAddStr(0x40001000, 0, 0x00001000, "R|W", 0);  /* WATCHDOG1 */    GEL_MapAddStr(0x40008000, 0, 0x00001000, "R|W", 0);  /* SSI0 */    GEL_MapAddStr(0x40009000, 0, 0x00001000, "R|W", 0);  /* SSI1 */    GEL_MapAddStr(0x4000A000, 0, 0x00001000, "R|W", 0);  /* SSI2 */    GEL_MapAddStr(0x4000B000, 0, 0x00001000, "R|W", 0);  /* SSI3 */    GEL_MapAddStr(0x4000C000, 0, 0x00001000, "R|W", 0);  /* UART0 */    GEL_MapAddStr(0x4000D000, 0, 0x00001000, "R|W", 0);  /* UART1 */    GEL_MapAddStr(0x4000E000, 0, 0x00001000, "R|W", 0);  /* UART2 */    GEL_MapAddStr(0x4000F000, 0, 0x00001000, "R|W", 0);  /* UART3 */    GEL_MapAddStr(0x40010000, 0, 0x00001000, "R|W", 0);  /* UART4 */    GEL_MapAddStr(0x40011000, 0, 0x00001000, "R|W", 0);  /* UART5 */    GEL_MapAddStr(0x40012000, 0, 0x00001000, "R|W", 0);  /* UART6 */    GEL_MapAddStr(0x40013000, 0, 0x00001000, "R|W", 0);  /* UART7 */    GEL_MapAddStr(0x40020000, 0, 0x00001000, "R|W", 0);  /* I2C0 */    GEL_MapAddStr(0x40021000, 0, 0x00001000, "R|W", 0);  /* I2C1 */    GEL_MapAddStr(0x40022000, 0, 0x00001000, "R|W", 0);  /* I2C2 */    GEL_MapAddStr(0x40023000, 0, 0x00001000, "R|W", 0);  /* I2C3 */    GEL_MapAddStr(0x40028000, 0, 0x00001000, "R|W", 0);  /* PWM0 */    GEL_MapAddStr(0x4002C000, 0, 0x00001000, "R|W", 0);  /* QEI0 */    GEL_MapAddStr(0x40030000, 0, 0x00001000, "R|W", 0);  /* TIMER0 */    GEL_MapAddStr(0x40031000, 0, 0x00001000, "R|W", 0);  /* TIMER1 */    GEL_MapAddStr(0x40032000, 0, 0x00001000, "R|W", 0);  /* TIMER2 */    GEL_MapAddStr(0x40033000, 0, 0x00001000, "R|W", 0);  /* TIMER3 */    GEL_MapAddStr(0x40034000, 0, 0x00001000, "R|W", 0);  /* TIMER4 */    GEL_MapAddStr(0x40035000, 0, 0x00001000, "R|W", 0);  /* TIMER5 */    GEL_MapAddStr(0x40038000, 0, 0x00001000, "R|W", 0);  /* ADC0 */    GEL_MapAddStr(0x40039000, 0, 0x00001000, "R|W", 0);  /* ADC1 */    GEL_MapAddStr(0x4003C000, 0, 0x00001000, "R|W", 0);  /* COMP */    GEL_MapAddStr(0x40040000, 0, 0x00001000, "R|W", 0);  /* CAN0 */    GEL_MapAddStr(0x40041000, 0, 0x00001000, "R|W", 0);  /* CAN1 */    GEL_MapAddStr(0x40050000, 0, 0x00001000, "R|W", 0);  /* USB0 */    GEL_MapAddStr(0x40058000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTA AHB */    GEL_MapAddStr(0x40059000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTB AHB */    GEL_MapAddStr(0x4005A000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTC AHB */    GEL_MapAddStr(0x4005B000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTD AHB */    GEL_MapAddStr(0x4005C000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTE AHB */    GEL_MapAddStr(0x4005D000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTF AHB */    GEL_MapAddStr(0x4005E000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTG AHB */    GEL_MapAddStr(0x4005F000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTH AHB */    GEL_MapAddStr(0x40060000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTJ AHB */    GEL_MapAddStr(0x40061000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTK */    GEL_MapAddStr(0x40062000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTL */    GEL_MapAddStr(0x40063000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTM */    GEL_MapAddStr(0x40064000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTN */    GEL_MapAddStr(0x40065000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTP */    GEL_MapAddStr(0x40066000, 0, 0x00001000, "R|W", 0);  /* GPIO PORTQ */    GEL_MapAddStr(0x400AF000, 0, 0x00001000, "R|W", 0);  /* EEPROM */    GEL_MapAddStr(0x400B8000, 0, 0x00001000, "R|W", 0);  /* I2C8 */    GEL_MapAddStr(0x400B9000, 0, 0x00001000, "R|W", 0);  /* I2C9 */    GEL_MapAddStr(0x400C0000, 0, 0x00001000, "R|W", 0);  /* I2C4 */    GEL_MapAddStr(0x400C1000, 0, 0x00001000, "R|W", 0);  /* I2C5 */    GEL_MapAddStr(0x400C2000, 0, 0x00001000, "R|W", 0);  /* I2C6 */    GEL_MapAddStr(0x400C3000, 0, 0x00001000, "R|W", 0);  /* I2C7 */    GEL_MapAddStr(0x400D0000, 0, 0x00001000, "R|W", 0);  /* EPI0 */    GEL_MapAddStr(0x400E0000, 0, 0x00001000, "R|W", 0);  /* TIMER6 */    GEL_MapAddStr(0x400E1000, 0, 0x00001000, "R|W", 0);  /* TIMER7 */    GEL_MapAddStr(0x400EC000, 0, 0x00001000, "R|W", 0);  /* EMAC0 */    GEL_MapAddStr(0x400F9000, 0, 0x00001000, "R|W", 0);  /* SYSEXC */    GEL_MapAddStr(0x400FC000, 0, 0x00001000, "R|W", 0);  /* HIB */    GEL_MapAddStr(0x400FD000, 0, 0x00001000, "R|W", 0);  /* FLASH CTRL */    GEL_MapAddStr(0x400FE000, 0, 0x00001000, "R|W", 0);  /* SYSCTL */    GEL_MapAddStr(0x400FF000, 0, 0x00001000, "R|W", 0);  /* UDMA */    GEL_MapAddStr(0x44030000, 0, 0x00001000, "R|W", 0);  /* CCM0 */    GEL_MapAddStr(0xE000E000, 0, 0x00001000, "R|W", 0);  /* NVIC */

    GEL_TextOut("\nMemory Map Initialization Complete\n");
这里没有说明中断向量表应该映射的位置,所以才上来问问大家,我不确定中断向量表映射到    GEL_MapAddStr(0x20000000, 0, 0x00040000, "R|W", 0);  /* SRAM */这里行不行?

赞(0)
未经允许不得转载:TI中文支持网 » 关于TM4C中断向量表映射 .intvecs: > 0x00000000,是只能放到Flash地址吗?放到0x20000000好像不能进中断
分享到: 更多 (0)