|
cemu
|
DRAM头文件 更多...
#include "typedef.h"类 | |
| struct | DRAM_t |
| DRAM 动态随机存取存储器结构体 更多... | |
宏定义 | |
| #define | DRAM_SIZE 1024*1024*1 /** 1MB 大小 DRAM */ |
| #define | DRAM_BASE 0x80000000 /** DRAM 基址 */ |
类型定义 | |
| typedef struct DRAM_t | DRAM |
| DRAM 动态随机存取存储器结构体 | |
函数 | |
| void | dram_init (DRAM *dram) |
| 初始化DRAM结构体 | |
| void | dram_alloc_data (DRAM *dram, size_t size, void *data) |
| DRAM追加数据 | |
| void | dram_write_data (DRAM *dram, size_t offset, size_t size, u64 value) |
| DRAM向指定地址写入数据 | |
| u64 | dram_load_data (DRAM *dram, size_t offset, size_t size) |
| DRAM在指定地址加载数据 | |
| void | dram_release_data (DRAM *dram, size_t size) |
| DRAM释放尾部数据 | |
| void | dram_free (DRAM *dram) |
| 释放DRAM | |
DRAM头文件
DRAM_SIZE定义内存的大小, 用变量DRAM_BASE定义内存的起始地址。0x0的起始地址, 因为 RISC-V 架构有一个内存映射 I/O。 在内存映射 I/O 中,内存与 I/O 设备共享相同的地址空间。 在QEMU中,低地址用于 I/O 端口 并且 DRAM 内存起始地址为0x800000000。 因此我们将DRAM_BASE的值定为0x800000000。dram_load()用于读取内存, 以及dram_store()用于写入内存。 | void dram_alloc_data | ( | DRAM * | dram, |
| size_t | size, | ||
| void * | data ) |
DRAM追加数据
| dram | 动态随机存取存储器 |
| size | 申请大小 |
| data | 数据 |
| void dram_free | ( | DRAM * | dram | ) |
释放DRAM
| dram | 动态随机存取存储器 |
| void dram_init | ( | DRAM * | dram | ) |
初始化DRAM结构体
| dram | 动态随机存取存储器 |
| u64 dram_load_data | ( | DRAM * | dram, |
| size_t | offset, | ||
| size_t | size ) |
DRAM在指定地址加载数据
| dram | 动态随机存取存储器 |
| offset | 偏移量 |
| size | 数据大小 |
| void dram_release_data | ( | DRAM * | dram, |
| size_t | size ) |
DRAM释放尾部数据
| dram | 动态随机存取存储器 |
| size | 数据大小 |
| void dram_write_data | ( | DRAM * | dram, |
| size_t | offset, | ||
| size_t | size, | ||
| u64 | value ) |
DRAM向指定地址写入数据
| dram | 动态随机存取存储器 |
| offset | 偏移量 |
| size | 数据大小 |
| value | 数据值 |