展开

关键词

最简 bootloader

文章主题 bootloader 是什么?如果你看到了这篇文章,肯定已经知道答案了,所以这里就不赘述了。 这篇文章主要是根据韦东山老师的视频,从零开始写一个最简单的 bootloader,每一行代码都是手动输入。 boot.c:main 函数,设置 bootloader 向内核传递的启动参数。 boot.lds:连接脚本。 Makefile:make 编译指令。 重定位:把bootloader本身的代码,从flash复制到它的链接地址上去 */ ldr sp, =0x34000000 /* 把堆栈设置为 SDRAM 的最顶端,因为是向下增长的 */

24310

基于J1939的bootloader

在做正式的产品时候,经常我们的产品需要可以升级固件,这时候就需要bootloader引导,而在车载上,基于J1939的bootloader可靠性非常重要。要能够快速,有效且安全的更新固件。 这一部分通常叫Bootloader Configuration Area(BCA)这部分通常可以放在应用程序开始的一段地址上。bootloader开始的时候会初始.data和。 对跑在J1939通信上的bootloader,跟我们以前做bootloader考虑的一样,只是换了个通信方式和接口,一般情况下,如果是自定义的PGN,一般放在PGN61184用专有A来作为bootloader 通常我们在设备上电时候,bootloader需要检查是否存在有效的应用,如果有,那么跳转到应用程序,如果没有则开始尝试接收应用程序。并且应用程序要能够有启动bootloader的命令。 做基于J1939通信的bootloader,需要考虑三种帧来传输地址包,数据包,和命令包。

49340
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    STM32通用Bootloader——FOTA

    1.1 bootloader 升级模式 bootloader 的升级模式常见有以下两种: bootloader 分区 + app1 分区 + app2 分区模式该模式下, bootloader 启动后, bootloader 分区 + app 分区 + download 分区模式该模式下, bootloader 启动后,检查 download 分区是否有新版本的固件,如果 download 分区内有新版本固件 RT-Thread OTA 使用的是 bootloader 升级模式 2, bootloader 分区 + app 分区 + download 分区的组合。 重启系统跳转到 app 分区中的固件运行,Bootloader 运行结束。 Bootloader 工作过程如下图所示: ? 就能够轻松完成自己产品的bootloader功能。

    3.1K23

    STM32系统bootloader应用

    嵌入式开发中,经常需要bootloader进行程序固件升级和系统维护,所以bootloader是必不可少的功能。STM32系统自带的系统bootloader很方便使用。 大量减少了工程师开发bootloader的工作 1. 摘要 本篇笔记主要介绍,STM32系统bootloader的应用,以STM32H743芯片为例介绍, 2. 系统bootloader介绍 相信用过STM32芯片的童鞋应该都不陌生,在芯片出厂的时候,意法在内部系统固化了bootloader,并且支持多种接口像UART,I2C,SPI,USB,CAN等等,可用于下载升级用户程序 此bootloader可配合ST官方的STM32CubeProgrammer上位机使用,这样大大节省了开发时间,当然你如果要做更好的bootloader可以根据这个思路自己在添加更多功能。 ? Bootloader模式 在使用bootloader时候,需要考虑怎么进入boot模式,而STM32支持通过boot引脚跳转,通过boot引脚跳转需要配置引脚和地址寄存器 ?

    70850

    这个bootloader适合你

    bootloader 在正式的产品中是一个不可或缺的功能,而NXP针对kinetis系列开发的通用bootloader是一个不错的选择,目录结构 ? 目前支持的器件 ? 今天我们以这个包中支持的K64为例子来看下这个bootloader 效果如何 PC端软件如下 ? 打开K64的工程下载到freedom-k64f板子 ? 连接上位机软件 ? 这个bootloader包完全开源,不管是目标板程序还是PC端程序都提供源文件,你可以根据自己的需要裁剪,且接口丰富,支持UART,I2C,SPI,UART,USB等接口。 基于这个开发你的bootloader会减少很多开发工作。有兴趣的可以研究下。

    36970

    u-boot 和 bootloader 的区别

    今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。 BootloaderBootloader从字面上来看就是启动加载的意思。 对于嵌入式系统,Bootloader是基于特定硬件平台来实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的Bootloader,不同的处理器架构都有不同的Bootloader。 反过来,大部分Bootloader仍然具有很多共性,某些Bootloader也能够支持多种体系结构的嵌入式系统。 bootloader 与 uboot的区别 BootLoader是嵌入式设备中用来启动操作系统内核的一段程序。 uboot(universal bootloader)是一种可以用于多种嵌入式CPU的BootLoader程序,换言之,uboot是bootloader的一个子集。

    25430

    嵌入式Bootloader组成

    8510

    STM32F407的系统bootloader基础知识

    28.1 初学者重要提示 28.2 系统bootloader基础知识 28.3 进入系统bootloader的方法 28.4 退出系统bootloader的方法 28.5 系统bootloader的擦写管理 28.2.1 系统bootLoader执行流程 下面是STM32F407的BootLoader程序执行流程,简单了解下即可: ? 28.2.2 系统bootLoader使用的引脚 STM32F4的bootloader使用到的引脚分配如下: ? 28.3 进入系统bootLoader的方法 STM32进入系统bootLoader主要有两种方法,一种是设置boot引脚,另一种是应用程序直接跳转到系统bootLoader。 28.4 退出系统bootLoader的方法 当前主要研究了USB DFU和串口IAP退出bootLoader

    1.4K10

    Bootloader需要你的精心设计

    bootloader,目前只支持UART和SPI,因为SPI要转接板,所以还是UART方便一些,经常被选用。 官方提供的KEA的bootloader基本上分为三个层面 bootloader 层,通信层和驱动层 ? bootloader的代码放在flash的头4k字节,以KEA128Z为例可以划分为 ? bootloader 的流程在应用笔记里也有提供,可以很好的帮助开发者熟悉整个过程。 bootloader一定要理解系统内存的分布,可以参考官方提供的源码,修改使用于自己的项目,也可以自己开发,使用于自己的项目,总之bootloader还是很重要的,如果设计不好,会在后期给你带来很多坑。 祝愿每一个工程师都能够设计出自己的友好的bootloader

    38430

    Android系统启动之bootloader

    取而代之的是 Bootloader —— 系统启动加载器。 Bootloader主要是在系统加载前,初始化硬件设备,建立内存空间的映像图,为最终调用系统内核准备好环境。 bootloader bootloader程序分两个阶段执行。第一个阶段,检测外部的RAM以及加载对第二阶段有用的程序;第二阶段,设置网络、内存等等。 这些对于运行内核是必要的,为了达到特殊的目标,bootloader可以根据配置参数或者输入数据设置内核。 bootloader程序可以在\bootable\bootloader\legacy\usbloader找到。 kernel kernel开始启动时,设置缓存、被保护存储器、计划列表,加载驱动。

    90020

    记一个bootloader的cache问题

    问题背景 最近往一个armv7板子的bootloader中移植了解压算法,移植本身还比较顺利,但移植完了发现,功能是正常的,但效率大打折扣。解压同样的数据,耗时大约是uboot的10倍。 Cache回刷 改完之后,解压速度杠杠的,但也带来了一些其他的问题,例如我的系统启动不了了,bootloader跳转过去就直接挂了。 如果是在主系统中,那对Cache就得精细化控制,该回刷就回刷该无效就无效,但在这个问题中我的场景比较简单,bootloader一穷二白,就简单些吧,再移植一段刷Cache的代码,直接刷全部DCache。

    26630

    赶快来更新你的bootloader

    不知大家是否还记得在之前给大家介绍过NXP的kinetis bootloader1.2版本的, 嵌入式工程师必须会的技能:玩转bootloader 时隔一年多,已经更新到V2版本了,不知你是否更新了你的 将bootloader的bin文件拷入目标板,开启你的bootloader之旅吧,如果你不习惯命令行操作还有GUI界面,供你选择, ? 跟1.0版本的是有一些区别。其中也有工程源代码供你参考。

    61990

    深入bootloader启动分析笔记

    bootloader到kernel启动总逻辑流程图 ARM架构中,EL0/EL1是必须实现,EL2/EL3是选配,ELx跟层级对应关系: EL0 -- app EL1 -- Linux kernel 、 bootloader 启动分两个阶段,一个是pre-loader加载lk(u-boot)阶段,另一个是lk加载kernel阶段。 下面跟着流程图简述第一个阶段的加载流程。 /bootloader/preloader/platform/mt6580/src/init/init.s .section .text.start ... .globl _start ... = bldr_load_images(&jump_addr)) { print("%s Second Bootloader Load Failed\n", MOD); goto /bootloader/preloader/platform/mt6580/default.mak:95: CFG_UBOOT_MEMADDR := 0x81E00000 从log中可以看到

    51320

    如何使用Magisk解锁Bootloader以及RootGoogle Pixel 3?

    一、解锁 Google Pixel 3 Bootloader 注:解锁bootloader将擦除设备中的所有数据,包括保存在设备内部存储器上的所有媒体,如图片,视频,音乐,文档等。 现在,重启到bootloader菜单。你可以通过在启动时按住电源和音量调低键或输入以下ADB命令来执行此操作: adb reboot bootloader 7. 进入bootloader菜单后,现在你必须切换到使用fastboot命令与你的设备进行通信。 按音量增大键,直到显示“unlock the bootloader”,然后再按电源键。’ ? 9. 此时,手机将解锁bootloader并重启到bootloader菜单。 再次重新启动到bootloader菜单。 12.

    5.2K40

    基于CAN的bootloader在KEAZ系列上的移植

    在实际的工程和产品开发中,我们需要更新产品的程序,这时候就需要产品具备bootloader引导程序功能,而嵌入式中常用的接口有基于UART,CAN,IIC,SPI, 以太网等,今天我们来看看使用广泛的基于 CAN的bootloader在NXP汽车控制器S9KEAZ系列上的移植。 我们也可以将J1939程序加入,完成基于J1939的bootloader。 NXP官网还提供了MCUBOOT2.0.0的下载包,但是目前还不支持KE06和S9KEAZ系列,需要自己动手移植,且移植工作量比较大但是是比较标准和量产正式的bootloader供用户使用。 而且支持的芯片的bootloader已经集成进SDK供用户使用,也很方便,如果能支持全系列就更好了。

    48110

    【STM32H7教程】第67章 STM32H7的系统bootloader基础知识

    67.1 初学者重要提示 67.2 系统bootloader基础知识 67.3 进入系统bootloader的方法 67.4 退出系统bootloader的方法 67.5 系统bootloader的擦写管理 67.2.1 系统bootLoader执行流程 下面是STM32H7的BootLoader程序执行流程,简单了解下即可: ? 67.2.2 系统bootLoader使用的引脚 STM32H7的Bootloader使用到的引脚分配如下: ? 67.3 进入系统bootLoader的方法 STM32进入系统BootLoader主要有两种方法,一种是设置boot引脚,另一种是应用程序直接跳转到系统BootLoader。 67.4 退出系统bootLoader的方法 当前主要研究了USB DFU和串口IAP退出bootLoader

    98921

    tinkerboard2 Android11系列-bootloader部分的编译

    Android11 的RK3399开发板tinkerboard2》已经对tinkerboard2的Android 11有个大致的介绍,这一期来聊聊tinkerboard2 Android11 SDK bootloader 最终的运行效果如下 15.png 总结 本文介绍了tinkerboard2 Android11 SDK整个bootloader的流程。 bootloader从上电运行,到引导进入kernel结束,总共包含三个部分,分别为FSBL,包括ddr bin和miniloader;SSBL,也就是uboot;以及ATF固件。

    8840

    bootloader启动之【 lk -> kernel】分析笔记

    接上一篇分析: 《bootloader启动之【 Pre-loader -> Lk】》 Pre-loader 运行在ISRAM,待完成 DRAM 的初始化后,再将lk载入DRAM中,最后通过特殊sys call 到这里,bootloader两个阶段就分析完了! Bootloader 启动简单总结: Pre-loader -》lk主要干的事情: 1、初始化 DRAM等必须硬件; 2、与flashtool USB握手,download 相关检测 & sec boot

    37320

    嵌入式工程师必须会的技能:玩转bootloader

    Bootloader 的作用相信不用多说,嵌入式工程师应该都知道他的重要性,我们可以通过bootloader上载,下载用户应用程序,引导系统等,那么对NXP(Freescale)的Kinetis MCU 的bootloader是如何操作呢,NXP提供两种方案,可以通过命令行和GUI界面两种方法。 准备工作 NXP 塔式板 KV46F PEmicro 下载bootloader 1.2.0,其他版本也可以 连接电脑和塔式板 ? 命令行操作 我的bootloader解压包是放在D盘,首先需要将tower_bootloader.srec文件拷贝到 tower板载电脑上的虚拟映射盘。 如果你使用的板子不是解压包里包含的,那么需要修改源码才能做为自己的bootloader 使用。随着版本的更新,可能会支持更多的kinetis 型号。 ?

    683150

    【Sony】索尼从小白到大白系列之 – 解锁BootLoader

    索尼机器搞机第一步就是先解除Bootloader锁 才能刷入Recovery和第三方固件包 索尼一直都有开放Bootloader解锁申请通道 申请解锁码 索尼申请解锁码 打开网页后划到最底下Devices 解锁Bootloader

    88410

    相关产品

    • 云服务器

      云服务器

      云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。 腾讯云服务器(CVM)为您提供安全可靠的弹性云计算服务。只需几分钟,您就可以在云端获取和启用云服务器,并实时扩展或缩减云计算资源。云服务器 支持按实际使用的资源计费,可以为您节约计算成本。

    相关资讯

    热门标签

    扫码关注云+社区

    领取腾讯云代金券