0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用SD卡Bootloader改变你的生活

PCB线路板打样 来源:LONG 2019-07-26 09:00 次阅读

像Ray LaMontagne一样,我遇到了麻烦。智能手机麻烦,麻烦,麻烦,麻烦。我可以弄清楚我想要的应用程序,并且我已经得到了我需要的游戏(等等,我可能会将这些优先级向后),但是传输我的所有图像和数据会更加困难。似乎总会留下音乐或者无论出于什么原因拒绝备份的图像。我认为自己非常精明,但当我拿到一部新的智能手机时,我开始担心,担心,担心,担心。我甚至无法想象我是否正在尝试从更大的设备传输数据 - 从硬盘驱动器获取所有文件或更大的文件似乎会让我更多的循环。

当我购买新智能手机时,销售团队通过使用实用程序应用程序帮助我完成,该应用程序轻松地将我的数据从旧智能手机迁移到新智能手机。我不需要用三十根绳索和电缆挣扎,并且通过我的所有收藏品来搜索,以确定将要传输的内容。现在借鉴这些经验并将其应用到您的工作中:您需要多久更换一次微控制器的固件?你多久希望能避免插入电缆的笨拙过程?简化此过程的一种方法是使用SD卡引导加载程序。

使用SD卡引导加载程序灵活更新

传统上,使用编程电缆。如果您在空间受限的环境中工作,或者如果您像我一样,并且您倾向于将未完成的任务留在整个地方,这可能会变得麻烦和繁琐。此外,它适用于外部干扰。如果你乘坐电缆旅行并将桌子上的所有东西敲掉,该怎么办?或者花几个小时试图找出为什么数据没有传输只是为了意识到电缆没有插入足够紧的电缆?

在微控制器中,引导加载程序是一个特殊的程序,它接收来自的应用程序固件外部源并将其写入内部程序存储器。它往往占用空间小,位于程序存储器的保留部分。当微控制器上电并尝试读取外部媒体或资源中存在的最新固件时,引导加载程序将擦除程序存储器中的现有固件并将新固件写入其中。

您可以自定义您的引导加载程序从串行接口,LAN,外部介质等获取其新固件。但我个人偏好SD卡:它不需要是计算机上的复杂设置,它实际上是无线的。使用SD卡作为引导加载程序会将更新固件转换为插入SD卡和重置微控制器的问题。

使用引导加载程序,可以在现场更新固件,并最大限度地中断系统操作。此功能使引导加载程序,尤其是SD卡引导加载程序在嵌入式系统中非常有用,这些嵌入式系统可能需要在部署过程中进行更新或故障排除。如果固件的规格可能需要随着时间的推移而发展或定期更新,那么SD卡引导程序将使这一过程变得更加容易。

确保微控制器有可用于引导加载程序和主应用程序的空间。

不要将自己击倒再次

SD卡引导加载程序背后的主要思想是引导加载程序将从SD卡读取主应用程序的二进制或十六进制文件,并将该文件写入微控制器的程序存储器中。记住这个核心过程,这里还有一些需要考虑的问题:

程序存储器分配:虽然拥有SD卡引导加载程序有明显的好处,但并非所有微控制器都可以加载引导加载程序。引导加载程序本身就是一个应用程序。因此,如果您使用的是具有较小内存空间或应用程序固件太大的微控制器,则需要一定数量的程序存储空间。如果您计划合并引导加载程序,则为引导加载程序和固件应用程序分配足够的程序存储空间。

实现SD卡接口:SD卡引导加载程序将需要在硬件上构建其他组件容纳SD卡存储。如果您的主应用程序不需要SD卡接口,则会产生额外费用。除此之外,您还需要在引导加载程序上实现文件分配表(FAT32)堆栈,以确保您的引导加载程序可以读取新固件的二进制或十六进制文件。

程序存储器闪存写入顺序:引导加载程序基本上重写其内部闪存中的一系列地址,其中包含要加载的应用程序固件的信息字节。这将要求在特定寄存器上执行正确的命令序列以擦除和写入内部闪存。确保正在写入正确的地址,并且引导加载程序实际上没有错误地擦除自身。

将二进制文件映射到正确的地址:正常的应用程序通常写在起始地址0x00000000上。但是,使用引导加载程序时,主应用程序或引导加载程序的起始地址可能会有所不同,具体取决于它们在程序存储空间中的分配方式。修改内存链接文件以确保为正确的内存地址编译两个程序的十六进制文件。

严格测试:SD卡引导加载程序的目的是简化现场固件更新,而不是添加过程中不必要的错误或困难。完全测试引导加载程序并确保引导加载程序和主应用程序都按预期运行非常重要。如果主应用程序写入不正确或映射不正确,您可能会发现系统行为不正常。

您需要确保引导加载程序在正确的空间中编写正确的代码。

除了高质量的固件开发之外,使用引导加载程序还有其他好处。良好的硬件设计,特别是SD卡接口,将排除串扰和电气干扰。 AltiumDesigner®的信号完整性分析工具可能非常方便。

使用引导加载程序简化工作空间并灵活地进行必要的固件更新,并且能够随时随地进行处理。与智能手机不同,SD卡引导程序的正确维护和设置可以比发布另一个手机升级前几个月的时间更长。最好的部分是,每次需要使用它时,您都不需要致电客户协助。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SD卡
    +关注

    关注

    2

    文章

    527

    浏览量

    62983
  • bootloader
    +关注

    关注

    2

    文章

    230

    浏览量

    45041
  • 华强pcb线路板打样

    关注

    5

    文章

    14629

    浏览量

    42564
收藏 人收藏

    评论

    相关推荐

    SD命令响应超时怎么解决?

    自己做的PCB板,芯片的STM32F407ZGT6,SDIO连接SD后,烧入程序一直显示超时,SD
    发表于 09-25 08:31

    STM32驱动SD详解 - 第13节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:19:44

    STM32驱动SD详解 - 第12节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:18:54

    STM32驱动SD详解 - 第11节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:18:04

    STM32驱动SD详解 - 第10节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:17:13

    STM32驱动SD详解 - 第9节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:16:23

    STM32驱动SD详解 - 第8节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:15:33

    STM32驱动SD详解 - 第7节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:14:43

    STM32驱动SD详解 - 第6节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:13:53

    STM32驱动SD详解 - 第5节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:13:03

    STM32驱动SD详解 - 第3节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:11:22

    STM32驱动SD详解 - 第2节 #硬声创作季

    STM32SD
    充八万
    发布于 :2023年09月01日 16:10:32

    stm32 CubeMx 实现SD/sd nand FATFS读写测试

    使用的SD nand支持4线传输,因此此处选择4线宽度;如果所使用的SD nand或SD不支持4线传输,此处应选择1线宽度;支持4线宽度
    发表于 06-02 17:01

    运行freertos sd示例代码,sd没有检测到的原因?

    电路板详细信息: 名称:MIMXRT1170EVK 问题陈述: 我们运行 Nxp freertos sd 示例代码。但是 sd 没有检测到。 我们想要实现: 检测
    发表于 05-18 08:20

    无法使用Linux和i.MX6 SABRE SDSD启动怎么处理?

    启动 SD 。当我在上面安装 linux 时;它不工作。 能给我一个适用于 imx6 quad Sabre SDB 板的 linux 图像的链接吗? 我们没有用于 saber sdb 的完整
    发表于 05-16 08:17