4897|1

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

华大HC32F460单片机变量定位到SRAMH快速SRAM内 [复制链接]

 

华大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:

更多信息咨询请联系angel.qi:13827489351(微信与手机号码同步)
在程序中我要把一组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内。比如如下图: 

最新回复

编译选项修改前如图: 少图   详情 回复 发表于 2021-10-12 10:36
点赞 关注
 
 

回复
举报

6802

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

编译选项修改前如图:

少图

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
一个ARM7的手册,全部的语言格式和用法

一个ARM7的手册,全部的语言格式和用法

LPC1343学习笔记(连载中)--6月21日新增第十二篇

有幸拿到了EEWORLD论坛的LPC1343评估板,实在是一件意外而激励人心的事情。为感谢EEWORLD和NXP,特将学习过程与大家共同分享。也 ...

2011 TI M3 DAY资料提前放出

明天TI M3 DAY就要开始了,提前放出相关资料,感兴趣的朋友可以预习一下。 本帖最后由 jkhu 于 2011-6-19 23:19 编辑 ]

我的Beaglebone学习历程

整理一下前面发的帖子,搞个总帖,方便大家交流。1.BeagleBone 硬件性能测试 _周计划https://bbs.eeworld.com.cn/thread-324885- ...

GD32F105RBT6和 STM32F103RBT6是完全兼容的,程序也完全兼容吗?

GD32F105RBT6和 STM32F103RBT6是完全兼容的,一个引脚都不差,,,下载程序的接口也一样的,,,是不是可以直接使用原来STM32里 ...

【Silicon Labs 开发套件评测】+SPI flash(MX25R8035F)

在很多应用中,需要保存配置参数。一般都会外接一个存储器来存储,数据比较少会使用EEPROM,使用SPI flash的也比较多,存储空间 ...

【基于NUCLEO-F746ZG电机开发应用】12.参数配置-定时器TIM1配置

在伺服电机的控制过程中,使电机能够按照自己的想法转起来,一定要用到PWM输出控制,但是PWM该如何产生,频率如何控制,占空比 ...

瑞萨CPK-RA6M4 开发板测评----I2C

功能模块的硬件介绍-->I2C I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串 ...

二极管常用的8个用途

之前有个版本是7中用途 二极管是十分常用的基础元器件,本文主要介绍了二极管的一些作用,比如防反、整流、稳压、续流、检波 ...

visionfive的星光2开发板移植openwrt上篇--编译篇

本帖最后由 怀揣少年梦 于 2023-8-15 23:57 编辑 ###一、openwrt是什么? openwrt是一个常用于路由器嵌入式linux操作系统 ...

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表