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

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

3天内不再提示

GD32F系列MCU片上Flash中Code区和Data区使用解密

聚沃科技 2024-01-09 10:07 次阅读

GD32F系列MCU产品片上Flash分Code区和Data区,以GD32F303系列为例,从GD32F303xx Datasheet中可以获取code区和data区大小,那Code区和Data区在代码执行上有什么差别呢?

?code=NjBlZTJiYTk1MTBjNDZiYWFiMDM5Y2I3NjY4YzIwZjFfWEpUQlg5dGg3bzl2YkdYblJ5UkNQbEo4R25FUnR0NzlfVG9rZW46VzVpN2JhZWVwb1RqUkt4NG9EZmN3TGRrbmhkXzE3MDQ3NjU4ODk6MTcwNDc2OTQ4OV9WNA

Code区代码运行0等待,一般用于存放实时性要求高的代码,比如中断服务程序等;Data区代码运行有较大延迟(平均比Code区慢一个数量级),Data区一般用于存放对实时性要求不高的代码或数据。

导致该问题的原因是GD32F系列产品架构决定,其采用SIP的方式叠封了GD Flash,带来的优势是代码执行在code区相同主频下具有最高的代码执行效率,带来的问题是data区代码执行会慢一些,该问题是个双刃剑,具有两面性,我们需要在了解原理的情况下,更大限度的发挥优势。

解决方案为如果代码量没有超过code区大小,恭喜你,没有这个问题的烦恼;如果代码量超过了code区大小,可以通过分散加载方式将实时性要求高的代码存放在Code区,将实时性要求低的代码存放在Data区。

PS:有关分散加载的说明,聚沃会有专题进行说明,如需要可以移步参考。

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

    关注

    6001

    文章

    43978

    浏览量

    620866
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16019

    浏览量

    343654
  • Data
    +关注

    关注

    0

    文章

    61

    浏览量

    38028
  • Code
    +关注

    关注

    0

    文章

    65

    浏览量

    15275
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23742
收藏 人收藏

    评论

    相关推荐

    移植Easylogger到GD32时报错的原因?怎么解决?

    == LOG_SECTOR_MAGIC ,LOG_SECTOR_MAGIC是指定的宏0xEF30EF30,不相等,所以状态为SECTOR_STATUS_HEADER_ERROR输出错误。 我使用的是flash
    发表于 03-01 06:28

    TC212 Flash copy to RAM出现异常的原因?

    TC212 刷boot然后刷应用程第一次flash copy to RAM 正常.(对应flash数据变化,但对应的RAM未变化)第
    发表于 02-19 06:58

    在TLE9879从代码擦除Code Flash Page时出现问题求解

    ; /**************************************************************************** wdt1_sow_Service (1u); if (USER_CFLASH_WR_PROT_DIS (0) == 0) { //code
    发表于 01-30 07:24

    如何对GD32 MCU进行加密?

    :首先GD32MCU本身支持防硬开盖破解的功能,GD32MCU内部Flash直接硬开盖破解读取的数据无法在同型号的产品上运行,因为GD32MCU内部
    的头像 发表于 01-20 09:30 574次阅读
    如何对<b class='flag-5'>GD</b>32 <b class='flag-5'>MCU</b>进行加密?

    你了解GD32 MCU的命名规则吗

    下面为大家介绍GD32 MCU的通用命名规则,以GD32F303ZGT6为例,其中,GD32代表GD32
    的头像 发表于 01-13 09:38 1574次阅读
    你了解<b class='flag-5'>GD</b>32 <b class='flag-5'>MCU</b>的命名规则吗

    ADuCM320 flash数据擦/写操作时,无法从这块flash执行程序怎么解决?

    我在UG看到说在一块128K flash擦除或写操作时,就无法从这块flash执行程序,截图如下。那么问题来了,按照ADI的做法,0-
    发表于 01-11 06:34

    如何把ADUCM320 MCU里面所有flash都擦除干净?

    今天我在使用ADUCM320的评估版 优化、调试代码的时候,添加了一些dataflash:0x1F800-0x1FFFF的地方,可能导致MCU保留区域的一些数据被我修改。 导致结果就
    发表于 01-11 06:00

    GD32F系列MCUFlashCodeData使用解密#MCU #单片机 #GD32

    单片机mcu
    聚沃科技
    发布于 :2024年01月09日 10:58:22

    指向code数组的指针需不需要加code关键字的声明?

    指向code数组的指针需不需要加code 关键字的声明?
    发表于 11-02 06:16

    如何利用AT32系列MCU存储器的零等待(ZW)

    本应用笔记详细描述了如何利用AT32系列MCU存储器的零等待(ZW),实现在擦除或者编程过程中保证CPU重要内容正常运行,免受MCU失速
    发表于 10-24 08:17

    如何在AT32F系列MCU使用FreeRTOS

    本指导手册描述了如何在AT32F系列MCU使用FreeRTOS。FreeRTOS是一款开源的嵌入式实时操作系统,目前在各种嵌入式应用应用
    发表于 10-24 07:46

    擦除FLASH零等待期间需注意事项

    擦除FLASH零等待期间需注意事项有零等待MCU 系列,在擦除零等待时需注意事项?
    发表于 10-23 07:36

    如何提升非零等待Flash效能

    部分 AT32 带有非零等待,当代码超过零等待后,且时钟不高于 72MHz,读取Flash 的效能会降低。此时不改变外围时钟,如何快速修改程序以提高 Flash 效能?
    发表于 10-20 08:26

    GD32F的芯片是不是也有唯一ID?

    GD32F的芯片,是不是也有唯一ID
    发表于 09-22 06:36

    请问外挂FLASHFLASH只能二选一吗?

    1、使用STM32F4XX,FLASH大小为1M,然后外挂一W25Q128的FLASH,该
    发表于 09-08 17:44