cemu
载入中...
搜索中...
未找到
dram.c 文件参考

DRAM功能实现 更多...

#include "dram.h"
#include "log.h"

函数

static u64 dram_load_8 (DRAM *dram, u64 addr)
 
static u64 dram_load_16 (DRAM *dram, u64 addr)
 
static u64 dram_load_32 (DRAM *dram, u64 addr)
 
static u64 dram_load_64 (DRAM *dram, u64 addr)
 
static void dram_store_8 (DRAM *dram, u64 addr, u64 value)
 
static void dram_store_16 (DRAM *dram, u64 addr, u64 value)
 
static void dram_store_32 (DRAM *dram, u64 addr, u64 value)
 
static void dram_store_64 (DRAM *dram, u64 addr, u64 value)
 
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功能实现

作者
lancer (lance.nosp@m.rsta.nosp@m.dium@.nosp@m.163..nosp@m.com)
版本
0.1
日期
2024-01-08

函数说明

◆ dram_alloc_data()

void dram_alloc_data ( DRAM * dram,
size_t size,
void * data )

DRAM追加数据

参数
dram动态随机存取存储器
size申请大小
data数据

◆ dram_free()

void dram_free ( DRAM * dram)

释放DRAM

参数
dram动态随机存取存储器

◆ dram_init()

void dram_init ( DRAM * dram)

初始化DRAM结构体

参数
dram动态随机存取存储器

◆ dram_load_16()

static u64 dram_load_16 ( DRAM * dram,
u64 addr )
inlinestatic
注解
小端法是将最小端(权值最低位)最先存储。 当读取数据时,我们先读取最低的地址中存放的值通过返回值输送给总线, 随后左移 8 位(1 字节)并与 0xff(8 个 1)进行与操作来得到最低字节的数据, 并清空高字节以便用于或操作。

◆ dram_load_data()

u64 dram_load_data ( DRAM * dram,
size_t offset,
size_t size )

DRAM在指定地址加载数据

参数
dram动态随机存取存储器
offset偏移量
size数据大小
返回
u64 数据地址

◆ dram_release_data()

void dram_release_data ( DRAM * dram,
size_t size )

DRAM释放尾部数据

参数
dram动态随机存取存储器
size数据大小

◆ dram_write_data()

void dram_write_data ( DRAM * dram,
size_t offset,
size_t size,
u64 value )

DRAM向指定地址写入数据

参数
dram动态随机存取存储器
offset偏移量
size数据大小
value数据值