硬件信息:STM32F103RCT6 + M26
开发软件:MDK keil5

  1. 第一个简单测试,试下是否可以成功写进FLASH,然后成功跳转。(通过开网上的开源例程USART2通信)
    1.1. 创建1个足够大的APP缓存,测试用到的是11k的空间,这里要求硬件RAM支持
uint8_t  RI_Set2_Buffer[15 * 1024];

1.2. 程序开始,串口打印开始接受数据,等待串口接受

UART2_SendString((u8* )"USART2 accept...\r\n",strlen("USART2 accept...\r\n"));

1.3. 判断串口接受是否完整,串口接受成功后直接向对应FLASH中写上自己的APP缓存

     if(RI_Set2_Count && (endflag != 1)){if(recvcount==RI_Set2_Count)//新周期内,没有收到任何数据,认为本次数据接收完成.{applenth=RI_Set2_Count;recvcount=0;endflag = 1;RI_Set2_Count=0;Uart2_serial_send(USART2,(u8* )"USART2 end...%d,sizeof:%d\r\n",applenth,sizeof(RI_Set2_Buffer));delay_ms(1000);delay_ms(1000);}else recvcount=RI_Set2_Count;           }delay_ms(1000);

1.4. 直接用可以发送文件的串口工具,通过串口向STM32F103发送文件
1.5接受成功后,写进对应地址的FLASH,写成功后跳转

     if(applenth && endflag){UART2_SendString((u8* )"start update...\r\n",strlen("start update...\r\n"));if(1){   iap_write_appbin(FLASH_APP1_ADDR,RI_Set2_Buffer,applenth);//更新FLASH代码   updataflag = 1;UART2_SendString((u8* )"update success ...\r\n",strlen("update success ...\r\n"));}else {   UART2_SendString((u8* )"update error ...\r\n",strlen("update error ...\r\n"));}}if(updataflag){if(((*(vu32*)(FLASH_APP1_ADDR+4))&0xFF000000)==0x08000000)//判断是否为0X08XXXXXX.{     __disable_irq();iap_load_app(FLASH_APP1_ADDR);//执行FLASH APP代码}else {UART2_SendString((u8* )"into error ...\r\n",strlen("into error ...\r\n"));}                                     }

注,在跳转前首先要关闭所有中断,还有就是在app中一定要在SystemInit();函数之后设置跳转,我这边没有注意这两点,当下载成功并且跳转后出现app执行不了得情况。

  1. 通过串口改写对应M26的工程,整个下载过程是通过M26TCP透传实现的
    2.1对应初始化博客:M26TCP初始化
    2.2具体数据收发,根据和后台定接口,具体协议,具体实现
    2.3在透传接受过程中我是设置的M26带缓存功能的,这样可以主动提出接受
//配置M26接受模式,成功返回1,失败返回2
u8 set_recv_conf()
{if(M26_SendCmd((u8* )"AT+QINDI=1\r\n","OK",500) != 0){Clear_Buffer2(); return 0;}return 1;
}

2.4当数据发送成功后延时读取就可以,因为由于网络和后台处理速度原因,当M26发送完成后,实际只是M26TCP协议栈的数据发送到对方TCP协议栈里,具体应用层怎么实现根看具体情况

STM32F103通过M26实现远程在线IAP相关推荐

  1. 巨控GRM530远程模块与西门子上-300PLC远程上下载程序,远程在线调试程序

    西门子上-300PLC远程上下载程序,远程在线调试程序 一.什么叫做远程上下载西门子S7-300的PLC程序? 远程上下载PLC程序指的是:工程师没有在项目现场,没有在西门子PLC旁边的时候,想要通过 ...

  2. 配电室辅控项目无线组网远程在线控制系统解决方案

    方案背景 配电室是电力系统末端配电网中传输.分配电能的主要电气设备场所,是城市配电网系统的重要组成部分,起到保护.计量.分配电能的作用. 长期以来,配电室管理工作一直是供电系统运行管理的薄弱环节之一. ...

  3. Android工业气罐监控系统,一种气罐远程在线监测系统及方法专利_专利申请于2019-06-25_专利查询 - 天眼查...

    1.一种气罐远程在线监测系统,其特征在于,包括气罐试压区(1),所述气罐试压区(1)的内底面上固定有支撑架(2),所述支撑架(2)上固定有气罐样体(3),所述气罐样体(3)的一端通过远程控制阀(9)连 ...

  4. 基于物联网技术的48V蓄电池组远程在线监测解决方案

    蓄电池组广泛应用于应急电源.光伏发电.楼宇备用电源.机房备用蓄电池组.基站备用电源中.根据实际的应用.选择合适的蓄电池组远程在线监测解决方案可以大大的降低运营成本. 本文介绍采用基于4G与5G无线网络 ...

  5. ​分散式污水处理站远程在线监测

    污水处理站状态关系污水排放治理.城市水环境质量,5G/4G环保数采仪下污水处理站监测系统解决分散式站点管理难题,实现治污工况.排水水质远程实时监测.数据在线可视化.设备远程监测控制. 5G/4G环保数 ...

  6. [附源码]java毕业设计远程在线教育平台

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. 【单片机开发】stm32f429在线IAP 实现SD卡烧写程序

    (一)背景介绍 最近做了一个工程需要用到IAP在线升级这个功能,当时在学的时候,了解到IAP的功能当时就觉得很鸡肋,明明有烧写器干嘛那么费事,现在觉得当时确实浅薄了,IAP功能在工程中确实是非常有用的 ...

  8. 【大健康】高保真交互原型模板+大健康生态问诊app+饮食运动数据血糖血压健康数据的管理移动端+在线挂号、体检预约、远程在线视频电话图文问诊医疗服务+积分商城设备管理+健康档案

    本套作品以大健康生态为主题,包含:运动数据与健康数据(血压.血糖.心率.血脂.BMI等)的管理,在线挂号.体检预约.远程问诊.健康档案和设备管理等医疗服务,以及积分商城及资讯版块.可能是目前原型市场上 ...

  9. 远程在线办公效率与业绩提升秘笈

    "新型冠状病毒"疫情势头有所控制,但仍需加紧防控,非接触式在线远程办公的模式还将持续,而国内各大企业远程办公和管理方面尚缺乏经验.远程工作时间和成果难以衡量,沟通效率不高.协同能力 ...

  10. 腾创秒会达远程在线教学系统

    远程教育相比传统教育,更有效的利用了教学资源.远程教育可以让每一家从事远程教育的学校充分发挥自己的学科优势和教学资源优势,更多的教师团队,来制作的网络课件,把多年积累下来的教学经验和新的教学成果通过网 ...

最新文章

  1. mybatis-plus团队新作:mybatis-mate 轻松搞定数据权限
  2. python之WEB开发:图片管理
  3. 完全理解NIO Selector
  4. jquery mobile 移动web(5)
  5. mysql low_case_MySQL8.0的坑之lower_case_table_names
  6. hadoop连接远程mysql_Hadoop之Hive本地与远程MySQL数据库管理模式安装手册
  7. 多目标函数 matlab 粒子群_【LIBSVM】基于群智能优化算法的支持向量机 (SVM) 参数优化...
  8. 【CDH】 kafkaServer-gc.log日志太多
  9. TensorFlow精进之路(十三):长短时记忆神经网络LSTM
  10. python可以做什么-Python简直就是万能的,你用Python都做过哪些事?
  11. 巨杉数据库入选Gartner数据库报告,中国首家入选厂商
  12. java基础之ArrayLis类
  13. 复制整个文件夹下的文件(无限递归复制子文件夹)
  14. C9高校,博士生一作发Nature!
  15. android仿华为系统相册之智能相册开发
  16. Intel仿人类大脑研发“神经元”芯片,可以解读人的喜怒哀乐
  17. 提取谷歌游览器Cookie的五重境界
  18. 一个非常复杂的某考核系统计算考核得分代码层设计
  19. 一些免费实用的接口,调用次数无限制
  20. 【poi-3.8】poi解析excel插入数据库详解

热门文章

  1. One or more errors occurred 报错
  2. lesson 12 goodbye and good luck 再见,一路顺风-将来时态-early in the morning
  3. Matlab绘制图像(plot函数)
  4. 皮皮高清影视播放器2015官方版
  5. java中rtf转化为html的第三方工具,java .rtf文件转html
  6. 面试官都叫好的Synchronized底层实现,这工资开多少一个月?
  7. 联合国首席AI顾问专访:我们期望AI应该是完美的,但这永远不会
  8. 重庆市企业数据名录爬取采集-信用中国(重庆)
  9. 整理了 47 个 Python 人工智能库
  10. 最新2021计算机排名中国大学排名,2020-2021年计算机类专业排名_中国大学本科教育按专业类排行榜_中国科教评价网...