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

如何把STM32的Flash分成内个区域

莱克迷KW 2019-04-14 浏览量:2170
如何把STM32的Flash分成内个区域
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • STM32的Flash分区可以使用Keil的分散加载的方式进行分区。

    也可以自己定义一些函数或是变量的地址来进行分区。

    不过最常用的就是通过分散加载的方式,或是在keil的工程中设置ROM的开始地址与大小

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

其他答案 数量:6
  • 在裸开发中,你可以自行管理,因为Flash有地址空间,你定义几个常量,分别标明Flash分区的首地址,长度 等信息对,就可以自行以此为基础进行读写访问。

    因为Flash结构和读写要求特性,最好分区和Flash最小单独擦除区成倍数关系(这样好管理)

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

  • 如果你是把内部flash当做eeprom来使用的话一般可以在芯片最后的地址定义一块或者多块区域作为数据存储用,注意不要超过程序代码大小,否则会覆盖代码
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32一般从FLASH基地址0X8000000开始存放代码,预算下你的代码区间会占用多大,或者看下编译后的代码大小 size = (Code + RO-data),你的用户数据就存放在 0X8000000 + size 这个地址的后面尽量往后挪,以免数据冲突覆盖。对于存放一些系统参数就可以免去外部EEPROM了
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • STM32一般从FLASH基地址0X8000000开始存放代码。编译后明确数据代码的大小只要flash地址偏移足够的大小可以随便使用
    • 发布于2019-04-14
    • 举报
    • 评论 0
    • 0
    • 0

  • IC42.png

    Keil的话,rom自由分区在linker中设置。IAR的话直接修改ICF文件。 

    以KEIL为例,按上面的配置,点eidt打开分区描述文件。

    按下面的语法分成两个区或者更多区域。


    IC04.png

    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是要做bootloader 的应用呢,这种一般是在软件上keil中设置好每个程序的ROM的起始地址再进行编程的

    还有中断向量的地址也要按偏移量进行设置

    • 发布于2019-04-15
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如何把STM32的Flash分成内个区域