nmc-utils
0.1.1
|
Functions | |
int | easynmc_startupcode_is_compatible (uint32_t codever) |
enum easynmc_core_state | easynmc_core_state (struct easynmc_handle *h) |
const char * | easynmc_state_name (enum easynmc_core_state state) |
int | easynmc_get_core_name (struct easynmc_handle *h, char *str) |
int | easynmc_get_core_type (struct easynmc_handle *h, char *str) |
int | easynmc_send_irq (struct easynmc_handle *h, enum nmc_irq irq) |
int | easynmc_reset_stats (struct easynmc_handle *h) |
void | easynmc_reset_core (struct easynmc_handle *h) |
char * | easynmc_get_default_ipl (char *name, int debug) |
struct easynmc_handle * | easynmc_open_noboot (int coreid, int exclusive) |
int | easynmc_boot_core (struct easynmc_handle *h, int debug) |
Bring up an NMC core, optionally with a debug IPL. |
Variables | |
char * | iplpaths [] |
This section contains lower level API functions.
int easynmc_boot_core | ( | struct easynmc_handle * | h, |
int | debug | ||
) |
Bring up an NMC core, optionally with a debug IPL.
This function is called internally by easynmc_open(), so normally you do not need to ever call it.
Debug version of IPL comes with some board-specific debugging functionality. On MB77.07 this involves blinking a LED while nmc is running IPL.
h | |
debug | set to '1' if you need a 'debug' IPL. |
Definition at line 373 of file easynmc-core.c.
References dbg, EASYNMC_CORE_COLD, EASYNMC_CORE_IDLE, easynmc_evt_name(), easynmc_get_core_name(), easynmc_get_default_ipl(), easynmc_load_abs(), easynmc_reset_core(), easynmc_send_irq(), easynmc_token_new(), easynmc_token_wait(), err, easynmc_handle::imem32, NMC_REG_ISR_ON_START, and easynmc_token::tok.
Referenced by do_boot_core(), do_load_abs(), and easynmc_open().
enum easynmc_core_state easynmc_core_state | ( | struct easynmc_handle * | h | ) |
Query current core state.
h |
Definition at line 98 of file easynmc-core.c.
References EASYNMC_CORE_COLD, EASYNMC_CORE_INVALID, easynmc_startupcode_is_compatible(), easynmc_handle::imem32, easynmc_handle::iofd, NMC_REG_CODEVERSION, and NMC_REG_CORE_STATUS.
int easynmc_get_core_name | ( | struct easynmc_handle * | h, |
char * | str | ||
) |
Returns the nmc core name
h | |
str |
Definition at line 155 of file easynmc-core.c.
References easynmc_handle::iofd.
Referenced by easynmc_boot_core().
int easynmc_get_core_type | ( | struct easynmc_handle * | h, |
char * | str | ||
) |
Returns the easynmc core type
h | |
str |
Definition at line 167 of file easynmc-core.c.
References easynmc_handle::iofd.
char* easynmc_get_default_ipl | ( | char * | name, |
int | debug | ||
) |
Returns the path to the default ipl file. if debug is '1' a path to an IPL with board-specific debugging functionality is returned.
name | |
debug |
Definition at line 235 of file easynmc-core.c.
References ARRAY_SIZE, and dbg.
Referenced by easynmc_boot_core().
|
read |
Open a Neuromatrix core skipping the usual initialization. Opening a NeuroMatrix core with easynmc_open_noboot() will try to acquire an exclusive lock if 'exclusive' is 1. Killing the userspace application that has the lock automatically releases the core.
easynmc_open_noboot() doesn't guarantee that the core returned will be in 'idle' state.
coreid | Number of the core or EASYNMC_CORE_ANY to get first unused one |
exclusive. | Attempt to get exlusive access to the NMC core |
Definition at line 284 of file easynmc-core.c.
References easynmc_handle::appid, dbg, EASYNMC_CORE_ANY, easynmc_for_each_core(), easynmc_init_default_filters(), err, easynmc_handle::id, easynmc_handle::imem, easynmc_handle::imem32, easynmc_handle::imem_size, easynmc_handle::iofd, easynmc_handle::memfd, easynmc_handle::persistent, and easynmc_handle::sfilters.
Referenced by easynmc_for_each_core(), and easynmc_open().
void easynmc_reset_core | ( | struct easynmc_handle * | h | ) |
Reset a Neuromatrix Core
h |
Definition at line 204 of file easynmc-core.c.
References easynmc_handle::iofd.
Referenced by easynmc_boot_core().
int easynmc_reset_stats | ( | struct easynmc_handle * | h | ) |
Reset internal IRQ statistics.
WARNING: Never call this when there are any active waits on tokens or when there's somebody polling nmc. Bad things WILL happen.
h |
Definition at line 193 of file easynmc-core.c.
References easynmc_handle::iofd.
Referenced by do_reset_stats().
int easynmc_send_irq | ( | struct easynmc_handle * | h, |
enum nmc_irq | irq | ||
) |
Send an irq to the nmc core.
h | |
irq |
Definition at line 179 of file easynmc-core.c.
References easynmc_handle::iofd.
Referenced by do_irq(), easynmc_boot_core(), and easynmc_stop_app().
int easynmc_startupcode_is_compatible | ( | uint32_t | codever | ) |
Checks if the startup code version is compatible with this library version
codever |
Definition at line 81 of file easynmc-core.c.
References ARRAY_SIZE.
Referenced by do_dump_core_info(), and easynmc_core_state().
const char* easynmc_state_name | ( | enum easynmc_core_state | state | ) |
Transforms enum easynmc_core_state into a human-readable state name
state |
Definition at line 141 of file easynmc-core.c.
References EASYNMC_CORE_INVALID.
Referenced by do_dump_core_info(), easynmc_load_abs(), easynmc_start_app(), and main().
char* iplpaths[] |
Definition at line 220 of file easynmc-core.c.