h1_key

当前位置:首页 >新闻资讯 > 技术文章>华大>华大HC32F460单片机变量定位到SRAMH
华大HC32F460单片机变量定位到SRAMH
2023-03-21 1071次

华大HC32F460单片机内部有一共192KB的SRAM,其中有32KB的快速SRAM区,SRAMH。所谓SRAMH快速SRAM,就是在CPU运行在高速频率下,比如200Mhz,读取内部SRAM无需等待CPU时钟周期,如手册中的下图: 


其中只有SRAMH在全频段内是无需CPU等待的,其他SRAM在100Mhz以上都需要等待至少1个CPU周期。所以如果做一定的数据算法,需要大量频繁使用RAM,最好把这些数据放在RAMH内,以增加CPU读取RAM速度。本贴总结一个把4K数据内存数组放在SRAMH的方法。下图是HC32F460的内部SRAM地址layout:

在程序中我要把一组4K数据放在0x1FFF8000地址开头的4K size空间内。方法就是使用ARM编译器的属性功能。uint8_t gReserve[4096] __attribute__((section(".ARM.__at_0x1FFF8000")));以上一段代码就是定位4KB大小的gReserve数据到0x1FFF8000内。另外我们在华大默认工程内编译前,还需要把编译器预留的RAM区去掉0x1FFF8000开头 大小为4KB的区域。因为默认编译选项内设置了从0x1FFF8000开头的ZI区,所以默认工程编译会报错。编译选项修改前如图:

修改后编译选项:我们看到IRAM1的起始地址和大小都相应的做了对应调整,这样编译程序才不会报错。 

 

编译后查看.map 看看0x1FFF8000地址是怎么分配的:

看来我们分配成功了,我们用程序来验证一下:在程序开头我们添加以下代码打印出我们gReserve的地址。DPRINTF("[%s:%d]:gReserve addr:0x%x\n", __FUNCTION__, __LINE__, gReserve);看一下串口输出:看来我们已经验证没有问题了,gReserve被分配在了内部SRAMH快速   RAM内(0x1FFF8000)。 

最后,当然不一定非得变量才能通过__attribute__方式放在内部RAM内,其实函数或某段代码也是可以通过__attribute__来放置在RAM内。另外整个一个.c文件编译出来的.o也可以通过keil file option的方式放在RAM内。比如如下图: 


 

  • 华大单片机设计5大注意事项
  • 华大单片机被越来越多的额温枪市场合作伙伴应用,工程师们在使用产品时一定要注意华大单片机设计5大注意事项:1. Vcap管脚、2. MODE(Boot、MD)管脚、3. 离线烧录用的UART口、4. 得到极致的超低功耗、5. 用户程序对内部FLASH擦写特别注意。
    2023-03-21 489次
  • 华大HC32F460单片机变量定位到SRAMH
  • 华大HC32F460单片机内部有一共192KB的SRAM,其中有32KB的快速SRAM区,SRAMH。所谓SRAMH快速SRAM,就是在CPU运行在高速频率下,比如200Mhz,读取内部SRAM无需等待CPU时钟周期。
    2023-03-21 1072次
  • 华大单片机超低功耗如何设置
  • 华大单片机主推超低功耗系列,产品的功耗其实包括了产品工作时的功耗和休眠时的功耗两部分,这两部分的加权平均值才是产品的平均功耗,对于评价产品的功能、性能有特殊意义。以HC32L136芯片解释一下,华大单片机如何设置超低功耗的问题。
    2023-03-21 581次
  • 低功耗华大单片机MDK中新建工程
  • 以HC32F003为例介绍在MDK中如何利用.pack支持包来为国产低功耗华大单片机新建工程。首先下载HC32F003的.pack支持包到自己的电脑中,选择需要的型号进行下载和安装。
    2023-03-21 446次
  • 国产芯片华大HC32替换STM32
  • 芯片持续缺货涨价,在初创小公司真的是处于生死的边缘,各种芯片一直在告急,没有供货商,公司产品也生产不出来,32的芯片价格飙升,让企业不得选择国产的芯片HC32F460KETA国产芯片华大HC32替换STM32。
    2023-03-21 558次

    万联芯微信公众号

    元器件现货+BOM配单+PCBA制造平台
    关注公众号,优惠活动早知道!
    10s
    温馨提示:
    订单商品问题请移至我的售后服务提交售后申请,其他需投诉问题可移至我的投诉提交,我们将在第一时间给您答复
    返回顶部