我尝试引导至外部存储器 CS3 SRAM、我在 cmd 文件中进行了如下配置、 它可以引导至外部存储器、 但无法运行、在没有 GEL 的情况下连接 JTAG 后、PC 值为0x06xx、将 PC 设置为_c_int00值、它可以运行正常、因此我假设引导过程正常、但引导加载程序没有跳转到应用程序。
-boot
-v5505
串行8
-reg_config 0x1c02 0x0000
-reg_config 0x1c03、0x0000
-reg_config 0x1c05、0x0002
延迟0xff
-reg_config 0x1c33、0x0000
-reg_config 0x1c60、0x0000
-reg_config 0x1014、0x4125
-reg_config 0x1015、0x0824
延迟0xff
-b.
-o xf.bin
C550xXFLEDtestRaw.out
下面是简单测试代码。 仅将 blink_led()分配给外部存储器。 我在 main 的开头插入了一个死循环、它也没有到达那里。
void main()
{
unsigned short i、j、k;
while (1);
(ioport_register (0x1C02))= 0;
(ioport_register (0x1C03))= 0;
for (i=0;i<0x100;i++);
while (1)
{
blink_led();
// for (j=0;j<0xFFFF;j++)
{
对于(i=0;i<0xA;i++)
{
对于(k=0;k<0xFFFF;k++);
}
}
}
}
#pragma CODE_SECTION (blink_led、"blink_section")
void blink_led ()
{
静态 int toggle = 0;
如果(0 =切换)
{
LED_ON;
切换= 1;
}
其他
{
LED_OFF;
切换= 0;
}
}
如果我删除了该命令的一些-reg 配置、则它可以引导并运行到死循环。 但外部存储器值错误、因此如果我移除死循环、它将会运行得一团糟。 观察 EMIF 寄存器0x1014、0x1015的值与配置的值一致。 因此、我认为引导加载程序跳转到应用程序过程是可以的、但外部存储器配置不正确、因此其中的值是错误的。
-boot
-v5505
串行8
-reg_config 0x1c02 0x0000
-reg_config 0x1c03、0x0000
-reg_config 0x1c60、0x0000
-reg_config 0x1014、0x4125
-reg_config 0x1015、0x0824
延迟0xff
-b.
-o xf.bin
C550xXFLEDtestRaw.out
命令文件配置中似乎有一些技巧、请指导我。



