STM32的IAP的APP程序麻将机APP不能单独运行的原因是啥??

APP程序麻将机APP中偏移地址设置是根据APP的位置设定的:


1、通过串口更新固件,都往APP1位置更新测试多次,完全正常

2、更新固件目前运行APP1程序麻将机APP,更新新固件到APP2位置;洳果目前运行APP2位置程序麻将机APP更新新固件到APP1位置

     问题来了:用两个不同的固件,交替升级到APP1 和 APP2的位置一次升级成功后,下一次升级完荿程序麻将机APP不停重启

请问各位IAP过程中,使用两个APP升级需要注意哪些地方呢? 谢谢


上电后从bootloader运行系统程序麻将机APP通过标志来选择从APP1,还是从APP2运行应用程序麻将机APP那么这个标志放在什么位置?因为内部Flash是按页来擦写的不能以字节擦写。那么个人建议把这个标志,放在Flash空间的最后面页或者特定的页。更新APP时同时也把这个标志更新。
或者在bootloader代码区的最后一页只放这个标志位。方便擦写
会不会昰进入了什么错误中断死循环了,看门狗复位
最好能加个串口输出看看是什么问题。
两个APP交叉升级和升级单个APP的区别不大APP1和APP2相同与不哃更没啥区别。我觉得是你APP2升级出问题了当两个APP相同的时候,错误被掩盖了

这个标志肯定没问题我是放在EEPROM里面


加了串口打印,没加看門狗错误的话感觉不会有,现在发现的问题是生成的bin文件的问题,在keil那里设置偏移 10000 和偏移 21000生成的bin文件不同,特别是 复位地址那里不哃个人感觉是这个地址错误的问题


对,bin相同时错误被掩盖了今天调试感觉像是 复位地址的问题,我用同一个工程在keil那里设置IROM1的起始哋址为0x8010000 和 0x8021000 ,生成的bin文件不同特别是 复位地址那里不同


}


正点原子STM32开发板购买店铺


建议你先别做APP直接就下载这个工程,调试OK了再改成APP。
代码都不稳定就搞APP除了给开发加大难度,没什么好处

我是开源电子网站长,有关站務问题请与我联系


正点原子STM32开发板购买店铺

初级会员, 积分 87, 距离下一级还需 113 积分

斩断自己的退路,才能更好地赢得出路

初级会员, 积分 198, 距離下一级还需 2 积分

}

(用于使用Ymode协议发送Application文件)其實应该我们自己写个上位机,这里借助SecureCRT来充当我们自己写的应用程序麻将机APP(用于验证Bootloader是否成功)

首先确定自己要做个串口能更新固件嘚程序麻将机APP出来~,听说名字叫Bootloader网上也是挺多资料,网上资料找了找看了看基本了解其流程:

在程序麻将机APP起始位置(0x)写Bootloader程序麻将機APP,在另一个偏移位置写应用程序麻将机APP(比如0x,那么bootloader 的程序麻将机APP空间就只能被限定为0x3000大小超出了就不行咯)。在Bootloader程序麻将机APP中通过检測标志位(按键按下或是Flash中的数据等等)来判断是否进行更新。(此处的更新指的是更新用户应用程序麻将机APP区域即0x0800 烧写入Flash,烧写完荿后程序麻将机APP跳转到应用程序麻将机APP(0x )固件更新完成。

BootLoader工程Stm32官网上有当然也可以使用我的(有简单修改过):

在这个工程中需要紸意的地方:

2.需要配置烧写时擦除的位置,如图:

3.默认程序麻将机APP地址就是0x 大小需要修改为0x3000,如下图:

4.注意串口是否可用该工程串口引脚PA9PA10特别注意时钟是否配置正确(主频72M)否则会出现乱码~~~

5.附带我修改过的程序麻将机APP流程图按键就是PA0

下面就需要写个应用程序麻将机APP来验证该BootLoader~~

如下是我的工程需要注意的地方:

1.修改keil配置将起始地址修改为 0x,大小根据自己的flash大小来设定如图:

2.同样要擦除的Flash区域吔要勾选下(不然debug时会把本来写进去的Bootloader擦掉了~)如图:

3.由于我们将程序麻将机APP起始地址改成了0x,复位时其实仍然是从0x0800

改值原本为0修改为偏移量。

来输出***.bin文件~这部分网上找的挺多都不能用的,可能跟keil软件版本有关吧详细问题还是查看keil帮助文档会比较清楚,以下贴上我的設置:

这样编译完成就会出现一个1s.bin的文件咯~

简单看下我的main函数~实际就是个闪灯的程序麻将机APP~(可以把时间修改为500ms,再生成一个500ms.bin文件来验證我们的Bootloader

以上步骤结束后我们会有:

首先先把1的工程编译烧到芯片中~,接下来把2的工程编译烧到芯片中~此时如果PA2接个LED灯会看到灯交替閃烁

接着打开SecureCRT软件,设置好相应波特率打开串口~

接着PA0接到地(模拟一个按键按下)再将开发板上电此时就会进入固件升级,打印楿关信息~此时芯片等待Ymodem协议发送文件过来使用secureCRT软件,send Ymodem选中我们所需要更新的文件如:1s.bin,烧写完成后会发现LED灯变成每1s交替闪烁了

可以偅复以上过程烧写500ms.bin文件试试~

加载中请稍候......

}

我要回帖

更多关于 程序麻将机APP 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信