高端内存是Linux中一个重要的概念,初涉Linux时曾经对这个概念非常迷惑。实际上这个概念比较简单,理解这个概念,需要追溯一下Linux的内存管理。
从前,CPU的地址总线只有32位,再早的就不再追溯了。32的地址总线无论是从逻辑上还是从物理上都只能描述4G的地址空间,在物理上理论上最多拥有4G内存(除了IO地址空间,实际内存容量小于4G),逻辑空间也只能描述4G的线性地址空间。为了合理的利用4G空间,Linux采用了3:1的策略,即内核占用1G的线性地址空间,用户占用3G的线性地址空间。所以用户进程的地址范围从0~3G,内核地址范围从3G~4G,也就是说,内核空间只能管理1G的内存。
对于如此紧张的线性地址资源,内核空间与用户空间的肆意瓜分,导致了内存管理上的问题:当物理内存大于1G时,内核线性地址空间小于实际的物理内存容量,内核如何实现对大于1G内存的管理呢?说到这里,需要提一下内核空间对内存的管理方法。一方面为了提高内核空间对内存的管理效率;另一方面,为了简化内核空间对内存的管理方法,内核采用线性映射的方法实现对内存的管理,从Linux实现的方法来看,物理地址与内核的虚拟地址只差一个偏移量。所以,当物理内存大于1G时,物理内存无法全部映射到内核线性地址空间,这就产生了上述问题。
从上述描述可以看出,地址空间大于1G的内存区域称之为高端内存,同理,小于1G的内存区域称之为低端内存。高端内存的管理需要进行非线性映射,为此,在内核线性地址空间预留了128M的空间,位于线性地址空间的高端。如今,CPU的地址总线都扩大到64位了,线性地址资源非常丰富,所以,可以给内核空间预留足够的线性地址资源,在最近一段时间内,内核线性地址资源与物理内存容量之间的矛盾将不再突出,高端内存的概念也就在64位CPU上消失了。
原先一直都对Linux高端内存的管理认识模模糊糊的,可能主要是初次接触linux kernel 是0.11版吧,当初的内存设计是16M,Linus对拥有32M的内存都是觊觎万分,1G内存恐怕是天方夜谭了。16M内存哪里还顾得上高端内存,脑子就一直没有这种概念。先我们还是来看看为什么要有高端内存?
80386的线性寻址空间是4G,内核空间从3G开始,如果全部采用"线性映射"(物理地址和逻辑地址只差一个常量 PAGE_OFFSET ),最多管理1G物理内存,也就是1G的物理内存挨着挨着对应的是虚拟地址的3G到4G的位置。你想想如果多于1G的内存,我们用什么线性地址来装下这些多出的地址呢? 我朋友的机器有2G,据说玩游戏巨爽(AMD64300+).显然如果线性映射我的朋友就会浪费1G内存.为了使内核能够访问这些"高端内存",内核使用HighMem.做法是不将内核1G的虚拟地址空间全部映射成物理内存,而是预留一部分给高端内存做临时映射使用.
其实内核不仅仅预留了highmem的地址空间,还给fixmap,vmalloc预留了虚存空间.实际上,系统初始化的时候预留128M虚存,896M用于"直接"映射物理内存。下面我们先贴上一幅图,摘自《understand linux kernel 》
毕竟意淫是很考大家的空间想象能力的,所以我们还是依照图片来看图说话:
高端内存映射有三种方式:
1、映射到“内核动态映射空间”
这种方式很简单,因为通过 vmalloc() ,在"内核动态映射空间"(上图的VMALLOC_START到VMALLOC_END)申请内存的时候,就可能从高端内存获得页面(参看 vmalloc 的实现),因此说高端内存有可能映射到"内核动态映射空间" 中。
2、永久内核映射
如果是通过 alloc_page() 获得了高端内存对应的 page,如何给它找个线性空间?
内核专门为此留出一块线性空间,从 PKMAP_BASE 到 FIXADDR_START (上图的倒数第二块区域),用于映射高端内存。在 2.4 内核上,这个地址范围是 4G-8M 到 4G-4M 之间。这个空间起叫“内核永久映射空间”或者“永久内核映射空间”。
这个空间和其它空间使用同样的页目录表,对于内核来说,就是 swapper_pg_dir,对普通进程来说,通过 CR3 寄存器指向。
通常情况下,这个空间是 4M 大小,因此仅仅需要一个页表即可,内核通过来 pkmap_page_table 寻找这个页表。通过 kmap(), 可以把一个 page 映射到这个空间来。由于这个空间是 4M 大小,最多能同时映射 1024 个 page。因此,对于不使用的的 page,及应该时从这个空间释放掉(也就是解除映射关系),通过 kunmap() ,可以把一个 page 对应的线性地址从这个空间释放出来。
3、临时映射
内核在 FIXADDR_START 到 FIXADDR_TOP 之间保留了一些线性空间用于特殊需求。这个空间称为“固定映射空间”
在这个空间中,有一部分用于高端内存的临时映射。
这块空间具有如下特点:
1、每个 CPU 占用一块空间
2、在每个 CPU 占用的那块空间中,又分为多个小空间,每个小空间大小是 1 个 page,每个小空间用于一个目的,这些目的定义在 kmap_types.h 中的 km_type 中。
当要进行一次临时映射的时候,需要指定映射的目的,根据映射目的,可以找到对应的小空间,然后把这个空间的地址作为映射地址。这意味着一次临时映射会导致以前的映射被覆盖.通过 kmap_atomic() 可实现临时映射。
想学习的你和我联系预约就可以免费听课了。
以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
宋工企鹅号:3524-6590-88 Tel/WX:173--1795--1908
通俗易懂!高手带你理解嵌入式Linux中高端内存与低端内存
相关推荐
热点推荐
5G最通俗易懂的解释
5G最通俗易懂的解释,缩略语中英文全称3GPP3rd Generation Partnership Project第三代合作伙伴计划5GC5G Core Network5G核心网AAUActive Anten...
2021-07-27 07:09:03
嵌入式Linux
,但这种努力将是白费。现在需要的是一个便宜、成熟并且提供高端嵌入式系统所必须特性的操作系统,嵌入式Linux操作系统以价格低廉、功能强大又易于移植而正在被广泛采用,成为新兴的力量,所以,众多商家纷纷转向
2016-05-13 14:42:44
嵌入式Linux应用开发详解 光盘
所有实例的完整代码,读者可以作为学习和研究之用。全书涵盖了嵌入式Linux下应用开发的各个方面,实用性高,针对性强。 本书内容丰富,图文并茂,语言流畅,通俗易懂,可操作性强。本书既可作为各高等院校有关嵌入式Linux专业的教学用书,也可供在嵌入式Linux平台下进行应用开发的广大工作人员学习和参考 `
2013-06-02 10:26:46
嵌入式Linux驱动开发之DDR内存介绍
嵌入式Linux驱动开发(一)DDR内存DDRUARTI2CSPIDDR内存RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条、 SRAM、 SDRAM、 DDR
2021-12-16 07:10:10
嵌入式linux入门学习书籍推荐
,由浅入深地讲解,使读者最终可以配置、移植、裁剪内核,编写驱动程序,移植gui系统,掌握整个嵌入式linux系统的开发方法。这本书是韦东山写的。配套这本书有一个开发板的视频。讲的很好。 第三:《深入理解
2015-10-08 09:17:16
嵌入式linux入门学习书籍推荐
系统,掌握整个嵌入式linux系统的开发方法。这本书是韦东山写的。配套这本书有一个开发板的视频。讲的很好。 第三:《深入理解Linux内核》 简称ULK,相比于LKD的内容不够深入、覆盖面不广
2015-10-18 10:13:53
嵌入式arm学习开发的要点
学习嵌入式linux必不可少的秘密武器资料有应用领域,编辑工具,编辑环境,典型应用等重点知识及案例来通俗易懂的讲解,开发学习的要点,让你一学就会。
2018-05-17 13:22:26
嵌入式名词简单的理解和定义
呢?当然是。只不过呢,我们现在把它看成一个低端的嵌入式系统。通常我们所说的嵌入式系统是指什么呢?指像“ARM+LINUX”这样结构的系统。 低端的单片机系统和高端的ARM+LINUX这种结构有
2013-10-29 09:59:03
嵌入式学习-嵌入式名词
,我以前做单片机,单片机是不是嵌入式系统呢?当然是。只不过呢,我们现在把它看成一个低端的嵌入式系统。通常我们所说的嵌入式系统是指什么呢?指像“ARM+LINUX”这样结构的系统。 低端的单片机系统和高端
2016-07-01 14:51:06
嵌入式概念
我对嵌入式概念名词简单的理解通常我们都有这么一个模糊的概念,我以前做单片机,单片机是不是嵌入式系统呢?嵌入式系统是指什么呢?指像“ARM+LINUX”这样结构的系统。 低端的单片机系统和高端
2021-05-05 16:57:11
嵌入式系统内存优化使用
响应运行。并且经过实践证明,嵌入式系统内存优化使用,能够提升系统空间5%内存,确保系统顺利运行。【关键词】 嵌入式 Linux系统 内存优化 使用方法研究现如今,嵌入式系统软件被广泛应用于各行...
2021-11-04 06:23:46
嵌入式系统内存管理
本帖最后由 VVX 于 2016-9-18 13:15 编辑
1、概述操作系统的内存管理功能用于向操作系统提供一致的地址映射功能和内存页面的申请、释放操作。在嵌入式实时系统中,内存管理根据
2016-09-17 19:40:05
通俗易懂之电子称开发导航篇
通俗易懂之电子称开发立项篇https://bbs.elecfans.com/jishu_919726_1_1.html通俗易懂之电子称开发硬件篇https://bbs.elecfans.com
2016-07-18 21:22:53
通俗易懂之电子称开发硬件篇
本帖最后由 hobbye501 于 2016-7-18 20:52 编辑
通俗易懂之电子称开发硬件篇:即前篇之后,按照我们一贯的开发流程,显示硬件,后是软件,最后连调综合实验。下面我们先重点讲
2016-07-18 20:45:13
通俗易懂之电子称开发软件篇
通俗易懂之电子称开发软件篇 :程序才是一个项目的灵魂,就像心于人一样。。。前两篇链接:通俗易懂之电子称开发立项篇https://bbs.elecfans.com
2016-07-18 21:05:21
通俗易懂之电子称综合演示篇
通俗易懂之电子称综合演示篇:前几篇链接如下:通俗易懂之电子称开发立项篇https://bbs.elecfans.com/jishu_919726_1_1.html通俗易懂之电子称开发硬件篇https
2016-07-18 21:17:55
通俗易懂的PID教程
本帖最后由 Calvin248 于 2013-5-5 15:31 编辑
帮助大家更好的理解PID算法,讲解的很通俗易懂,并且附有程序,帮助大家理解掌握!
2013-05-05 15:30:29
通俗易懂系列整合—电源基础知识讲解
之前发表了六篇用通俗易懂的话讲解电源知识的文章,分别是关于三极管、电阻、电容、电感、二极管和场效应管的讲解。怕想学习的坛友找不到内容,所以这边整合一下,给大家分享文章的链接。用通俗易懂的话让你明白
2016-02-17 09:43:07
ARM嵌入式Linux系统开发从入门到精通
`编辑推荐 Linux是一个成熟而稳定的开放源代码操作系统,将Linux植入嵌入式设备具有众多的优点。 《ARM嵌入式Linux系统开发从入门到精通》通俗易懂,可作为高等院校电子类、电气类、控制
2017-10-31 13:36:35
ARM嵌入式Linux系统开发详解
“Linux典藏大系”自2010年陆续出版以来,因其内容丰富、讲解细腻、通俗易懂和实用性强等特色而深受广大读者的喜爱,2014年2月“Linux典藏大系“全新升级版(第2版)正式出版,第2版图书迎合
2018-09-14 08:57:17
C语言内存分配-通俗理解
最近很多同学希望了解C语言的内存分配,虽然可以在互联网上找到诸多的讲解,但是你会发现要么不通俗易懂,要么不算太全面。而这些对于新手而言,又绝对会把你弄得晕头转向的,所以在此对网上和书本上的诸般讲解
2016-10-08 14:57:24
FPGA通俗易懂入门书籍教程
书籍内容通俗易懂,推荐大家下载学习!内容太大,打包4个压缩包。内容包括:1 AD采集 2 FIR滤波器设计3 信号发生器4 VGA...............等十多个案例分析。
2018-11-15 10:51:04
【高手问答】12—韦东山老师VS嵌入式LINUX应用开发完全手册
—韦东山老师VS嵌入式LINUX应用开发完全手册【高手问答】11——与张飞老师一起成为硬件电路设计的expert【高手问答】第10期—宋雪松老师l手把手教你学51单片机【高手问答】第9期——张工带你
2014-09-15 09:58:29
【下载】《ARM9 嵌入式系统设计与开发教程》
`编辑推荐 本书以ARM920T微处理器为硬件平台,结合Linux操作系统,详细介绍了嵌入式应用系统的设计、调试方法,以及嵌入式驱动程序开发。全书内容丰富,语言通俗易懂,具有很强的可读性。内容简介
2017-12-25 17:33:32
什么是嵌入式操作系统内存管理技术?
收内存。智能手机操作系统作为嵌入式操作系统的一种,较之普通桌面型操作系统,其内存管理有着独特之处:受硬件成本、设备体积等因素制约,内存容量一般相当有限,需要高效地使用;电源管理尤为重要,一次充电要保证数
2019-07-30 07:19:11
从树莓派带你掌握嵌入式linux产品实战开发
从树莓派带你掌握嵌入式linux产品实战开发–什么是嵌入式linux(二)作者:伍俊伟 本文非作者授权,,这个问题你真的答得出来吗?但绝大多数人耳熟能详。嵌入式产品是软件硬件可裁剪,适应应用系统
2021-11-04 06:21:04
使用memtester工具对嵌入式Linux内存压力进行测试
使用memtester工具对嵌入式Linux内存压力测试新的改变Memtest工具工具编译与使用使用命令使用格式测试新的改变内存是电子计算机的最重要组成要素之一。 与内存对应的就是外存,如硬盘、外部
2021-12-15 06:29:25
共享嵌入式开发资料
://www.embedu.org/xuexi/C语言入门视频教程女声完整版,声音甜美、代码潇洒、通俗易懂! 嵌入式入门经典并且不收费呦! 详情链接:http://www.embedu.org/C/嵌入式、安卓软件开发群 177836540,还有好多上传的嵌入式开发资料,需要的下载吧
2015-12-28 14:19:42
如何使用嵌入式的内存分配管理技术
嵌入式---内存分配管理嵌入式的内存一般都非常的小,最进在学习LWIP协议栈的移植,在正点原子的学习资料中找到了许多关于怎么移植协议栈的东西,其中使用到了内存的分配管理技术,能够高效的管理和使用内存
2021-12-17 06:41:46
怎么设计嵌入式系统的内存管理
系列文章:一篇讲透嵌入式操作系统任务调度从需求反推设计方案,假如让你设计嵌入式系统的内存管理,你怎么设计?最简单的,用一个双链表控制,所有已分配和未分配的内存用两个双链表标识:...
2021-12-17 06:54:55
我对嵌入式一些概念名词的理解。
通常我们都有这么一个模糊的概念,我以前做单片机,单片机是不是嵌入式系统呢?嵌入式系统是指什么呢?指像“ARM+LINUX”这样结构的系统。 低端的单片机系统和高端的ARM+LINUX这种结构有
2021-05-31 09:48:39
求大神推荐一本通俗易懂的led电源设计的书籍,包含PCB设计
[size=17.1429px]现在想学一下LED驱动电源,哪本书比较好呢?上周日去书店看了下,相关的书不多,且很多讲的很高深,看不懂。因本人基础不是特别好,想找一本通俗易懂的。我曾经买过一本单片机
2016-04-01 13:02:20
用最基础的继电器通俗易懂地讲解门电路
【转载理由:用最基础的继电器通俗易懂地讲解门电路,对于理解CPU的与非或等门电路、触发器和寄存器有很大帮助】PS:很久之前看的文章了,现在翻出来看看,对于门电路理解很有裨益,也是CPU设计的基础阅读
2021-07-30 06:42:43
谁能通俗易懂的讲下这些协议有哪些特点?
谁能通俗易懂的讲下这些协议有哪些特点?RS485 232422MODBUS 蓝牙 ZIGBEE红外 以太网TCP/IPHART 串口MPIUARTCANBUS profibus ASI PPIUDP、S7、profibus、pofinet ,,,等等 欢迎补充
2018-05-31 11:11:40
可生存嵌入式OS内存管理设计与实现
可生存嵌入式系统是一个较新的研究领域。根据可生存性对嵌入式OS 内存管理的要求,在uCLinux2.6 的基础上,提出并实现了一种基于数据备份技术、内存保护技术以及内存泄漏检
2009-08-19 08:39:06
9
9嵌入式内存数据库的研究与设计
近年来,各种嵌入式内存数据库不断涌现,但由于各种原因,很多产品不具有通用性、高效性、可靠性,以致于很难在市场上推广开来。针对上述情况,提出一种新的嵌入式内存
2010-01-06 15:39:26
17
17ARM嵌入式入门级教程
ARM嵌入式入门级教程
本书由浅入深、通俗易懂地讲解了嵌入式Linux的系统设计与开发。全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令
2010-03-09 14:39:21
141
141嵌入式系统中的内存压缩技术
摘要:介绍内存压缩技术和一个基于硬件的内存压缩系统模型,探讨内存压缩技术在嵌入式系统中的应用;重点介绍内存压缩系统的硬件要求及操作系统对内存压缩机制的支
2006-03-11 12:43:41
1514
1514
嵌入式系统内存管理方案研究
摘要:嵌入式系统的内存管理机制必须满足实时性和可靠性的要求。本文以开源的的操作系统RTEMS为例,介绍嵌入式系统中内存管理的要求、存在的问题以及解决的
2006-05-24 23:57:31
1506
1506
嵌入式Linux
嵌入式Linux随着Linux的迅速发展,嵌入式Linux现在已经有许多的版本,包括强实时的嵌入式Linux(如新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux)和一般的嵌入式Linux 版本(如uClin
2009-06-17 00:36:48
1108
1108嵌入式Web访问时的内存丢失问题
嵌入式Web访问时的内存丢失问题
由于嵌入式技术的发展,嵌入式Web服务器软件越来越大,对硬件的要求也相应地提高,但在工业现场的底层控制中,一般嵌入式系统的
2009-11-20 09:41:18
756
756
基于嵌入式系统设计中查找内存丢失的策略方
在嵌入式系统设计过程中,许多软件工程师受困于动态内存管理。本文介绍一种将堆栈中的内存碎片降至最少的解决方案,其中讲到了内存碎片和内存丢失的区别,以及一种在编程中有利于检测并消除内存丢失的策略。
2017-12-01 15:46:28
1318
1318
嵌入式Linux下基于ARM9的媒体播放的设计
现在大多数嵌入式设备都要求实现音视频的播放功能。ARM9+Linux在嵌入式系统中应用广泛,因此,这里提出一种嵌入式Linux下基于ARM9的多媒体播放系统。 1 播放器系统平台 播放器的嵌入式
2017-12-01 16:33:34
895
895
科普:电脑硬盘和内存之间的不同之处
很多购买电脑的同学仍然还不清楚内存和硬盘到底有什么区别,在电脑里面有什么作用,容易把内存当硬盘或把硬盘当内存,下面小编通俗易懂的来给大家讲讲硬盘跟内存有和区别,在电脑中分别扮演的是什么角色。
2018-06-12 07:08:00
4746
4746
嵌入式Linux内存管理的知识汇总
这个内存管理的知识点还真的需要我们专门的去理解一下,今天大家一起来学习学习嵌入式Linux内存管理的知识。 1.不涉及linux内核的汇编知识,仅C语言层面解析 1.回答:汇编主要处理的是寄存器地址
2018-04-09 05:58:00
1302
1302
嵌入式装置内存泄漏检测系统设计
Linux系统在实时性、稳定性、安伞性以及软硬件可剪裁等方面具有天然的优势而被广泛应用于各种嵌入式装置,如继电保护领域的各种微机保护装置和安全自动装置。然而,Linux系统下内存管理机制自由而灵活
2018-04-26 14:35:59
3
3嵌入式Linux系统和驱动开发
,理解bootloader的概念,功能,和原理,重点掌握U-BOOT的使用和移植。接下来就开始学习嵌入式linux内核机制,分析嵌入式Linux源码组成、内核的模块机制、内核进程管理、内存管理机制
2018-10-11 11:11:16
1137
1137嵌入式系统内存管理机制详解
操作系统的内存管理功能用于向操作系统提供一致的地址映射功能和内存页面的申请、释放操作。在嵌入式实时系统中,内存管理根据不同的系统,有不同的策略,对于有些系统支持的虚拟内存管理机制,对于另外一些系统,可能只有flat式的简单内存管理机制。
2018-11-18 09:41:28
4934
4934通俗易懂的讲解FFT的让你快速了解FFT
相信网上现在有很多关于FFT的教程,我曾经也参阅了很多网上的教程,感觉都不怎么通俗易懂。在基本上的研究FFT,并且通过编程的形式实现之后。我决定写一篇通俗易懂的关于FFT的讲解。因此我在接下来的叙述中尽量非常通俗细致的讲解。
2019-03-24 11:52:25
36903
36903
嵌入式应用如何加入新兴的内存技术
新兴的内存技术可望在嵌入式应用中找到大量市场,从而取代NOR闪存(flash),用于在微控制器(MCU)与ASIC中储存程序代码。
2019-09-18 09:13:03
848
848嵌入式AI解决方案中内存驱动的设计介绍
EdgeBoard是百度打造的基于FPGA的嵌入式AI解决方案及基于此方案实现的系列硬件。作为端侧的解决方案,没有在PL侧为FPGA设计专用的内存,而是采用了PS和PL侧共用DDR内存的结构。
2020-01-27 09:28:00
1728
1728
电脑中硬盘和内存的区别是什么
很多购买电脑的同学仍然还不清楚内存和硬盘到底有什么区别,在电脑里面有什么作用,容易把内存当硬盘或把硬盘当内存,下面小编通俗易懂的来给大家讲讲硬盘跟内存有和区别,在电脑中分别扮演的是什么角色。
2019-12-22 11:13:53
11782
11782嵌入式系统裸机编程的内存管理简介
在嵌入式裸机编程中,作为一名初级的CODER。经常要与CPU、内存等打交道。CPU作为系统的动力源,其重要程度不言而喻。 但是,在裸机编程中,对内存的管理也不容忽视。如果稍微不注意,轻则
2020-12-28 09:44:27
3814
3814
嵌入式系统的内存指针操作
在嵌入式系统中,对内存地址的操作是一个重要的方面,从广义上讲,嵌入式系统的地址空间可以分成以下三种类型: 系统的内存 处理器内部的寄存器映射 处理器外部部件的内存映射 无论哪种内存,一般都映射
2021-08-27 11:33:22
6860
6860嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究
优化进而确保响应运行。并且经过实践证明,嵌入式系统内存优化使用,能够提升系统空间5%内存,确保系统顺利运行。【关键词】 嵌入式 Linux系统 内存优化 使用方法研究现如今,嵌入式系统软件被广泛应用于各行...
2021-11-01 16:31:48
10
10嵌入式linux开发工具总结
1.嵌入式linux开发工具-编译器gcc(静态库 动态库的制作)可以制作库 库的使用2.嵌入式linux开发工具-调试器gdb(调试方法)目标:可以调试简单的错误以及内存错误3.嵌入式linux
2021-11-01 16:32:00
12
12通俗易懂,嵌入式Linux驱动基础
前言上一篇分享的:《从单片机工程师的角度看嵌入式Linux》中有简单提到Linux的三大类驱动:我们学习编程的时候都会从hello程序开始。同样的,学习Linux驱动我们也从最简单的he...
2021-11-01 16:57:03
10
10【嵌入式Linux(基础篇)】从标准Linux到嵌入式Linux + 嵌入式Linux知识架构
主要介绍了GNU/Linux的诞生,标准Linux是如何应用在嵌入式系统中的,最后讲述了嵌入式Linux知识架构。
2021-11-02 09:51:02
34
34嵌入式linux没有swap分区,swap现象如何实现
swap分区作用当可用内存大小,低于内核中设置的内存大小值时,linux启动将内存中不常用的内存,暂存到硬盘上,释放出更多可用内存。嵌入式linux没有swap分区嵌入式linux没有swap分区
2021-11-02 11:21:13
12
12学嵌入式开发就是去学如何去玩转内存
我们去做嵌入式开发就是针对内存,一个非常优秀的工程师尤其是嵌入式工程师,他去看别人代码他一眼就能看出来他内存使用情况怎么样的,我们嵌入式开发最主要最主要最主要玩的就是内存。学嵌入式开发就是去学
2021-11-02 19:21:03
4
4浅谈嵌入式系统裸机编程的内存管理
malloc和free在PC编程中是很好用的一种内存分配手段。但是,其在嵌入式中,就未必好用了。由于嵌入式裸机编程中,无MMU,即内存管理单元。
2022-09-15 10:38:07
1990
1990FFT原理通俗易懂的解释
FFT原理通俗易懂的解释 傅里叶变换(Fourier Transform,简称FFT)是一个广泛应用的数学工具,它可以将一个连续或离散信号分解成一系列单一的正弦函数,这些正弦函数名称为频率成分或
2023-09-07 16:35:03
4880
4880嵌入式C语言高手炼成之内存操作篇
在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。
2023-12-11 17:20:25
1104
1104如何通俗易懂地解释卷积?
在本问题 如何通俗易懂地解释卷积?中排名第一的马同学在中举了一个很好的例子(下面的一些图摘自马同学的文章,在此表示感谢),用丢骰子说明了卷积的应用。
2023-12-26 17:36:24
2225
2225
电子发烧友App






评论