This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
尊敬的香榭丽舍
我修改了大于 0x00080000的测试函数地址、
调用 ROM 函数时 ,程序始终跳转到 FaultISR()。
但 只将地址修改为小于0x008000 或仅修改不带 ROM 的调用函数
它工作正常。
请告诉我们发生故障 ISR 的原因 、谢谢
void main (void)
{
/*初始化设备*/
//初始化 MCU
ConfigureMCU();
//让用户知道系统已重新启动
test();//0x00080000、
while (1)
{
}
}
#pragma CODE_SECTION (TEST、".FLASH_BL");// 0x00080000
void 测试(void)
{
//SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
//SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);
//SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPION);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOP);
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOQ);
while (1)
{
}
}
你好、Jimmy、
我刚刚尝试了 TivaWare hello 示例、并进行了一些修改、以使用 pragma 并将 ConfigureUART 函数映射到0x08000。 这对我很有用。
#pragma CODE_SECTION (ConfigureUART、"my_section");
无效
配置 UART (空)
{
//
//启用 UART 使用的 GPIO 外设。
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
//
//启用 UART0
//
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_UART0);
//
//为 UART 模式配置 GPIO 引脚。
//
ROM_GPIOPinConfigure (GPIO_PA0_U0RX);
ROM_GPIOPinConfigure (GPIO_PA1_U0TX);
ROM_GPIOPinTypeUART (GPIO_Porta_base、GPIO_PIN_0 | GPIO_PIN_1);
//
//初始化控制台 I/O 的 UART
//
UARTStdioConfig (0、115200、g_ui32SysClock);
}
下面是链接器命令文件。
部分
{
.intvecs:> app_base
.text:> FLASH
.const:> FLASH
.cinit:>闪存
.pinit:> FLASH
init_array:> FLASH
my_section:> 0x08000
.vtable:> RAM_base
.data :> SRAM
.bss:> SRAM
.sysmem:> SRAM
.stack:> SRAM
}
下面是.map 文件。
my_section
* 0 00008000 0000005c
00008000 0000005c hello.obj (my_section:ConfigureUART)
今天,“查尔斯爵士”正火! 再一次-超越/超越-做得很好。 *** 类似 *** (轻松点击按钮-仍然很想念!)
海报(隐藏代码(下面))是否使您的工作变得复杂和扩展?
/*初始化设备*/
//初始化 MCU
ConfigureMCU();
海报应提供"所有相关的设置/配置"-这减少了对供应商员工(甚至是我们的无电/无电)的(不公平)要求-外部搅拌器!)