请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS570LC4357 大家好!
我正在尝试使用 UART 引导加载程序 来下载和启动我的应用程序。 除了中断、一切似乎都正常工作。 我从其他论坛上看到、需要在引导加载程序中更改 intvecs.asm 文件、但仍然不能成功。 我的应用程序从0x0020020开始。
我使用的是 RTI 和 GIO 中断、没有引导加载程序、它们都可以正常工作。 除了 intvecs 文件中的修改外、在使用引导加载程序时、我还需要注意其他什么东西来处理中断?
SYS_intvecs.asm (引导加载程序)
;------------------------------------------------------------------------------- ; sys_intvecs.asm ; ; (c) Texas Instruments 2009, All rights reserved. ; ;------------------------------------------------------------------------------- ; import reference for interrupt routines .ref _c_int00 .ref _svc ;------------------------------------------------------------------------------- ; interrupt vectors .sect ".intvecs" b _c_int00 b #0x20018 b #0x20018 b #0x20018 b #0x20018 b #0x20018 ldr pc,[pc,#-0x1b0] ldr pc,[pc,#-0x1b0]
应用程序上的 cmd 文件。
/* Linker Settings */
--retain="*(.intvecs)"
/* USER CODE BEGIN (1) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Memory Map */
MEMORY
{
/* USER CODE BEGIN (2) */
/* USER CODE END */
VECTORS (X) : origin=0x00020020 length=0x00000020
FLASH0 (RX) : origin=0x00020040 length=(0x001FFFE0-0x00020020)
FLASH1 (RX) : origin=0x00200000 length=0x00200000
STACKS (RW) : origin=0x08000000 length=0x00001500
RAM (RW) : origin=0x08040000 length=(0x00080000-0x00040000)
/* USER CODE BEGIN (3) */
/* USER CODE END */
}
/* USER CODE BEGIN (4) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Section Configuration */
SECTIONS
{
/* USER CODE BEGIN (5) */
/* USER CODE END */
.intvecs : {} > VECTORS
.text align(32) : {} > FLASH0 | FLASH1
.const align(32) : {} > FLASH0 | FLASH1
.cinit align(32) : {} > FLASH0 | FLASH1
.pinit align(32) : {} > FLASH0 | FLASH1
.bss : {} > RAM
.data : {} > RAM
.sysmem : {} > RAM
/* USER CODE BEGIN (6) */
/* USER CODE END */
}
谢谢!
此致、
