请选择 进入手机版 | 继续访问电脑版

雨滴科技技术论坛

 找回密码
 立即注册
查看: 46|回复: 1

AP7350:车载,工控机应用STM32的BOOT加载APP中断不能响应

[复制链接]

181

主题

803

帖子

3789

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3789
扫一扫,手机访问本帖
发表于 2019-3-13 11:51:36 | 显示全部楼层 |阅读模式
前述:这类应用往往使用高电压供电,功耗相对不严谨,为了工作可靠,我们往往会增加一颗STM32F103C8T6作为电源检测,开关机启动,看门狗功能等等(云屏系列直接使用单片机进行开发APP应用)。由于单片机默认是要上电启动的,Android就不好直接通过ISP进行升级,所以选择使用IAP进行升级。下面列举BOOT几个特点,便于自己记忆,以及供大家参考。1.单片机的存储配置为FLASH:64K,RAM:20K。boot的大小控制在10K以内,62K附近作为下载以及参数标记位。单片机的APP可以使用的空间在52K,起始地址为0x002800(这个要在KEIL里面设置IROM1)。
可参考之前的帖子:
云屏,AP7350:门禁,车载,工控机应用的BOOT设计http://bbs.raindi.net/thread-20808-1-1.html
云屏,AP7350:门禁,车载,工控机应用的Android端升级程序http://bbs.raindi.net/thread-20889-1-1.html


BOOT也使用了蛮长时间的一直挺稳定的,为了在新的HM01项目中更好的使用,在BOOT代码中增加UART2作为串口升级的通道,为了兼容之前的系统,也就是说串口1和串口2都可以用来升级APP。结果增加了UART2以后,加载之前的APP,APP会卡死,通过debug发现是在EnableIrq();时候系统就卡死了。通过各种尝试对比发现,在加载APP之前不仅要DisableIrq();还要把 单独的串口中断也要禁用。然后大概自己有个解释就是,串口在开中断的时候会绑定响应的中断地址,因为BOOT和APP的中断的响应地址是不同的,假如APP部分没有使用到这个中断,没有重新初始化的过程,实际在APP运行的时候,这个中断还是在打开的状态,而且中断的位置在BOOT的地方,所以在开启总中断的时候就出错了,可以认为程序跑飞了。

高创新,无焊接安装Android系统模块AP7370(MT6735 MT6737 MT8735)
QQ群:雨滴科技技术交流群 259878130
电话:13612938795,雨滴田
回复

使用道具 举报

181

主题

803

帖子

3789

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3789
 楼主| 发表于 7 天前 | 显示全部楼层
这个问题实际蛮好的
回复 支持 反对

使用道具 举报

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

本版积分规则

在线客服
在线咨询
咨询热线
0755-26787502-8006/8016
扫一扫二维码
直接访问本站

QQ|Archiver|手机版|小黑屋|雨滴科技  

GMT+8, 2019-3-25 17:35 , Processed in 0.070667 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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