Alcor6L/eLua/cpu
外观
< Alcor6L
这个模块处理对 CPU(以及相关模块)功能的底层访问,例如读取和写入内存,或启用和禁用中断。它还提供了对平台特定 CPU 相关常量的访问。
将一个 32 位字写入内存。
cpu.w32( address, data )
- address - 内存地址。
- data - 要写入的 32 位数据。
返回:无。
从内存中读取一个 32 位字。
data = cpu.r32( address )
- address - 内存地址。
返回
- data - 从内存中读取的 32 位字。
将一个 16 位字写入内存。
cpu.w16( address, data )
- address - 内存地址。
- data - 要写入的 16 位数据。
返回:无。
从内存中读取一个 16 位字。
data = cpu.r16( address )
- address - 内存地址。
返回
- data - 从内存中读取的 16 位字。
将一个字节写入内存。
cpu.w8( address, data )
- address - 内存地址。
- data - 要写入的字节。
返回:无。
从内存中读取一个字节。
data = cpu.r8( address )
- address - 内存地址
返回
- data - 从内存中读取的字节。
如果在没有参数的情况下调用,则禁用全局 CPU 中断标志,如果在有参数的情况下调用,则禁用特定中断的资源 ID 列表。
cpu.cli( [id], [resnum1], [resnum2], ... [resnumn])
- id - 中断 ID。如果指定,则必须至少指定一个资源 ID。
- resnum1 - 第一个资源 ID,如果指定了 id 则需要。
- resnum2(可选)- 第二个资源 ID。
- resnumn(可选)- 第 #n# 个资源 ID。
返回:无。
如果在没有参数的情况下调用,则启用全局 CPU 中断标志,如果在有参数的情况下调用,则启用特定中断的资源 ID 列表。
cpu.sei( [id], [resnum1], [resnum2], ... [resnumn])
- id - 中断 ID。如果指定,则必须至少指定一个资源 ID。
- resnum1 - 第一个资源 ID,如果指定了 id 则需要。
- resnum2(可选)- 第二个资源 ID。
- resnumn(可选)- 第 #n# 个资源 ID。
返回:无。
获取 CPU 核心频率。
clock = cpu.clock()
参数:无。
返回
- clock - CPU 时钟(以赫兹为单位)。
将中断 *id* 的 Lua 中断处理程序设置为函数 *handler*。*handler* 可以是 #nil# 以禁用中断处理程序。仅在启用中断支持时可用,有关详细信息,请查看此处。
prev_handler = cpu.set_int_handler( id, handler )
- id - 中断 ID。
- handler - Lua 中断处理程序函数,或 *nil* 以禁用 Lua 中断处理程序功能。
返回
- prev_handler - 中断 *id* 的先前中断处理程序,或 *nil* 如果未为中断 *id* 设置中断处理程序。
返回中断 *id* 的 Lua 中断处理程序
handler = cpu.get_int_handler( id )
- id - 中断 ID。
返回:handler - 中断 *id* 的中断处理程序,或 *nil* 如果未为中断 *id* 设置中断处理程序。
获取中断 ID/资源 ID 组合的中断挂起标志,并可选地清除挂起标志。仅在启用中断支持时可用,有关详细信息,请查看此处。
cpu.get_int_flag( id, resnum, [clear] )
- id - 中断 ID。
- resnum - 资源 ID。
- clear(可选)- true 清除中断挂起标志,或 false 保持中断挂起标志不变。如果未指定,则默认为 true。
返回:无。