打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
运行控制API接口

1.1 运行控制 API 接口
SIM_init()
声明:void SIM_init()
功能说明:调用 SIM_init 初始化 Simulator,SIM_init 负责做以下初始化工作:
初始化核心库中的所有数据结构
根据设置的动态库加载路径,加载各种模块
参数:无
返回值:无
SIM_start()
功能说明:根据配置文件,设置特定的数据结构,为运行做好准备。
参数:
返回值:
SIM_run()
功能说明:启动目标机器
参数:无
返回值:
SIM_stop(generic_core_t* core)
功能说明:停止目标机器
参数:指定的处理器核心
返回值:无
SIM_continue(generic_core_t* core)
功能说明:
参数:
返回值:

1.2 命令行接口 API
add_command
声明:exception_t add_command(char* command_str, rl_icpfunc_t* func, const char* help_str);
功能说明:添加一个新的命令到命令行接口中。
参数:command_str 为命令的字符串,func 为执行命令时要调用的函数,help_str 是命令的帮助文档。
返回值:成功返回 No_exp,错误则返回相应异常的类型。

1.3 回调函数接口 API
register_callback
声明: exception_t register_callback(callback_func_t func, callback_kind_t kind);
功能说明:注册一个新的回调函数到系统中。
参数:func 为要执行的回调函数,kind 是回调函数的类型。
返回值:成功返回 No_exp,错误则返回相应异常的类型。

1.4 配置文件接口 API
get_current_config
声明:skyeye_config_t* get_current_config();
功能:获得当前的配置文件的数据结构
参数:无
返回值:当前配置文件的数据结构
skyeye_read_config
声明:exception_t skyeye_read_config (char* conf_filename);
功能:加载并解析相应的 skyeye 配置文件,保存在内存中。
参数:配置文件的文件名。
返回值:成功返回 No_exp,错误则返回相应的异常类型。
register_option
声明:exception_t register_option(char* option_name, do_option_t do_option_func, char* helper);
功能:注册新的配置文件选项到系统中。
参数: option_name 是配置选项的名称,do_option_func 是用来解析配置选项的函数,helper 是该配置选
项的帮助文本。
返回值:成功则返回 No_exp,错误则返回相应的异常类型

1.5 uart 相关的 API
skyeye_uart_write
声明:
int skyeye_uart_write(int devIndex, void *buf, size_t count, int *wroteBytes[MAX_UART_DEVICE_NUM]);
功能 说 明:
提供给虚拟串口硬件调用,可以把数据写入底层的物理接口模块中。
参数:
返回值:
skyeye_uart_read
声明:
int skyeye_uart_read(int devIndex, void *buf, size_t count, struct timeval *timeout, int *retDevIndex);
功能 说 明 :提供给虚拟串口硬件调用,可以把数据写入底层的物理链接层模块中。

1.6 模块相关的 API
skyeye_load_all_module
声明: void skyeye_load_all_module(const char* lib_dir, char* lib_suffix);
功能描述:
参数:
返回值:
skyeye_load_module
声明:exception_t SKY_load_module(const char* module_filename);
功能描述:
参数:
返回值:

1.7 内存访问相关的 API
bus_read
声明: int bus_read(short size, int addr, uint32_t * value);
功能描述:
参数
返回值:
bus_write
声明: int bus_write(short size, int addr, uint32_t value);
功能描述:从总线上写一个数据到某一个地址单元中。
参数:size 用来指定写数据的长度,addr 为写入的地址的值,value 为写入的数据。
返回值:
addr_mapping
声明:exception_t addr_mapping(mem_bank_t* bank);
功能描述:addr_mapping 接口用来申请一段地址空间,并来控制这段地址空间的访问。
参数 :bank,是客户需要分配和填充的一个数据接口,定义如下:

typedef struct mem_bank{unsigned int addr, len;char (*bank_write)(short size, int offset, unsigned int value);char (*bank_read)(shortsize, int offset, unsigned int *result);char filename[MAX_STR];/* the name of object mapping to the bank */char* objname;unsigned type;} mem_bank_t;

Mem_bank_t 的域 addr 是这段地址空间的起始地址,len 为这段地址空间的长度。
Bank_write 和 bank_read 分别为这段地址的读写函数。当目标程序对这段地址空间进行访问
的时候,SkyEye 会调用这段地址空间对应的 bank_write 和 bank_read 进行访问。
Filename 为加载的文件,在初始化这段地址空间的时候,SkyEye 可以把一个数据文件加载
到这段地址空间去。
objname 是一个字符串,用来标志一个对象的名称。
type 是这段地址空间的类型,有只读内存,可读写内存和 IO 这三种类型。
返回值:可能发生的异常类型。

1.8 机器管理的 API
register_mach
声明:void register_mach(char* mach_name, mach_init_t mach_init);
功能描述:注册一个模拟的机器或者单板到系统中。
参数:
返回值:无
get_mach
声明:machine_config_t * get_mach(const char* mach_name);
功能描述:获得一个机器或者单板的数据结构
参数:机器的名称
返回值:模拟的机器的数据结构
send_signal
声明:exception_t send_signal(interrupt_signal_t* signal);
功能描述:向某一个处理器发出中断信号,一般外设会调用此接口。
参数:信号的类型和电平。interrupt_signal_t 的定义如下:

typedef union interrupt_signal{arm_signal_t arm_signal;mips_signal_t mips_signal;powerpc_signal_t powerpc_signal;}interrupt_signal_t;

它是一个联合,为不同的体系结构定义了不同的信号的结构体。
返回值:可能发生的异常类型。

1.9 事件调度器的相关的 API
create_thread_scheduler
声明:int create_thread_scheduler(unsigned int ms, sched_mode_t mode, sched_func_t func, void *arg,
int *id);
功能说明:创建一个线程控制调度的事件,并放入调度队列中。输入该事件发生的相对事件,是否是周期发
生模式,响应函数,函数参数,一个整形指针得到调度器分配的 ID。
参数:
ms 为事件发生的间隔时间;mode 表示是否是周期性事件(Oneshot_sched/Periodic_sched);
func 是事件处理函数的指针;arg 是处理函数的参数指针;id 表示获取标识的指针。
返回值:成功会返回 No_exp,否则会返回错误信息。
mod_thread_scheduler
声明:int mod_thread_scheduler(int id, unsigned int ms, sched_mode_t mode);
功能说明:修改调度队列中指定标识的事件。
参数:id 为事件的标识;ms 是事件的发生的间隔时间;mode 表示是否周期性事件
(Oneshot_sched/Periodic_sched)。
返回值:成功会返回 No_exp,否则会返回错误信息。
del_thread_scheduler
声明:int del_thread_scheduler(int id);
功能说明:删除调度队列中指定标识的事件。
参数:id 是事件的标识。
返回值:成功会返回 No_exp,否则返回错误信息。
fini_thread_scheduler
声明:int fini_thread_scheduler(void);
功能说明:销毁线程调度队列。
参数:无
返回值:成功会返回 No_exp ,否则返回错误信息。
list_thread_scheduler
声明:void list_thread_scheduler(void);
功能说明:打印线程调度队列中的所有事件及其属性。
参数:无
返回值:无
create_timer_scheduler
声明:int create_timer_scheduler(unsigned int ms, sched_mode_t mode, sched_func_t func, void *arg,
int *id);
功能说明:创建一个定时器调度事件,并放入调度队列中。输入该事件发生的间隔时间、是否是周期发生模
式、响应函数、函数参数、一个整形的指针得到调度器分配的 ID。
参数:ms 为事件发生的间隔时间;mode 是否是周期性事件(Oneshot_sched/Periodic_sched);func 是事
件处理函数的指针;arg 是处理函数的参数指针;id 表示获取标识的指针。
返回值:成功会返回 No_exp,否则返回错误信息。
mod_timer_scheduler
声明: int mod_timer_scheduler(int id, unsigned int ms, sched_mode_t mode);
功能说明: 修改调度队列中指定标识的事件。
参数:Id 为事件的标识;ms 是事件的发生的间隔时间;mode 表示是否周期性事件
(Oneshot_sched/Periodic_sched)。
返回值:成功会返回 No_exp , 否则返回错误信息。
del_timer_scheduler
声明:int del_timer_scheduler(int id);
功能说明: 删除指定标识的定时器事件。
参数:id,事件标识。
返回值:成功会返回 No_exp,否则返回错误信息。
fini_timer_scheduler
声明:int fini_timer_scheduler(void);
功能说明:销毁定时器调度队列。
参数:无。
返回值:成功会返回 No_exp,否则返回错误信息。
list_timer_scheduler
声明:void list_timer_scheduler(void);
功能说明:打印定时器调度队列中的所有事件及其属性
。参数:无
返回值:无

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
函数指针和指针函数
C语言中的复杂声明
c++之指针作为函数参数传递的问题
迅雷7应用开发在线文档
C语言 const 修饰函数参数 - C语言零基础入门教程
不定参数如何从一个函数传至另一个函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服