热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Bootloader相关的知识

基于《认知觉醒》的观点:阅读就是为了改变。所以,记录一下最近看到的相关知识因为公司音箱需要卖给客户以后进行升级。所以需要了解Bootloader的内容。

基于《认知觉醒》的观点:阅读就是为了改变。所以,记录一下最近看到的相关知识

因为公司音箱需要卖给客户以后进行升级。所以需要了解Bootloader的内容。
总体框架是,芯片flash中有两套完全不同的程序,平时上电复位先从A程序开始启动,然后跳转到B程序。一般的开发都是在进行B程序,应用层,也可以理解为App的开发。

那为什么要两个程序呢?因为stm32等芯片,本身不像电脑有操作系统和bios。所以,上电复位以后的初始化硬件设备(时钟的初始化和中断初始化,还有就是中断向量表的映射之类的)就需要现有一段程序来执行,这就是程序A。
然后,在各类嵌入式机器做出来以后,整个产品已经封装好了。平时就是运行B程序。当需要升级时,不可能程序B把自己删除,再把自己写入。这就需要程序A来把B删除,然后写入新的B,再运行。此处,程序A就像一个后勤装修队,平时整栋楼就是白领员工(程序B)进进出出工作。但当整栋大楼内部需要拆掉或者装修时。白领就不能工作了。整个大楼的使用和操控安排全部交给后勤装修队,该砸墙砸墙,该修厕所修厕所。重新装修一番安排好后。后勤装修队退居二线,整个大楼的使用权再交给程序B白领员工。
程序A就是Bootloader,程序B就是App程序(嵌入式工程师平时打代码, 改bug的就是B程序)。

上面有了大致框架认识,具体知识见下面两个我感觉最有用的链接:
stm32内部flash读写:
https://www.cnblogs.com/xingboy/p/11346568.html
STM32在线升级 (IAP):
https://blog.csdn.net/elikang/article/details/86082960


推荐阅读
  • 本文详细介绍了JSP(Java Server Pages)的九大内置对象及其功能,探讨了JSP与Servlet之间的关系及差异,并提供了实际编码示例。此外,还讨论了网页开发中常见的编码转换问题以及JSP的两种页面跳转方式。 ... [详细]
  • 本文详细介绍了MySQL中的存储过程,包括其定义、优势与劣势,并提供了创建、调用及删除存储过程的具体示例,旨在帮助开发者更好地利用这一数据库特性。 ... [详细]
  • 深入解析BookKeeper的设计与应用场景
    本文介绍了由Yahoo在2009年开发并于2011年开源的BookKeeper技术。BookKeeper是一种高效且可靠的日志流存储解决方案,广泛应用于需要高性能和强数据持久性的场景。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 本文详细探讨了在微服务架构中,使用Feign进行远程调用时出现的请求头丢失问题,并提供了具体的解决方案。重点讨论了单线程和异步调用两种场景下的处理方法。 ... [详细]
  • 本题要求计算给定两个正整数a和b时,2的-a次方与2的-b次方之和,并将结果以最简分数形式表示。输入包括多组测试数据,每组数据包含两个在2到20范围内的整数。 ... [详细]
  • ML学习笔记20210824分类算法模型选择与调优
    3.模型选择和调优3.1交叉验证定义目的为了让模型得精度更加可信3.2超参数搜索GridSearch对K值进行选择。k[1,2,3,4,5,6]循环遍历搜索。API参数1& ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 深入解析8086 CPU的转移指令
    本文详细介绍了8086 CPU中的转移指令,包括无条件转移、条件转移、循环指令及过程调用等,同时探讨了offset操作符的功能及其应用实例。 ... [详细]
  • CentOS 7.2 配置防火墙端口开放
    本文介绍如何在 CentOS 7.2 系统上配置防火墙以开放特定的服务端口,包括 FTP 服务的临时与永久开放方法,以及如何验证配置是否生效。 ... [详细]
  • Barbican 是 OpenStack 社区的核心项目之一,旨在为各种环境下的云服务提供全面的密钥管理解决方案。 ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 本文详细介绍如何在 Windows 环境下安装 Ubuntu 12.04 版本的 Linux 操作系统,包括必要的软件下载、配置步骤以及注意事项。 ... [详细]
  • 随着技术社区的发展,越来越多的技术爱好者选择通过撰写博客来分享自己的学习经验和项目进展。本文将介绍一个具体案例,即将一套原本运行于Windows平台的代码成功移植到Linux(Redhat)环境下的过程与挑战。 ... [详细]
  • JESD204C 入门:第2部分新特性及其内容
    本文内容来自ADI的技术文章,作者:DelJones原网址为:https:www.analog.comcnanalog-dialoguea ... [详细]
author-avatar
PHP_sunshine
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有