本文整理汇总了C++中chSysHalt函数的典型用法代码示例。如果您正苦于以下问题:C++ chSysHalt函数的具体用法?C++ chSysHalt怎么用?C++ chSysHalt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了chSysHalt函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: motor_driver_update_trajectory
void motor_driver_update_trajectory(motor_driver_t *d, trajectory_chunk_t *traj)
{
chBSemWait(&d->lock);
if (d->control_mode != MOTOR_CONTROL_MODE_TRAJECTORY) {
d->setpt.trajectory = chPoolAlloc(d->traj_buffer_pool);
float *traj_mem = chPoolAlloc(d->traj_buffer_points_pool);
if (d->setpt.trajectory == NULL || traj_mem == NULL) {
chSysHalt("motor driver out of memory (trajectory buffer allocation)");
}
trajectory_init(d->setpt.trajectory, traj_mem, d->traj_buffer_nb_points, 4, traj->sampling_time_us);
d->control_mode = MOTOR_CONTROL_MODE_TRAJECTORY;
}
int ret = trajectory_apply_chunk(d->setpt.trajectory, traj);
switch (ret) {
case TRAJECTORY_ERROR_TIMESTEP_MISMATCH:
chSysHalt("TRAJECTORY_ERROR_TIMESTEP_MISMATCH");
break;
case TRAJECTORY_ERROR_CHUNK_TOO_OLD:
chSysHalt("TRAJECTORY_ERROR_CHUNK_TOO_OLD");
break;
case TRAJECTORY_ERROR_DIMENSION_MISMATCH:
chSysHalt("TRAJECTORY_ERROR_DIMENSION_MISMATCH");
break;
case TRAJECTORY_ERROR_CHUNK_OUT_OF_ORER:
log_message("TRAJECTORY_ERROR_CHUNK_OUT_OF_ORER");
// chSysHalt("TRAJECTORY_ERROR_CHUNK_OUT_OF_ORER");
break;
}
d->update_period = MOTOR_CONTROL_UPDATE_PERIOD_TRAJECTORY;
chBSemSignal(&d->lock);
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:31,代码来源:motor_driver.c
示例2: _dbg_check_unlock_from_isr
/**
* @brief Guard code for @p chSysUnlockFromIsr().
*
* @notapi
*/
void _dbg_check_unlock_from_isr(void) {
if ((ch.dbg.isr_cnt <= (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
chSysHalt("SV#7", __func__);
}
_dbg_leave_lock();
}
开发者ID:Kreyl,项目名称:UsbHost,代码行数:12,代码来源:chdebug.c
示例3: _unhandled_exception
/*lint -save -e9075 [8.4] All symbols are invoked from asm context.*/
void _unhandled_exception(void) {
/*lint -restore*/
chSysHalt("unhandled exception");
while (true) {
}
}
开发者ID:xemtec,项目名称:ChibiOS,代码行数:8,代码来源:vectors.c
示例4: error_cb1
/*
* DAC error callback.
*/
static void error_cb1(DACDriver *dacp, dacerror_t err) {
(void)dacp;
(void)err;
chSysHalt("DAC failure");
}
开发者ID:AlexShiLucky,项目名称:ChibiOS,代码行数:10,代码来源:main.c
示例5: _dbg_check_unlock
/**
* @brief Guard code for @p chSysUnlock().
*
* @notapi
*/
void _dbg_check_unlock(void) {
if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt <= (cnt_t)0)) {
chSysHalt("SV#5");
}
_dbg_leave_lock();
}
开发者ID:Kreyl,项目名称:TrafficLight,代码行数:12,代码来源:chdebug.c
示例6: _dbg_check_lock
/**
* @brief Guard code for @p chSysLock().
*
* @notapi
*/
void _dbg_check_lock(void) {
if ((ch.dbg.isr_cnt != (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
chSysHalt("SV#4");
}
_dbg_enter_lock();
}
开发者ID:Kreyl,项目名称:TrafficLight,代码行数:12,代码来源:chdebug.c
示例7: _kill
int _kill(int a, int b) {
(void)a;
(void)b;
chSysHalt();
return -1;
}
开发者ID:r2p,项目名称:Proximity_module,代码行数:7,代码来源:stubs.c
示例8: dac_error_callback
/* Called upon DAC error */
static void dac_error_callback(DACDriver* dacp, dacerror_t err)
{
(void)dacp;
(void)err;
chSysHalt("Panic: DAC Error.");
while(1);
}
开发者ID:cillian64,项目名称:blueboxes,代码行数:8,代码来源:analogue.c
示例9: _dbg_check_unlock_from_isr
/**
* @brief Guard code for @p chSysUnlockFromIsr().
*
* @notapi
*/
void _dbg_check_unlock_from_isr(void) {
if ((nil.isr_cnt <= (cnt_t)0) || (nil.lock_cnt <= (cnt_t)0)) {
chSysHalt("SV#7");
}
_dbg_leave_lock();
}
开发者ID:hsteinhaus,项目名称:ChibiOS,代码行数:12,代码来源:ch.c
示例10: motor_driver_get_position_setpt
float motor_driver_get_position_setpt(motor_driver_t *d)
{
if (d->control_mode != MOTOR_CONTROL_MODE_POSITION) {
chSysHalt("motor driver get position wrong setpt mode");
}
return d->setpt.position;
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:7,代码来源:motor_driver.c
示例11: _dbg_check_lock_from_isr
/**
* @brief Guard code for @p chSysLockFromIsr().
*
* @notapi
*/
void _dbg_check_lock_from_isr(void) {
if ((nil.isr_cnt <= (cnt_t)0) || (nil.lock_cnt != (cnt_t)0)) {
chSysHalt("SV#6");
}
_dbg_enter_lock();
}
开发者ID:hsteinhaus,项目名称:ChibiOS,代码行数:12,代码来源:ch.c
示例12: hal_lld_init
/**
* @brief Low level HAL driver initialization.
*
* @notapi
*/
void hal_lld_init(void) {
extern void _vectors(void);
uint32_t reg;
/* The system is switched to the RUN0 mode, the default for normal
operations.*/
if (halSPCSetRunMode(SPC5_RUNMODE_RUN0) == CH_FAILED)
chSysHalt();
/* INTC initialization, software vector mode, 4 bytes vectors, starting
at priority 0.*/
INTC.MCR.R = 0;
INTC.CPR.R = 0;
INTC.IACKR.R = (uint32_t)_vectors;
/* PIT channel 0 initialization for Kernel ticks, the PIT is configured
to run in DRUN,RUN0...RUN3 and HALT0 modes, the clock is gated in other
modes.*/
INTC.PSR[59].R = SPC5_PIT0_IRQ_PRIORITY;
halSPCSetPeripheralClockMode(92,
SPC5_ME_PCTL_RUN(2) | SPC5_ME_PCTL_LP(2));
reg = halSPCGetSystemClock() / CH_FREQUENCY - 1;
PIT.PITMCR.R = 1; /* PIT clock enabled, stop while debugging. */
PIT.CH[0].LDVAL.R = reg;
PIT.CH[0].CVAL.R = reg;
PIT.CH[0].TFLG.R = 1; /* Interrupt flag cleared. */
PIT.CH[0].TCTRL.R = 3; /* Timer active, interrupt enabled. */
}
开发者ID:aarrtteemm,项目名称:Workspace,代码行数:33,代码来源:hal_lld.c
示例13: _dbg_check_unlock_from_isr
/**
* @brief Guard code for @p chSysUnlockFromIsr().
*
* @notapi
*/
void _dbg_check_unlock_from_isr(void) {
if ((ch.dbg.isr_cnt <= 0) || (ch.dbg.lock_cnt <= 0)) {
chSysHalt("SV#7");
}
_dbg_leave_lock();
}
开发者ID:MultiCalorNV,项目名称:ChibiOS,代码行数:12,代码来源:chdebug.c
示例14: _dbg_check_lock_from_isr
/**
* @brief Guard code for @p chSysLockFromIsr().
*
* @notapi
*/
void _dbg_check_lock_from_isr(void) {
if ((ch.dbg.isr_cnt <= (cnt_t)0) || (ch.dbg.lock_cnt != (cnt_t)0)) {
chSysHalt("SV#6", __func__);
}
_dbg_enter_lock();
}
开发者ID:Kreyl,项目名称:UsbHost,代码行数:12,代码来源:chdebug.c
示例15: main
/*
* Application entry point.
*/
int main(void) {
msg_t status = RDY_TIMEOUT;
halInit();
chSysInit();
chBSemInit(&alarm_sem, TRUE);
rtcGetTime(&RTCD1, ×pec);
alarmspec.tv_sec = timespec.tv_sec + RTC_ALARMPERIOD;
rtcSetAlarm(&RTCD1, 0, &alarmspec);
rtcSetCallback(&RTCD1, rtc_cb);
while (TRUE) {
/* Wait until alarm callback signaled semaphore.*/
status = chBSemWaitTimeout(&alarm_sem, S2ST(RTC_ALARMPERIOD + 10));
if (status == RDY_TIMEOUT) {
chSysHalt();
}
else {
rtcGetTime(&RTCD1, ×pec);
alarmspec.tv_sec = timespec.tv_sec + RTC_ALARMPERIOD;
rtcSetAlarm(&RTCD1, 0, &alarmspec);
}
}
return 0;
}
开发者ID:CCrashBandicot,项目名称:portapack-hackrf,代码行数:31,代码来源:main.c
示例16: motor_driver_get_trajectory_point
void motor_driver_get_trajectory_point(motor_driver_t *d,
int64_t timestamp_us,
float *position,
float *velocity,
float *acceleration,
float *torque)
{
if (d->control_mode != MOTOR_CONTROL_MODE_TRAJECTORY) {
chSysHalt("motor driver get trajectory wrong setpt mode");
}
float *t = trajectory_read(d->setpt.trajectory, timestamp_us);
if (t == NULL) {
// chSysHalt("control error"); // todo
log_message("trajectory read: %d failed", timestamp_get());
*position = 0;
*velocity = 0;
*acceleration = 0;
*torque = 0;
return;
}
*position = t[0];
*velocity = t[1];
*acceleration = t[2];
*torque = t[3];
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:25,代码来源:motor_driver.c
示例17: message_server_thread
void message_server_thread(void *arg)
{
struct netconn *conn;
struct netbuf *buf;
static uint8_t buffer[4096];
err_t err;
LWIP_UNUSED_ARG(arg);
chRegSetThreadName("rpc_message");
conn = netconn_new(NETCONN_UDP);
if (conn == NULL) {
chSysHalt("Cannot create SimpleRPC message server connection (out of memory).");
}
netconn_bind(conn, NULL, MSG_SERVER_PORT);
while (1) {
err = netconn_recv(conn, &buf);
if (err == ERR_OK) {
netbuf_copy(buf, buffer, buf->p->tot_len);
message_process(buffer, buf->p->tot_len, message_callbacks, message_callbacks_len);
}
netbuf_delete(buf);
}
}
开发者ID:froj,项目名称:master-firmware,代码行数:26,代码来源:rpc_server.c
示例18: motor_driver_get_voltage_setpt
float motor_driver_get_voltage_setpt(motor_driver_t *d)
{
if (d->control_mode != MOTOR_CONTROL_MODE_VOLTAGE) {
chSysHalt("motor driver get voltage wrong setpt mode");
}
return d->setpt.voltage;
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:7,代码来源:motor_driver.c
示例19: motor_driver_get_torque_setpt
float motor_driver_get_torque_setpt(motor_driver_t *d)
{
if (d->control_mode != MOTOR_CONTROL_MODE_TORQUE) {
chSysHalt("motor driver get torque wrong setpt mode");
}
return d->setpt.torque;
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:7,代码来源:motor_driver.c
示例20: motor_driver_get_velocity_setpt
float motor_driver_get_velocity_setpt(motor_driver_t *d)
{
if (d->control_mode != MOTOR_CONTROL_MODE_VELOCITY) {
chSysHalt("motor driver get velocity wrong setpt mode");
}
return d->setpt.velocity;
}
开发者ID:SyrianSpock,项目名称:master-firmware,代码行数:7,代码来源:motor_driver.c
注:本文中的chSysHalt函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论