cw2.10 函数指针出错

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

cw2.10 函数指针出错

754 Views
xianggan
Contributor I

使用CW2.10编译一个bootloder,在bootloder中使用如下代码出错。

bootloder:

    int32_t *pmain  =(int32_t *)0x0000000C;

    pmain_fun =(pfun)pmain;

    pmain_fun();运行此条指令时出错,PC寄存器变成0x40000000,机器已经出错了。如果错pmain指向的地址的内容改为bootloader代码的其它地址(如bootloader的_start地址)却能正常跳转

说明:上述代码运行地址在0x1e3e60,

            0x0000000c地址存放内容为0x00000010。

0 Kudos
1 Reply

671 Views
jingpan
NXP TechSupport
NXP TechSupport

Hi,

如果0x0c这个地址存放的是你要执行的程序的地址,你应该写成

uint32_t *pmain  =(uint32_t *)(*(uint32_t *)(0x0000000c));

Regards,

Jing

0 Kudos