• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于STM32自带的bootloader的功能

墨水是你 2019-01-06 浏览量:1739

STM32F107:memory mapping地址0x00000000-0x0003FFFF中存放的是什么?如果是历程,则主要是做什么功能,这段程序能不能被读出?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这是中断向量表地址,iap代码需要重映射中断向量表地址
    • 发布于 2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 一般STM32的bootloader本来就已经通过编译环境做好了,若你想自己了解活着写一下试试的话,其实编写bootloader主要事项有以下:

    1)检测有无需要更新的标志,用户可自定义。比如说读取flash某位置存储的字节作为标志位。
    2)如需更新,则调用STM32的FLASH程序擦鞋用户代码部分。
    3)将新的bin文件(即2进制文件直接烧写进去,需要将keil生成的hex文件转换为bin文件,然后存储到外扩展的flash中)写入到STM32自带的FLASH中去,记住需要与上述设置的用户代码存储区一致。
    4)更新成功后再跳转至用户程序。
    5、用户程序需要注意一点,需要在程序运行前重新设置中断向量表,即:NVIC_SetVectorTable()。
    6、用STM32自带的烧录软件进行烧录时,需要修改项目如下:
    1)打开安装后目标文件中的map文件夹,我们所用的STM32为512Kflash,所以选取STM32_High-density_512K.STmap,将其分解为两个STmap文件(此文件可用记事本 打开)
    STmap文件中,扇区是以每2K为一page来显示的,所以boot区我们只需要到page7,用户区我们需要page8到最后。
    修改完成后再次打开此软件会发现多出了两个flash选项,可以根据此处来选择需要存储的代码区

    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 1
    • 0

  • 在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。 在从待机模式退出时,BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后,CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。这段代码被固定在MCU内,不能通过外部来修改。
    • 发布于2019-01-06
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个区域是系统存储区,一般是放置一些启动时用到的信息如中断向量表等。

    • 发布于2019-01-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 着个系统存储区主要是放置中断向量参数地址,启动延迟后看看地址的变化
    • 发布于2019-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 里面就是一个中断向量表的地址,用来保存中断向量的位置
    • 发布于2019-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看具体的地址,不同的地址里面存储的数据代码都是不同的,具体的介绍要参考数据手册
    • 发布于2019-02-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 实际保持的是一个系统引导程序,这个是用户不能更改的
    • 发布于2019-02-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于STM32自带的bootloader的功能