嵌入式平台调试PCI9054遇到的非常奇怪的问题!

老师您好:

我最近在自己调试一个基于FPGA和PCI9054的数据采集卡的项目,遇到了一个非常奇怪的问题。下面的代码是将PCI的BAR2映射到虚拟地址,并将地址偏移为0x174位置的数值赋值给value然后打印出来。
当我注释掉printf那一行的时候,程序可以正常执行,但如果打开printf那一行,就会死机!之前从来没遇到过这种问题,上网查也查不到类似的情况,实属无奈,向您求教,希望能够获得解答!!
// Test Code.
U8 i;
U32 value;
U32 VA[6]; // Virtual address

for(i=0;i<6;i++){
    rc = PlxPci_PciBarMap(Device,i,&(VA[i]));
    if(rc != PLX_STATUS_OK){
        printf("API Failed. rc = %d\n",rc);
    }
}
printf(
    "   BAR0 VADDR = 0x%08x.\n"
    "   BAR1 VADDR = 0x%08x.\n"
    "   BAR2 VADDR = 0x%08x.\n"
    "   BAR3 VADDR = 0x%08x.\n"
    "   BAR4 VADDR = 0x%08x.\n"
    "   BAR5 VADDR = 0x%08x.\n"
    ,VA[0],VA[1],VA[2],VA[3],VA[4],VA[5]);


// Read a 32-bit value from Space 0 (For 9054, Space 0 is at PCI BAR 2)
value = *(U32*)(VA[2]+0x174);
*(U32*)(VA[2]+0x174) = value;

//printf("00000000000000000000 %d\n",value);

程序执行成功的打印是:
root@imx6qsabresd:/mnt/App# ./ApiTest 


                        PLX SDK API Test
                          January 2007

                 1. 9054 10b5  [b:02 s:00 f:0]
                 0. Cancel

       Device selection --> 1

Plx9054: Mapped Phys (01300000) ==> User VA (76fc6000)
API Failed. rc = 522
Plx9054: Mapped Phys (01100000) ==> User VA (76cf2000)
Plx9054: Mapped Phys (01200000) ==> User VA (76bf2000)
API Failed. rc = 522
API Failed. rc = 522
BAR0 VADDR = 0x76fc6000.
BAR1 VADDR = 0x00000000.
BAR2 VADDR = 0x76cf2000.
BAR3 VADDR = 0x76bf2000.
BAR4 VADDR = 0x00000000.
BAR5 VADDR = 0x00000000.
11111111111111111111111
222222222222222222222
33333333333333333333
root@imx6qsabresd:/mnt/App#

执行失败的打印是:
root@imx6qsabresd:/mnt/App# ./ApiTest

                        PLX SDK API Test
                          January 2007

                 1. 9054 10b5  [b:02 s:00 f:0]
                 0. Cancel

       Device selection --> 1

Plx9054: Mapped Phys (01300000) ==> User VA (76f7f000)
API Failed. rc = 522
Plx9054: Mapped Phys (01100000) ==> User VA (76cab000)
Plx9054: Mapped Phys (01200000) ==> User VA (76bab000)
API Failed. rc = 522
Unhandled fault: external abort on non-linefetch (0x1018) at 0x76cab174
API Failed. rc = 522
BAR0 VADDR = 0x76f7f000.
BAR1 VADDR = 0x00000000.
BAR2 VADDR = 0x76cab000.
BAR3 VADDR = 0x76bab000.
BAR4 VADDR = 0x00000000.
BAR5 VADDR = 0x00000000.
Bus error
root@imx6qsabresd:/mnt/App#

嵌入式C的问题,如果实在解决不了,可以私聊我,我可以帮你邀请这方面的专家来会会诊:)