关于GD与ST兼容遇到的问题

[复制链接]
3176|7
 楼主| yonglianli 发表于 2015-8-29 18:12 | 显示全部楼层 |阅读模式
我在用GDF103替换同系列的ST的CPU,程序不用做任何更改运行非常正常,但是当我替换我一个带BOOT的项目时就出现了问题,BOOT不能切换到应用入口,代码如下。

void quit(void)
{
       
        //FlashParamWrite(0);  //存储CpuSerial参数
       
        //FlashWriteProtectedEnable(); //在每次运行前就要检查是否加密
       
        if (((*(__IO uint32_t*)ApplicationAddress) & 0x2FFE0000 ) == 0x20000000)
    {
                /* Jump to user application */
                JumpAddress = *(__IO uint32_t*) (ApplicationAddress + 4);
                Jump_To_Application = (pFunction) JumpAddress;
                /* Initialize user application's Stack Pointer */
                __set_MSP(*(__IO uint32_t*) ApplicationAddress);
                Jump_To_Application();
    }
}
如果这个问题能得到解决就好了,我不知道问题出在那里,请指点。
niuyaliang 发表于 2015-8-29 19:15 | 显示全部楼层
我在用GDF103替换同系列的ST的CPU,程序不用做任何更改运行非常正常,这句话就是错误的,两者的区别还是很大的。
niuyaliang 发表于 2015-8-29 19:17 | 显示全部楼层
BOOT0及BOOT1管脚在芯片复位时的电平状态决定了复位后从哪个区域开始执行程序。典型情况下, BOOT0需外接10K下拉电阻,就可
以从Flash启动。如BOOT0悬空,则不能从Flash启动。这是两者boot的区别。
niuyaliang 发表于 2015-8-29 19:18 | 显示全部楼层
还有,两者flash算法文件,启动文件的不同,都可能影响代码。所以,最后用GD的库重新修改,不要使用STM32的。
黑夜的风 发表于 2015-8-30 10:13 | 显示全部楼层
你可以单步跟踪调试看看,程序跳到哪里了
justperky 发表于 2015-8-30 23:05 | 显示全部楼层
涉及到boot的启动,肯定不是直接复制过去就可以的。
styleno1 发表于 2015-8-31 08:59 | 显示全部楼层
俩MCU还是有差别的,不要觉得跑起来就算正常,应该做完整的测试
哆来咪 发表于 2015-8-31 18:06 | 显示全部楼层
楼上说得对,尤其是涉及到底层的这些东西,区别更大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部