OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 904|回复: 1

IAP的boot loader程序里面的跳转验证地址一直失败,FLASH_APP1_ADDR为0x08002800,C8T6我给了10K ,程序只有8K够用

[复制链接]

20

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2014-10-16
在线时间
41 小时
发表于 2024-2-26 18:53:07 | 显示全部楼层 |阅读模式
5金钱
                        if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.
                        {       
                            printf("开始执行FLASH用户代码!!\r\n");               
                            iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码
                        }
                        else
                        {
                            printf("非FLASH应用程序,无法执行!\r\n");

                        }

if判断一直失败,#define FLASH_APP1_ADDR        0x08002800          然后IROM1 0X8000000 0X10000       IRAM1 0X2000000 0X5000   
C8T6的芯片,64Kflash,只能省着点用,USART_REC_LEN 为12*1024,串口一次接受的最大字节数改成12K了,再大就显示HardFault_Handler,检测应该就是数组越界了,找了半天没找到原因,求解大神

奋斗才能新生
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
248
金钱
248
注册时间
2014-10-16
在线时间
41 小时
 楼主| 发表于 2024-2-27 15:16:52 | 显示全部楼层
USART_REC_LEN 这个找到原因了,C8T6就20kRAM,20484btye是最大了,跳转失败是我之前串口开了空闲中断,中断关了就跳过去了,可以正常运行APP的程序,但是修改APP程序发现跑飞了,然后改回来也没用,还是跑飞,能跳转就是不知道跳哪去了,跳转之前关闭了全局中断也没用,IAP程序开的中断就一个串口接收中断,APP也有开串口中断,试过清除中断标志位,程序跳转依然跑飞,还有其他原因么?求解
奋斗才能新生
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 09:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表