嵌入式技术论坛
直播中

ss

7年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注

RT-Smart的资料合集

1、RT-Smart的启动过程
在熟悉 RT-Smart 架构的过程中,研究其启动过程的是必不可少的,那么在系统正常运行之前,需要做哪些准备工作呢。本文将以 32 位 RT-Smart 的源代码为基础,讲解 RT-Smart 的启动过程。
内核地址空间
RT-Smart 与 RT-Thread 的一大区别是用户态和内核态的地址空间被隔离开来。内核运行在内核地址空间,用户进程运行在用户地址空间。由下图可知,RT-Smart 32 位内核运行在地址空间的高地址,而用户程序代码运行在低地址。
RT-Smart的启动过程.pdf (205.85 KB)
(下载次数: 2, 2022-3-22 15:03 上传)

2、RT-Smart物理页内存管理详解
伙伴系统在现代操作系统中被广泛地用于分配连续的物理内存页。其基本思想是将物理内存划分成连续的块,以块作为基本单位进行分配。不同块的大小可以不同,但每个块都由一个或多个连续的物理页组成,物理页的数量必须是 2 的 n 次幂( 0 <= n < 预设的最大值),其中预设的最大值将决定能够分配的连续物理内存区域的最大大小,一般由开发者根据实际需要指定。
当一个请求需要分配 m 个物理页时,伙伴系统将寻找一个大小合适的块,该块包含 $2^n$ 个物理页,且满足 $2^{n-1} < m < 2^n$。在处理分配请求的过程中,大的块可以分裂成两半,即两个小一号的块,这两个块互为伙伴。分裂得到块可以继续分裂,直到得到一个大小合适的块去服务相应的分配请求。在一个块被释放后,分配器会找到其伙伴块,若伙伴块页处于空闲的状态,则将这两个伙伴块进行合并没形成一个大一号的空闲块,然后继续尝试向上合并。由分裂操作和合并操作都是级联的,因此能够很好地缓解外部碎片的问题。
下图表达了伙伴系统的基本思想,基于伙伴块进行分裂与合并。

RT-Smart物理页内存管理详解.pdf (178.6 KB)
(下载次数: 3, 2022-3-22 15:04 上传)


3、使用GDB对RT-Smart进行代码调试的方法
在开发的过程中,有时没有现成的图形化开发环境,想要进行调试时,需要使用 GDB 直接进行代码调试。本文档记录了以 RT-Thread qemu-vexpress-a9 BSP 为例,使用 GDB 对 RT-Smart 进行代码调试的方法。
使用GDB对RT-Smart进行代码调试的方法.pdf (574.75 KB)
(下载次数: 1, 2022-3-22 15:05 上传)


更多回帖

发帖
×
20
完善资料,
赚取积分