Blen 发表于 2012-4-21 13:56:39

求助 stm32 函数指针 问题

 我编一个通过函数指针调用子程序的实验程序运行没有问题,程序如下:
 
void scr_1(void);
void scr_2(void);
void scr_3(void);
void (*fp)();
void (*scr_list[])()={
        scr_1,
        scr_2,
        scr_3,
};
 
void main(void)
{
        fp=scr_list;
        (*fp)();
        fp=scr_list;
        (*fp)();
        fp=scr_list;
        (*fp)();
        while(1);
}
void scr_1(void)
{
        unsigned char  i,j;
       
        i=0;
        j=i;
        i=10;
};
void scr_2(void)
{
};
void scr_3(void)
{
};
 
但是我运用到实际项目中,在子程序返回时就出错,总是跳到HardFault_Handler 里边,不知道什么回事情,我想唯一的区别就在于实验程序中我没有用ST的函数库,实际项目中我用了ST的函数库(但我用函数指针调用的不是st的函数,而是我自己编的函数),请大侠指点啊:'(
 
我发现我的实验程序子程序返回是用 bx lr,而项目程序用的是pop {r0-r5;pc}, 是编译问题还是在哪里可以设置????
我用的是iar for arm 5.4
 
页: [1]
查看完整版本: 求助 stm32 函数指针 问题