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

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

3天内不再提示

C语言指针存在SRAM里面吗

云深之无迹 来源:云深之无迹 2024-06-04 10:28 次阅读

应该有可以回答的上来的,但是大部分应该是回答不上来。标题的回答也不对。

0e653602-219c-11ef-91d2-92fbcf53809c.png

计算机内存里面分这么几种数据

存在SRAM里面,嗯?内存?对也不对,大家觉得内存条应该很快了吧?不,不快。

0e854be0-219c-11ef-91d2-92fbcf53809c.png

我的电脑里面有三种cache,可以看到L1最小,L3最快

0eab88fa-219c-11ef-91d2-92fbcf53809c.png

大小

量相差很大

0ef7ba86-219c-11ef-91d2-92fbcf53809c.png

这是我自己电脑的实测,最慢的反而是内存,算完是58.49G/s,L1居然到了2K G这个速度,L3是内存的大概3倍多。看时间L1和内存的时间是100倍。

就先记住:FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。

然后SRAM有个别的名字叫缓存,这听懂了吧?

SRAM是静态随机存取存储器。它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。

RAM掉电数据会丢失,RW-data是非0初始化的数据,已初始化的数据需要被存储在掉电不会丢失的FLASH中,上电后会从FLASH搬移到RAM中。

SRAM是访问时间短的片上存储器,DRAM是访问时间长的片外存储器。因此SRAM 比DRAM 快。

DRAM 的存储容量更大,而SRAM 的尺寸更小。SRAM很贵,而DRAM 很便宜。

0f2bd884-219c-11ef-91d2-92fbcf53809c.png

DRAM简单,电容充电就是有1了

0f4d2b1a-219c-11ef-91d2-92fbcf53809c.png

读取的时候还得一个放大器读取?

0f6dade0-219c-11ef-91d2-92fbcf53809c.png

电容这玩意儿漏电啊,要不停的刷新,不然一会儿就没电荷了

0f982098-219c-11ef-91d2-92fbcf53809c.png

SRAM,是两个与门一个RS触发器,1bit的储存确实很复杂

10029b4e-219c-11ef-91d2-92fbcf53809c.png

要保证上下输入不一致,还得加一个二极管取反,这东西就是锁存器了

10212172-219c-11ef-91d2-92fbcf53809c.png

可以看到应该是有两块SDRAM

103cf96a-219c-11ef-91d2-92fbcf53809c.png

105595e2-219c-11ef-91d2-92fbcf53809c.png

大概是这样的

LPDDR4是新一代面向移动设备的低功耗内存,它属于SDRAM家族的存储器产品

SDRAM是同步动态随机存取存储器的缩写,而SRAM是同步随机存取存储器的缩写。它们的最大区别在于,SDRAM必须被外部时钟同步刷新,而SRAM则不需要刷新。 虽然SRAM速度更快,读写时间也更短,但SRAM的成本较高,所以在存储器容量较小的情况下,通常使用SRAM,而对于大容量存储器,则使用SDRAM。 同步(Synchronous )是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准 动态(Dynamic )是指存储阵列 需要不断的刷新来保证数据不丢失 随机(Random )是指数据不是线性依次存储,而是自由指定地址进行 数据读写SDRAM具有空间存储量大、读写速度快、价格相对便宜等优点。 然而由于SDRAM内部利用电容来存储数据,为保证数据不丢失,需要持续对各存储电容进行刷新操作;同时在读写过程中 需要考虑行列管理、各种操作延时等,由此导致了其控制逻辑复杂的特点。 SDRAM 内部可以理解为一个存储阵列,表格中的每一个单元格可以类比为存储阵列的单个存储单元。若想要实现存储阵列中的某一存储单元的数据读写操作,我们要通过行地址(Row Address)和列地址 (Column Address)(先行后列)精确定位到这一存储单元,进而进行数据的读写操作,这就是所谓的随机地址存取.

1086a178-219c-11ef-91d2-92fbcf53809c.png

就是这样

10a91d0c-219c-11ef-91d2-92fbcf53809c.png

我找了一个FSMS接口的图看看

10cdedbc-219c-11ef-91d2-92fbcf53809c.png

这里翻出ESP32的手册看看

片内SRAM:大小:512 KB 关系:片内SRAM = IRAM (192KB ) + DRAM( 328KB )IRAM :作用:存储关键代码。 1.中断处理程序。注册中断处理程序时使用了 ESP_INTR_FLAG_IRAM,则中断处理程序必须要放入 IRAM。 2.可将一些时序关键代码放入 IRAM,以减少从 flash 中加载代码造成的相关损失。 3.以上两点为链接器自主操作,官方也提供接口,可以通过程序来声明函数,可以将 IRAM_ATTR 宏用作属性,直接将程序存储在这部分空间。 函数中的字符串或常量可能没有自动放入 RAM 中,这时可以使用 DRAM_ATTR 属性进行标记,或者也可以使用链接器脚本方法将它们自动放入 RAM 中。

void IRAM_ATTR gpio_isr_handler(void* arg) { const static DRAM_ATTR uint8_t INDEX_DATA[] = { 45, 33, 12, 0 }; const static char *MSG = DRAM_STR("I am a string stored in RAM"); }DRAM:作用两个: 非常量静态数据(.data 段)和零初始化数据(.bss 段)由链接器放入内部 SRAM 作为数据存储。 这部分空间的使用是由链接器在对项目代码编译链接时,根据程序内容自动使用。空间大小随程序内部使用情况扩张。 官方也提供接口,可以通过程序声明变量,直接使用这部分空间。可以将 __NOINIT_ATTR 宏用作属性,从而将数据放入 .noinit 部分。放入该部分的值在启动时不会被初始化,在软件重启后也会保持值不变。

1129a1c0-219c-11ef-91d2-92fbcf53809c.png

最后我还测试了一下这个GPU

审核编辑:彭菁

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

    关注

    6

    文章

    751

    浏览量

    114177
  • 计算机
    +关注

    关注

    19

    文章

    6842

    浏览量

    85711
  • 内存
    +关注

    关注

    8

    文章

    2800

    浏览量

    73117
  • C语言
    +关注

    关注

    180

    文章

    7551

    浏览量

    131846

原文标题:C语言指针的值在哪里?在SRAM

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言教程-指针.pdf

    本帖最后由 eehome 于 2013-1-5 09:45 编辑 C语言教程-指针.pdf
    发表于 06-30 06:28

    一份不错的C语言指针教程

    ` 本资料是一份不错的关于C语言指针的电子教程,希望对大家有所帮助...指针简介 指针是C语言
    发表于 07-28 00:25

    不错的C语言指针教程.pdf

    不错的C语言指针教程.pdf
    发表于 08-11 00:28

    C语言指针

    今天讲讲关于C语言里面指针。那么指针是什么呢?指针和其他变量一样也是个变量,像char,sho
    发表于 05-05 10:03

    C语言指针详解

    ];//指针的类型是 int(*)[3] (5)int*(*ptr)[4];//指针的类型是int*(*)[4] 怎么样?找出指针的类型的方法是不是很简单? 完整的C
    发表于 07-04 03:34

    C语言指针的高级用法

    C语言指针搞不好说实话实在是太麻烦的一个东西,而且C语言指针还是绕不过的一个坎,所以我觉得还是苦
    发表于 11-06 16:50

    什么是C语言指针变量

    C语言指针变量
    发表于 12-15 07:22

    C语言如何传递指针函数?

    C语言传递指针函数
    发表于 12-18 06:29

    【资料分享】看完这篇,对你的C语言指针有大幅度提升~~~再再论指针

    ` 本帖最后由 张飞电子学院蔡琰 于 2021-3-3 13:36 编辑 指针C 语言规范里面一项核心内容,指针具有与生俱来的优势,
    发表于 03-03 13:33

    c语言指针详解

    1.指针简介 指针C语言中广泛使用的一种数据类型。 运用指针编程是C
    发表于 03-26 09:51

    c语言为什么要用指针

    c语言为什么要用指针C语言到底重不重要? 大学考C语言
    发表于 07-20 08:04

    C语言中的指针是什么?如何规避野指针

    C语言中的指针是什么?有哪几种类型?指针有何作用?如何规避野指针
    发表于 02-25 06:47

    C语言指针电子教程

    本资料是一份不错的关于C语言指针的电子教程,希望对大家有所帮助... 指针简介 指针是C语言中广泛使用的一种数据类型。 运用
    发表于 07-30 16:00 77次下载

    为什么C语言要引入指针_引入指针的好处是什么

    让你知道什么是 C语言 指针,为什么用指针,从此不在害怕指针
    的头像 发表于 07-28 10:12 2.2w次阅读

    C语言中的指针(重点)超详细

    - 指针4.3、指针的运算关系5、指针和数组6、二级指针7、指针数组1、指针是什么??在计算机
    发表于 01-13 14:10 11次下载
    C<b class='flag-5'>语言</b>中的<b class='flag-5'>指针</b>(重点)超详细